潘威涛
摘 要:人们日常生活离不开各种软件所提供的服务,研究编程语言对更好地进行软件开发具有重要意义。该文主要总结与分析了C、C++、Java、MATLAB等常用编程语言的特点和现状,以及其在不同场景下的应用,对初级编程者有一定指导意义。
关键词:编程语言 软件 应用
中图分类号:TP311.175 文献标识码:A 文章编号:1674-098X(2016)12(b)-0085-02
1 什么是编程语言
编程语言是用来定义计算机程序的形式语言,用来向计算机发出指令。计算机语言数量很多,每年都会产生大量新的编程语言。按层次来分,编程语言可分为3类:机器语言、汇编语言和高级语言。机器语言由机器指令集构成,能够直接被机器执行。机器语言写的程序存在不便于阅读、难以记忆的问题。汇编语言本质上也是直接对硬件操作,由于采用了助记符,相比机器语言更加方便书写与阅读。在高级语言中,将多条汇编程序语句合并成更简洁的编程语句,同时自动完成一些如堆栈、寄存器分配管理等工作,更加方便程序员开发程序。
编程语言的出现可以说给人类社会快速发展提供了一个契机。目前编程已经渗透于我们日常生活的每个方面,我们所使用的电子设备、软件服务中都运行着大量的程序。近年来,不仅是高科技产业,传统行业也在积极投入互联网时代,网站、软件等编程需求巨大。研究编程语言具有重要意义。分析各个编程语言的特点,能够指导编程者选择更适合任务的编程语言,提高开发效率。同时能够对编程初学者起到指导作用,以便选择合适的学习路径。相对于机器语言与汇编语言,日常编程任务更多選择高级语言,该文主要讨论高级语言的发展与特点。
2 高级语言发展简史
目前已经有数千种编程语言被发明,每年仍有大量新的编程语言诞生。我们一般认为1957年由John W.Backu研发的Fortran是世界上第一门高级编程语言。1957—1959年这段时间,是编程语言刚开始新兴的时候,这个时候Fortran、Lisp、Cobol也就是编程语言的雏形出现。1972年,Dennis Ritchie在B语言的基础上改良和发展,最终将其命名为C语言[1]。C语言作为一种经典的编程语言,至今仍被广泛使用。而之后贝尔实验室又在C语言的基础上推出了更强大的面向对象语言C++。1991年和1993年,Python和Ruby语言也相继被发明。1996年Sun公司发布了Java的第一个开发工具包,标志着Java[2]成为一种独立的开发工具,此后Java一直是一种非常流行的编程语言。
据TIOBE编程语言社区发布的编程语言流行趋势排行榜统计显示(前部分节选如表1所示),2016年仅有两种语言的增长率超过了1%,分别是Groovy和GO语言,可以发现谷歌的GO语言将成为发展最快的语言。从此榜单可以看出,目前Java、C、C++使用量排名前三,而Java语言也是以9%的差距大大领先于排名第二的C语言。
如图1所示,在2003—2005年间,Java语言使用指数有明显的下降,2006年有所回升,而在后来的几年(2015年前)里依旧呈逐渐下降的趋势。2015年以前C语言使用量较为稳定(15%~20%),近两年迅速下降至10%左右。C++语言在过去的10年中呈动态下降趋势,2016年使用量占主流编程语言的6%左右。图1中未统计MATLAB使用量,因为MATLAB并非软件开发语言(图片来源于TIOBE编程语言社区)。
3 常用编程语言特点分析
3.1 C
C语言是一门标准化高的编程语言,适用于不同的计算机系统,因为它具有较好的可移植性,所以成为了应用非常广泛的语言。C语言方便灵活,语言简洁,它只有32个关键字,9种控制语句,运算符包含的范围广。所以,相较于其他的高级语言,C语言容易上手。但语法限制不严格,设计时比较自由的同时也使C语言被滥用。图2展示了一个C语言编程的常见错误,在if语句后误加了一个分号,此时不管是否'a>b',程序运行输出都是'a>b'。C语言可以进行系统程序的编写,比如UNIX就是由其编写的。C语言不仅是高级语言,而且还可以像汇编语言一样对物理内存、硬件直接进行访问与操作,有时因为操作不当也会造成严重的错误。
3.2 C++
1983年,贝尔实验室将改良后的C语言命名为C++,这门语言在保留C语言大部分设定的基础上增加了面向对象[3]。面向对象核心概念是类与对象,类就是一个由属性相同的对象组成的抽象集合,而对象是类的具体实例。C++语言可以直接以类为模板定义出若干个对象,所以面向对象技术使重用数据、代码变得更加便捷。相比C语言,C++语言更适合开发大型软件,许多系统支撑软件和应用程序都是由C++编写的。C++运行速度比C慢,和C一样都存在语法的滥用。
3.3 Java
Java语言的前身是由Sun公司在C++基础上改造出的Oak语言。Oak语言在经过许多年的修改后最终成为了现在的Java语言。与C++一样,Java同样是个面向对象的编程语言,它的数据库操作强大于前者,并且C++中不常用的特征都被删掉,使得Java更容易上手。Java的一项优点是它具有很好的安全性,因为它没有指针,所以不会被程序员得到一些隐藏的信息,也令Java更加可靠。Java语言适合于大型项目的开发,方便一些企业编写程序,但它在较底层的开发项目中显得不足。如今,由于Android系统的普及,作为其基本开发语言Java为更多人所知。
3.4 MATLAB
MATLAB也称作矩阵实验室[4],它包含了600多种数学计算所需的函数,在矩阵运算、数值运算和数据处理等方面的功能很强大,是一个专业的数学软件。它的语言简单,语法也相对不严格。MATLAB语言编写与我们日常书写的方式是很像的,易于上手。MATLAB的图形功能也十分强大,它可以根据数据方便地做出各种图形。MATLAB读取文件功能也十分强大,能够快捷、智能地读取各种数值文件。总之,在数学和科研领域上,MATLAB的便捷性和高效性是远远强于介绍的前3种语言的。
4 常用编程语言应用场景分析
在学习编程或进行软件开发时,编程者应当根据自己的任务需要选择合适的编程语言。C语言多运用于操作系统以及底层软件的编写,比如Unix、Linux和大家熟知的Windows系列等。与C语言相比,C++语言常运用于更上层的软件编写,比如QQ和迅雷等常见Windows桌面软件,另一个很重要的应用是大型游戏的开发。Java语言则更多运用在商业应用软件以及网站的开发,使用J2EE(企业级Java开发框架)能够快速、高效地完成大型商业网站开发任务。在目前流行的Android操作系统上,应用软件都是基于Java语言编写的。相比于其他3种语言,MATLAB广泛运用于科学计算编程,而不适合软件开发。
参考文献
[1]倪瑞晓.C语言编程技术的分析研究[J].计算机技术与发展,2009,19(12):251-254.
[2]贾俊奇.软件开发下的JAVA语言[J].中国科技信息,2014(13):133-134.
[3]蓝雯飞,陆际光,覃俊.C++面向对象程序设计中的多态性研究[J].计算机工程与应用,2000,36(8):97-98.
[4]潘大夫,汪渤,周志强.Matlab与C/C++混合编程技术研究[J].计算机工程与设计,2009(2):465-468.