编程语言分类

从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 条评论
登录 后参与评论

相关文章

来自专栏程序员维他命

2017年5月iOS招人心得(附面试题)

在2017年5月中旬,技术老大让我招两个1-2年的iOS开发,把简历的筛选和第一轮技术面试的任务交给了我。于是便自己准备了这套面试题。

1724
来自专栏牛客网

前端面试:链家 -3月24日

一面 1. React组件通信 2. 什么是原型 3. CSS定位属性,怎么定位的 4. TCP与HTTPS的区别 5. 怎么获得对象上的属性(面试官期待的是O...

45311
来自专栏顶级程序员

转行学习Python,完全0基础能否学会?

源 / python教程 文 / 小雨 人生苦短,我用Python,为啥这么说,因为我们有个金句:学完Python,便可上天 ~ 废话不多说,相信很多...

3665
来自专栏牛客网

面经--微博&&今日头条

1910
来自专栏程序人生 阅读快乐

编写高质量代码:改善Java程序的151个建议

在通往“Java技术殿堂”的路上,本书将为你指点迷津!内容全部由Java编码的最佳实践组成,从语法、程序设计和架构、工具和框架、编码风格和编程思想等五大方面对J...

891
来自专栏Crossin的编程教室

input vs raw_input

今天是教师节,祝老师们节日快乐。然后,今早,我居然也收到了祝福。。。暗自窃喜。 把之前有几篇不属于课程系列的文章整理了一下,回复 w 可以看到文章列表。包括罚点...

30311
来自专栏web编程技术分享

小兔JS教程(一) -- 环境搭建与JavaScript初探1.开发环境搭建2.JavaScript初探

3468
来自专栏Java学习网

优秀程序员的 18 大法则

优秀程序员的 18 大法则 经过多年的积累,我发现,下面这些基本的指导法则,可以帮助我成为一个更加高效的程序员。 程序设计法则,与设计和工程的原理密切相关。下面...

2555
来自专栏Golang语言社区

改变未来IT世界的十种编程语言:Go语言

这里要说的都是革新,说这些的目的就是要保持关注最新技术。如果你是一个程序员,想要探寻未来技术,那这篇文章就是你的必读之选。我们这里列出了10种编程语言,10种将...

4765
来自专栏noteless

6.计算机语言的发展 编程语言发展 编程语言类型 为什么会有编程语言 编程语言什么作用 机器语言 高级语言分类 编程语言历史 编程语言有哪些 编程语言编年史

随后,开始用与代码指令实际含义相近的英文缩写词、字母和数字等符号来替代描述指令代码

1812

扫码关注云+社区

领取腾讯云代金券