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

[科普中国]-高级语言

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

高级语言(High-level programming language)相对于机器语言(machine language,是一种指令集的体系。在这种语言下,其语法和结构更类似汉字或者普通英文,且由于远离对硬件的直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。

简介计算机语言具有高级语言和低级语言之分。而高级语言又主要是相对于汇编语言而言的,它是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。

高级语言并不是特指的某一种具体的语言,而是包括很多编程语言,如流行的java,c,c++,C#,pascal,python,lisp,prolog,FoxPro,易语言,中文版的C语言等等,这些语言的语法、命令格式都不相同。

高级语言与计算机的硬件结构及指令系统无关,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。高级语言、汇编语言和机器语言都是用于编写计算机程序的语言。

高级语言程序“看不见”机器的硬件结构,不能用于编写直接访问机器硬件资源的系统软件或设备控制软件。为此,一些高级语言提供了与汇编语言之间的调用接口。用汇编语言编写的程序,可作为高级语言的一个外部过程或函数,利用堆栈来传递参数或参数的地址。

发展历程在编程语言经历了机器语言,汇编语言等更新之后,人们发现了限制程序推广的关键因素——程序的可移植性。需要设计一个能够不依赖于计算机硬件,能够在不同机器上运行的程序。这样可以免去很多编程的重复过程,提高效率,同时这种语言又要接近于数学语言或人的自然语言。在计算机还很稀缺的50年代,诞生了第一个高级编程语言。当时计算机的造价不菲,但是每天的计算量有有限,如何有效的利用计算机有限的计算能力成为了当时人们面对的问题。同时,因为资源的稀缺,计算机的运行效率也成为了那个年代工程师追寻的目标。为了更高效的使用计算机,人们设计出了高级编程语言,来满足人们对于高效简的编程语言的追求。用高级编程语言编写的程序需要经过翻译,翻译成机器所能识别的二进制数才能由计算机去执行。虽然,高级编程语言编写的程序需要一些时间去翻译代码,从而降低了计算机的执行效率,但是实践证明,高级编程语言为工程师带来的便利远远大于降低的执行效率。 经过各软件工程师和专家的不懈努力,1954年,第一个完全意义的高级编程语言FORTRAN问世了,他完全脱离了特定机器的局限性,是第一个通用性的编程语言。从第一个编程语言问世到现今,共有几百种高级编程语言出现,很多语言成为了编程语言发展道路上的里程碑,影响很大。 比如:BASIC、JAVA、C、C++、python等。 高级编程语言也从早期的控制信号变成了现在的有结构有格式的程序编写工具,C++等语言的出现更是开启了面向对象编程语言的新章。同时伴随着软件编写效率的提高,软件开发也逐渐变成了有规模、有产业的商业项目。1

特点因为明确的目标性以及理解容易,一个新手很容易去学习高级编程语言。同时高级编程语言因为发展的历史,拥有很多函数库,用户可以根据自身的需求在代码中加入头文件来调用这些函数来实现自己的功能,当然使用者也可以根据自己的喜好编写函数来在后续的代码中调用。

高级编程语言作为一种通用的编程语言,它的语言结构和计算机本身的硬件以及指令系统无关,它的可阅读性更强,能够方便的表达程序的功能,更好的描述使用的算法。同时,它更 容易被初学者所掌握,很容易学习。而且容易学习掌握。但是高级编程语言因为是一种编译语言,所以他的运行速度比汇编程序要低,同时因为高级语言比较冗长,所以代码的执行速度也要慢一些。

高级编程语言,作为用户层面的编程工具,用户并不需要去了解硬件的结构,而是去用逻辑的语言去实现想要的目标,但是因为高级编程语言的架构高于汇编,所以不能编写直接访问硬件资源的系统程序,因此,高级编程语言必须要调用汇编语言编写的程序来访问硬件地址。1

分类命令式语言。这种语言的语义基础是模拟“数据存储/数据操作”的图灵机可计算模型,十分符合现代计算机体系结构的自然实现方式。其中产生操作的主要途径是依赖语句或命令产生的副作用。现代流行的大多数语言都是这一类型,比如 Fortran、Pascal、Cobol、C、C++、Basic、Ada、Java、C# 等,各种脚本语言也被看作是此种类型。

函数式语言。这种语言的语义基础是基于数学函数概念的值映射的λ算子可计算模型。这种语言非常适合于进行人工智能等工作的计算。典型的函数式语言如 Lisp、Haskell、ML、Scheme 、F#等。

逻辑式语言。这种语言的语义基础是基于一组已知规则的形式逻辑系统。这种语言主要用在专家系统的实现中。最著名的逻辑式语言是 Prolog。

面向对象语言。现代语言中的大多数都提供面向对象的支持,但有些语言是直接建立在面向对象基本模型上的,语言的语法形式的语义就是基本对象操作。主要的纯面向对象语言是 Smalltalk。

虽然各种语言属于不同的类型,但它们各自都不同程度地对其他类型的运算模式有所支持。

性能分析接口分析接口主要指高级语言与汇编语言之间的联系性,Ada语言在应用的过程中可以访问汇编语言,访问情况的实现只需要程序功能,程序功能在使用的过程中破解所设定的环节,进行访问工作。对C语言而言,将汇编语言作为整体看成一个独立的部分,将独立的部分加入C的程序中,具有通讯功能。对于Macros的应用,可以应用在汇编语言中,借助编译器完成各种工作。语言的性能并没有改变,Java语言与汇编语言的 关系可以将其作为一个代码,此代码具有移植性,直接移植便可以进行操作,操作的过程方面并没有过多复杂程序。2

寻址分析Ada寻址情况主要借助的是SYSTEM实现,可以准确的寻址;C的寻址需要借助指针实现,可以精确的实现寻址,对于存储器寻址情况需要应用peek完成,Modula-2的寻址情况与 Ada所借助的情况一致,可以吸纳绝对的寻址。2

位操作分析对于不同语言具有不同的位情况,所表达的从句中可以明确指出Ada的位,会存在很多位的情况,将其组合,通过逻辑原理进行处理。C的主要功能是位操作,对于Modula-2主要借助BIYSTE,应用这样的方式可以准确进行位操作。2

任务支持分析不同的语言任务功能不一样,对于Ada具有较多的任务, 其支持性强,可以实现多种任务同时工作的情况。C与Ada相 比不具有这样的优势,Modula-2与Ada相比并没有其完善性,需要借助机制实现。对于这样的优势是Ada,可以独立的完成。2

控制程序分析系统的设定需要控制程序,对于高级语言会涵盖一定的控制结构,像Ada中具有控制能力,对于其分支可以完全掌控其运行。C中并没有完善的控制结构,主要是对分值方面使用灵活,并且简单易操作,在使用的过程中应严格按照其规定操作,避免人为原因造成问题出现。Modula-2的控制系统只是控制分支,转移需要应用FXIT,操作的过程中应严格审查操作环节,避免其操作的过程中造成出现问题,操作时应兢兢业业,因为这方面的人为操作易引起问题的形成。2

高级语言程序设计高级语言程序设计是采用存储程序的原理以实现自动工作。高级语言程序设计是世界上广泛使用的一种高级语言,它即可以直接访问物理地址,又可以直接对硬件进行操作。在早期的高级语言程序设计主要是用于UNIX系 统。由于高级语言程序设计的强大功能和各方面的优点逐渐为人们认识,到了八十年代,高级语言程序设计开始进 入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一。3

本词条内容贡献者为:

齐臣杰 - 研究员 - 北京信息科技大学