专栏首页C/C++基础编程语言分类

编程语言分类

从1946年世界第一台计算机ENIAC诞生至今,计算机从早期的军事计算领域,已经渗透到人类生产和社会发展的各个领域。从政府机构到企业部门、从军事领域到民用行业、从科学教育到文化艺术、从生产运输到消费娱乐,都少不了计算机的身影。计算机在各行各业和人类社会的发展中发挥着不可替代极其重要的作用。面对纷繁复杂的应用领域和场景,自计算机诞生至今,已经发明和衍生出众多优秀的编程语言,来满足不用领域和场景的要求。

对编程语言的归纳分类,可以从以下几个方面来做区分。 (1)按照语言的抽象等级,由低到高分为机器语言、汇编语言与高级语言; (2)按照程序设计方法,分为面向过程与面向对象编程语言; (3)按照语言所编写的程序的执行方式,分为编译型、解释型与混合型语言;混合型指的是先编译为中间代码,再解释执行。 (4)按照程序在运行时能否改变结构,分为动态语言与静态语言。运行时可以改变结构的为动态语言,反之为静态语言。改变结构指的是运行时代码可被动态改变,比如添加新的代码、更改对象定义(如为对象新增属性与方法); (5)按照变量是否需要指明类型,分为强类型语言与弱类型语言,需要则为强类型语言,不需要则为弱类型语言。强类型语言要求变量的使用要严格符合定义的类型,所有变量都必须先定义后使用。弱类型语言则恰恰相反,变量无需事先定义,数据类型可以被忽略,一个变量可以赋不同数据类型的值。

这里根据TIOBE编程语言热度排行榜(截止至2018年6月)Top 10的编程语言,来做一个简单的介绍和分类。

排名(June 2018)

排名(June 2017)

语言

1

1

Java

2

2

C

3

3

C++

4

4

Python

5

5

C#

6

6

Visual Basic .NET

7

8

PHP

8

7

JavaScript

9

-

SQL

10

14

R

Java是一门面向对象编程语言,由Sun公司发明于上世纪九十年代。不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java可以编写桌面应用程序、Web应用程序、分布式系统、嵌入式系统应用程序和移动应用开发等。

C语言诞生于1972年贝尔实验室,由Dennis M. Ritchie基于B语言改造发展而来,后来贝尔实验室又用它重写了UNIX操作系统。C是一门面向过程强类型静态编译型高级语言,贴近硬件,执行效率高,使用灵活,功能强大,应用范围广,是计算机专业必学的一门基础课程。因是结构化编程语言,在进行大型应用开发上效率往往不如其它面向对象语言,但是在操作系统层级和嵌入式开发领域有着举足轻重的地位。另外,C语言重要性还体现在其是操作系统和其它编程语言的基础,比如Unix、Linux是C语言编写的,Python解释器、PHP解释器、JVM等,都是由C语言实现的。

C++是C语言的改进版本,同样诞生于贝尔实验室,在上世纪八十年代,由Bjarne Stroustrup在C的基础之上,改造发展而来,在保留了C语言所有特性的同时添加进了面向对象思想,并于1985发布了C++第一个版本。C++是一门面向对象强类型静态编译型高级语言,不仅可以进行面向过程程序设计,也可以进行以继承和多态为特点的面向对象的程序设计。C++继承了C语言的高效率优点,这也是其相对于其它面向对象语言的一大优势。C++的诸多特性和优点赋予它在很多大型开发上得天独厚的优势,在很多领域中有很强生命力。时至今日,C++还在不断发展中,从最初的C++98已经发展至现今的C++17,新技术层出不穷。

Python是一种面向对象的解释型脚本语言,由荷兰人Guido van Rossum于1989年发明。如今Python相当流行,Python语言语法优雅,特点之一是强制要求使用规范的代码缩进,入门简单,上手容易,且具有丰富和强大的开源库,常被称为胶水语言。很多国外的大学,计算机专业的入门语言便是Python。国内也有少数大学,也在尝试用Python作为第一门编程语言。Python语言可用于桌面应用、移动开发、网站后端、游戏引擎,还有如今如火如荼的大数据分析、机器学习等,可以说,除了系统层和硬件级的开发以及高性能计算领域是C/C++的天下,Python无所不能。

C#(C Sharp)是微软公司在2000年出品的一款面向对象、运行于.NET Framework之上的高级程序设计语言,Windows平台上的很多桌面程序都是用C#写的。它结合了C/C++和Visual C++的强大功能以及Visual Basic的简单易用性,具有稳定、类型安全、可进行DLL版本控制、兼容性好、灵活等诸多特点,使得它成为了一个很有潜力的新生代语言。再加上互联网的高速发展和微软的强大技术支持,C#的应用场景以及学习拥护者,不断在扩展。

