版权归原作者所有,如有侵权,请联系我们

[科普中国]-编程语言

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。1

编程语言处在不断的发展和变化中,从最初的机器语言发展到如今的2500种以上的高级语言,每种语言都有其特定的用途和不同的发展轨迹。编程语言并不像人类自然语言发展变化一样的缓慢而又持久,其发展是相当快速的,这主要是计算机硬件、互联网和IT业的发展促进了编程语言的发展。1

简介计算机编程语言能够实现人与机器之间的交流和沟通,而计算机编程语言主要包括汇编语言、机器语言以及高级语言,具体内容如下:2

汇编语言

该语言主要是以缩写英文作为标符进行编写的,运用汇编语言进行编写的一般都是较为简练的小程序,其在执行方面较为便利,但汇编语言在程序方面较为冗长,所以具有较高的出错率。2

机器语言

这种语言主要是利用二进制编码进行指令的发送,能够被计算机快速地识别,其灵活性相对较高,且执行速度较为可观,机器语言与汇编语言之间的相似性较高,但由于具有局限性,所以在使用上存在一定的约束性。2

高级语言

所谓的高级语言,其实是由多种编程语言结合之后的总称,其可以对多条指令进行整合,将其变为单条指令完成输送,其在操作细节指令以及中间过程等方面都得到了适当的简化,所以,整个程序更为简便,具有较强的操作性,而这种编码方式的简化,使得计算机编程对于相关工作人员的专业水平要求不断放宽。2

发展历史第一台计算机是在二十世纪四十年代发明的,当时的计算机各项控制主要是由人工操作来实现的,但在便利性方面严重不足,经过多年的发展,相关人员提出了利用编程语言来控制计算机的构想,虽然当时的编程模式还不够完善,但却对计算机编程语言的发展产生了巨大的推动作用。而计算机编程语言也正是在这之后的半个世纪中逐渐完善的。随着社会的发展,各领域的技术需求不断提升,这使得计算机编程的发展越来越趋于复杂化和多样化。在这种情况下,一些可视的﹑集成的语言环境逐渐开始崭露头角,只需要进行简单的按键,就可以完成一段代码的编写,大大减少了计算机编程的资金成本和时间成本。加上一些高级语言的出现,如Pascal﹑fortran以及C语言等,使得计算机操控已经不再需要大量的资本和人工,直到二十世纪九十年代,计算机编程领域高速发展,逐渐诞生了一些面向对象的高级语言,如Java等,使得计算机程序逐渐从原来的通信和计算向着视频解析﹑图像传输﹑智能模拟以及知识处理等方向发展,换言之就是通过计算机网络技术进行数据采集﹑分析﹑管理,实现智能操作。在现代文明不断发展的情况下,通过计算机编程语言已经能够对各领域的信息化需求加以满足。2

经历时代及代表语言编程语言一般分为:低级语言、高级语言和面向对象时代。1

低级语言时代低级语言时代(1946-1953)主要包括被称为“天书”的机器语言以及汇编语言。1

计算机工作基于二进制,从根本上说,计算机只能识别和接受由0和1组成的指令。这些指令的集合就是该计算机的机器语言。机器语言包括的缺点有:难学、难写、难记、难检查、难修改,难以推广使用。因此初期只有极少数的计算机专业人员会编写计算机程序。1

汇编语言由于机器语言的难以理解,莫奇莱等人开始想到用助记符来代替0,1代码,于是汇编语言出现了。1

高级语言时代高级语言时代(1954-至今)——随着世界上第一个高级语言fortran的出现,新的编程语言开始不断涌现出来。数十年来,全世界涌现了2500种以上高级语言,一些流行至今,一些则逐渐消失。1

第一个高级语言—Fortran