Visual Basic .NET是微软基于.NET Framework在2002年发布的一款面向对象的编程语言,可以看作是Visual Basic在.Net Framework平台上的升级版本,增强了对面向对象的支持。.NET语言,包括VB .NET,它们所开发的程序源代码并不是直接编译成能够直接在操作系统上执行的二进制本地代码,而是被编译成为中间代码,然后通过.NET Framework的通用语言运行时(CLR)来执行。所以,VB .NET是混合型静态强类型高级语言,C#也是如此。

PHP(PHP:Hypertext Preprocessor)一种通用解释型开源脚本语言,由Rasmus Lerdorf于1994年创建。语法吸收了C语言、Java和Perl的特点,凭借易于学习,开发周期短,跨平台,安全,使用广泛等特点,被称为世界上最主好的编程语言。PHP主要适用于Web开发领域,将程序嵌入到HTML文档中去执行,执行效率比Perl和完全生成HTML标记的CGI要高许多。PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

JavaScript是一种支持面向对象动态弱类型解释型脚本语言,由Netscape公司于1995年发明创造。广泛用于Web前端页面,最早是在HTML网页上使用,用来给HTML网页增加动态功能。JavaScript兼容ECMA262标准,亦称为ECMAScript。JavaScript因其跨平台、兼容性好、面向对象、入门简单等优点,得到了广泛的应用。同类语言如微软的JScript、Nombas的ScriptEase就较少听说了。

SQL(Structured Query Language),是关系型数据库管理系统结构化查询语言,是一种高级的非过程化编程语言,用于数据的存取和更新。SQL为用户提供了抽象的数据管理方法,允许用户在高层数据结构上工作,不要求用户了解具体的数据存放方法,使用相同的结构化查询语言作为数据管理的统一接口,具有极大的灵活性和强大的功能。SQL语言结构简洁,功能强大,简单易学,自从IBM公司在上1976年推出以来,得到了广泛的应用,1986年被ANSI和ISO定为国际标准。 R语言是一门主要用于统计分析、绘图、数据挖掘的面向对象开源脚本语言,由Ross Ihaka和Robert Gentleman在1995年发布,名称R源自两位作者名称的首字母。R语言是统计领域广泛使用的于1976年诞生在贝尔实验室的S语言的一个分支,通常用S语言编写的代码都可以不作修改的在R环境下运行。

通过上面对热度Top10编程语言的简单介绍,以思维导图的方式给一个分类汇总。


参考文献

[1]TIOBE Index for June 2018 [2]SQL.Wikipeida

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Golang slice 增删改查

    slice名为切片,是Go中的可变长数组,是对底层数组的封装和引用。切片指向一个底层数组,并且包含长度和容量信息。未初始化切片的值为 nil。作用于切片的内建函...

    Dabelv
  • Linux 命令(84)—— id 命令

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    Dabelv
  • 设计模式 (5)——工厂方法模式(Factory Method,创建型)

    使用设计模式可以提高代码的可复用性、可扩充性和可维护性。工厂方法模式(Factory Method Pattern)属于创建型模式,定义一个创建对象的接口函数,...

    Dabelv
  • 好的编程语言具备哪些特性?

    本文作者是高级系统开发工程师 Torbear Gannholm。Torbear 有着 30 多年的开发经验,对技术很深刻的理解。对于什么是好的编程语言,他发表了...

    Python猫
  • 什么是好的编程语言?

    本文作者是高级系统开发工程师 Torbear Gannholm。Torbear 有着 30 多年的开发经验,对技术很深刻的理解。对于什么是好的编程语言,他发表了...

    AI研习社
  • MVCforum 支持多国语言

    MVCforum支持多国语言。要创建一个更新的语言,你需要去您的管理面板 /admin/ adminlanguage 在这里,您可以添加新的语言键和关联的值。或...

    逸鹏
  • 学了C语言,能开发什么项目?

    直至今天还有人在喊着C语言都过时的语言了,还有什么值得去学的,看现在的python,php等语言现在用起来多简单,谁还去学习老掉牙的C语言,事实真的是这样的吗?...

    程序员互动联盟
  • 为什么很多人选择默默放弃学习C语言?

    最近公司招聘两个岗位一个是web后台开发,一个嵌入式开发,投送简历的比例差不多是十比一,从这个态势看学习C语言的比例相比前几年热度下降了许多,因为大家从招聘力度...

    程序员互动联盟
  • 到底能不能越过C直接学C++?

    现在有好多人都比较迷茫,学习C++是不是需要先学习C语言? 其实这个问题不难,就是直接了解两者的联系和区别就可以给出答案。下面我们来看看他俩到底有什么关系。 ?...

    程序员互动联盟
  • Taro 小程序开发大型实战(一):熟悉的 React,熟悉的 Hooks

    正当移动互联网进入白热化阶段时,以微信小程序为代表的一类“轻应用”异军突起。它们无需下载,使用方便,“用完即走”,同时功能也较为完备,一经推出即得到了各大平台和...

    一只图雀

扫码关注云+社区

领取腾讯云代金券