为了克服低级语言的缺点,20世纪50年代由美国约翰·贝克斯(John Backus)创造出了第一个计算机高级语言——FORTRAN语言。它很接近人们习惯使用的自然语言和数学语言。程序中所用运算符和运算表达式,很容易理解,使用也十方便。并且FORTRAN以其特有的功能在数值、科学和工程计算领域发挥着重要作用。1

第一个结构化程序设计语言—ALGOLALGOL

这是在计算机发展史上首批清晰定义的高级语言,由欧美计算机学家合力所组成的联席大会于仍是晶体管计算机流行的1950年代所开发国际计算机学会(ACM)将ALGOL模式列为算法描述的标准,启发ALGOL类现代语言Pascal、Ada、C语言等出现。1

最简单的语言——BASIC

1964年BASIC语言正式发布。是由达特茅斯学院院长、匈牙利人约翰·凯梅尼(John G.Kemeny)与数学系教师托马斯·库尔茨(Thomas E.Kurtz)共同研制出来的。该语言只有26个变量名,17条语句,12个函数和3个命令。这门语言叫做“初学者通用符号指令代码。1

编程语言里一个重要的里程碑——Pascal Pasca

这是基于ALGOL编程语言,为纪念法国数学家、哲学家、电脑先驱布莱兹·帕斯卡而命名。它由瑞士Niklaus Wirth教授于六十年代末设计并创立的。Pascal具有语法严谨、层次分明等特点,是第一个结构化编程语言,被称为“编程语言里一个重要的里程碑”。1

现代程序语言革命的起点——C语言

C语言的祖先是BCPL(Basic Combined Programming Language)语言,在1970年美国贝尔实验室的Ken Thompson在BCPL语言的基础上,设计出了B语言。接着在1972到1973年间,美国贝尔实验室的Dennis M.Ritchie在Ken Thompson的基础上设计出了C语言。1

面向对象时代面向对象时代(90年代初-至今)——面向对象程序设计(Object-Oriented Programming,简称OOP)如今在整个程序设计中十分重要,其最突出的特点为封装性、继承性和多态性。1

Java

Java是由Sun Microsystem于1995年推出的高级编程语言。近几年来,Java企业级应用飞速发展,主要被运用于电信、金融、交通等行业的信息化平台建设。Java是一个普遍适用的软件平台,其具有易学易用、平台独立、可移植、多线程、健壮、动态、安全等主要特性。1

Python

近几年来,Python语言上升势头比较迅速,其主要原因在于大数据和人工智能领域的发展,随着产业互联网的推进,Python语言未来的发展空间将进一步得到扩大。Python是一种高层次的脚本语言,目前应用于Web和Internet开发、科学计算和统计、教育、软件开发和后端开发等领域,且有着简单易学、运行速度快、可移植、可扩展、可嵌入等优点。1

选用原则(1)综合思考软件运行过程中所处的硬件环境。如果在硬件环境中。更新效率相对偏高,一旦硬件环境出现一定转变,将会使计算机编程预算无法快速地和硬件环境相迎合。使得程序编程带来一定影响。所以,程序人员在程序编程的过程中,需要对软件调整内容加以综合思考。并且注重适当地减少软件调整难度。3

(2)全面思考平台支撑性。在开展程序编程工作的过程中,应该思考应用平台给编程语言带来的影响,结合编程语言自身特性对应用平台实施科学调整,从而实现工作水平的提升,将编程语言自身作用充分发挥。3

(3)思考程序编程实际问题。在进行程序编程的过程中,综合思考上述两个问题时。还要对编程实际情况进行全面思考。所以,在进行计算机编程语言选择的过程中,要求编程人员对编程语言特性有所了解。变成人员在对特殊性软件开发过程中。应该选用较为专业的计算机编程语言.专业性编程语言能够有效提升软件开发的规范性。3

选用技巧开发计算机软件中,最为核心的关键就是保障计算机程序在正常运作的情况下.这就需要计算机程序员应该对程序进行详细调查。在调查完毕之后,随机抽样整合计算机相关数据信息,进而选择最为合适的计算机编程语言的类型,在此基础上,才能减少计算机程序的出错率。在选用计算机语言的过程时,计算机程序员要充分地考虑计算机编程语言的各个优势特点,权衡利弊,还要合理控制计算机语言开发的实际成本问题,才能够使计算机编程语言的效果最大化。4

(1)在选择编程语言之前,应充分考虑项目的总体框架,以确定编程语言的分布。因为整个项目的所有部分都是用一种语言写的。此外,组件的连接和分解与编程语言的选择密切相关。在一些项目中,可以相对简单地选择最佳编程语言,但是编程过程是灵活多变的。最佳语言选择需要根据程序要求进行更改。5

(2)在科学合理的原则下,我们应该选择最熟悉的编程语言。因为开发人员熟悉某种语言,他们可以极大地帮助他们预测开发时间、过程和其他内容,这可以很好地避免大的变化,提高编程效率。5

(3)对于高成本操作,如加密、图形渲染、视频处理和其他内容操作,应给予充分考虑。对于这些高成本的操作模块,开发人员应该选择需要编译的静态语言。JAVA和C#是最好的选择。5

(4)目前,编程语言的开发环境不再局限于计算机硬件环境。硬件环境足以进行软件开发,但对于一些特殊的应用软件或严重的情况,编程环境不仅仅是硬件环境。因此,应该做出科学合理的选择,使他们编写的程序能够在这种环境下良好运行。5

(5)支持平台是选择编程语言的重要基础。例如,代码需要在客户的浏览器中运行,这导致可供选择的编程语言较少。5

(6)任何编程语言的使用都需要确保编写的程序能够根据实际需要及时调整。因此,快速原型开发环境非常重要,在这种环境下,动态语言和相关库的结合可以大大增强其优势。5

应用当前阶段,为了使计算机方面的软件技术获得更高的应用质量,并不断提升社会各界的信息化水平,相关领域的科研人员正在对计算机中的编程语言进行持续的完善与创新,以此来提升计算机编程语言的直观性以及易学性,使编程人员能够获得更具便捷性的编程语言,而目前应用较为广泛的编程语言包括PHP﹑Java﹑C++﹑VB以及C语言等,不同的编程语言其在应用优势方面也各不相同,所以,在具体应用期间,需要结合自身需求,选择具有较高适应性和针对性的编程语言,以此来确保所选编程语言的优势。2

PHP

从本质上来讲,PHP计算机编程语言是HTML内嵌式语言之一,它在动态网站编程语言中属于较为主流的编程语言,但具体应用时,需要与html css+rdiv+js等语言进行有效配合才能构建一个较为完善的网站,这种语言的主要功能就是对HTML的文档信息进行有效的执行,并通过与多种编程语言的有效融合来满足用户的计算机操作需求和控制需求,如Perd﹑Java以及C语言等等,除此之外,应用PHP这种编程语言还能实现动态网页的有效构建。2

Java

Java是一种以对象为基础的编程语言,其关注的重点在于数据应用和操纵的具体算法,其作为分布式语言的一种,是高性能互联网架构的重要组成部分,其本身具有诸多优势,如语法简捷﹑内存能够进行自动化管理﹑可以进行跨平台移植﹑异常处理可靠性高以及字节码具有完善的安全机制,其在信息化时代中具有较为广泛的应用范围,特别是在互联网﹑游戏控制﹑个人PC以及多媒体等方面具有至关重要的作用,而且在软件以及网站建设方面的应用也非常广泛,最为典型的就是在安卓APP中的应用。除此之外,在电脑端中的一些办公软件同样是应用Java语言编写的,如Excel以及Word等,但与C语言相比,Java编程语言在机械效率方面相对较低,但其经济性和可移植性是其最大的优势之一,所以其在大数据领域以及超级计算机方面的应用也相对较多。以Java技术在政府网站建设中的应用为例,在建设政府网站的过程中,一般可建网站架构分为3层,分别为业务层﹑数据层和表现层。数据层主要负责对群众数据进行管理,为网站服务提供便利条件。业务层,在该层中融入了各子系统的业务逻辑,通过中间支撑层实现数据层和业务层之间的数据交换,通过业务层,能确保网站应用功能的顺利实现,同时提供了标准化开发接口。表现层,该层主要负责信息交互以及数据展示,负责对用户的相关请求进行技术,结合请求的具体类型,将其传输至应用服务器,最后将处理结果反馈给用户。在对政府网站进行建设过程中,一般要采取分布式设计,并在相应层次上对相关软件进行集成,同时也可借助产品应用开发接口完成开发工作。Java技术能够提供出应用开发编程接口以及规范化组件,最后结合不同的需求,对功能进行复用,同时也可进行随意组合。2

C++

目前我们所接触到的网络游戏大部分都是以C++为基础开发出来的,并且在计算机中较为常见的操作系统内核都是使用C语言进行编写的,如Windows/Linux等,以C语言为基础进行持续优化的C++语言,相比于C语言,其在应用期间具有明显的优势,它能够对程序语言的运行状态进行有效的优化,而且C++使得C语言的完善性得到了进一步的提升,特别是它的稳健性以及简洁性,受到了程序员的青睐,所以其在程序编写方面的应用较为广泛。除此之外,C++具有较强的绘图能力和数据处理能力,移植的灵活性也相对较强,所以被普遍应用于图形处理﹑系统软件﹑游戏以及手机等方面,而人们熟知的俄罗斯方块就是C++语言的典型应用。2

发展趋势随着科技的发展与进步,计算机在软硬件技术方面不断革新,特别是多核时代的发展,使得传统形式的计算机体系结构逐渐改变,受到这种发展形式的影响,计算机在编程语言方面也应该做出相应的改变,也只有如此,才能使社会各界的信息化发展需求得到更好的满足,而想要在编程语言方面实现优化创新,必须要从编程人员操作﹑编程语言应用﹑面向对象空间拓展以及平台无关性等方面入手。2

(1)要确保使用者各项操作的便捷性。就目前的计算机程序来看,其核心主线即数据抽象和面向对象程序设计,而为了使编程语言的各项操作更加便捷,就必须要确保编程语言具有简单易学的特点,不断降低其专业性,以使用便捷性为主要发展方向,确保使用者只需要掌握基本概念和操作方式,就可以对一些较为简单的程序进行编写,确保便捷地操作。2

(2)编程语言应以对象为基础,实现深化发展,并提供具有较强动态性的接口模型和简单的类机制。对继承机制加以利用,子类可以对父类给出的方法加以应用,以此来实现代码复用。此外,计算机网络本身具有较强的开放性,所以,编程语言在未来发展的过程中,更应该对安全性进行充分的考虑,使程序编写能够获得一个较为安全的环境,因此,应该对安全保护机制加以建设,结合程序编写的相关特点,进行安全体系的构建,确保编写环境的和谐性及安全性。而提升平台无关性主要就是为了编写程序可以在不同平台或机器当中进行移植,避免受到平台的影响,这也是编写语言未来发展的重要方向,在这种发展模式下,应用编写程序时将会更加方便,会使其获得更为广阔的应用范围。2

声明式编程与DSL声明式编程是告诉计算机需要计算“什么”而不是“如何”去计算。1

函数式编程代码简洁,开发快速;接近自然语言,易于理解;更方便的代码管理;易于“并发编程”;代码的热升级。1

动态语言动态语言,是指程序在运行时可以改变其结构,其代表着更快更简单的技术大趋势,必然会成为未来构建软件和IT技术的主角。1

并发编程多核时代的必然要求。1

本词条内容贡献者为:

闫晓东 - 副教授 - 中央民族大学信息工程学院