高级语言
高级语言(High-level programming language)相对于机器语言(machine language,是一种
指令集的体系。这种指令集,称
机器码(machine code),是电脑的CPU可直接解读的数据)而言。是高度封装了的
编程语言,与低级语言相对。它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。由于早期电脑业的发展主要在美国,因此一般的高级语言都是以英语为蓝本。在1980年代,当东亚地区开始使用电脑时,在日本、台湾及中国大陆都曾尝试开发用各自地方语言编写的高级语言,当中主要都是改编
BASIC或专用于
数据库数据访问的语言,但是随着编程者的外语能力提升,现时的有关开发很少。
由于汇编语言依赖于
硬件体系,且助记符量大难记,于是人们又发明了更加易用的所谓高级语言。在这种语言下,其语法和结构更类似汉字或者普通英文,且由于远离对硬件的
直接操作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。
![](https://i-blog.csdnimg.cn/blog_migrate/867ff2425f007b925a9cc9ed78c6605c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/04376a5aefefc507fa5e9817af20a4a8.png)
高级语言:编写需要借助特殊工具转换成机器语言的人类能识别的字符的编程方式
-- 编译型:借助编译器来转换,最终用来执行的文件不具备跨平台性
-- 解释型:借助解释器来转换,最终用来执行的文件具备跨平台性
1、编译型语言(Java编译器为例)
![](https://i-blog.csdnimg.cn/blog_migrate/b72d9df1858d1799656794aeaf522efa.png)
编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等.
[1]
而相对的,解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。但是,在运行程序的时候,解释性语言必须先解释再运行。
2、解释型语言(Python解释器为例)
![](https://i-blog.csdnimg.cn/blog_migrate/0c611dab2d9f5f49aa9a57b42040381d.png)
解释型语言,是在运行的时候将程序翻译成
机器语言。
解释型语言的程序不需要在运行前编译,在运行程序的时候才翻译,专门的解释器负责在每个语句执行的时候解释程序代码。这样解释型语言每执行一次就要翻译一次,效率比较低。
总之,用什么语言都是可以的。开发者对语言性能有一个大体上的把控,从而才能最大性能的发挥出语言的优势。
对于语言优劣:
开发效率至关重要
利弊比较:
编译型与解释型,两者各有利弊
前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。
编译性语言不如解释性语言跨平台性好
编译性语言例如c语言:用c语言开发了程序后,需要通过编译器把程序编译成机器语言(即计算机识别的二进制文件,因为不同的操作系统计算机识别的二进制文件是不同的),所以c语言程序进行移植后,要重新编译。(如windows编译成ext文件,linux编译成erp文件)。
解释性语言,例如java语言,java程序首先通过编译器编译成class文件,如果在windows平台上运行,则通过windows平台上的java虚拟机(VM)进行解释。如果运行在linux平台上,则通过linux平台上的java虚拟机进行解释执行。所以说能跨平台,前提是平台上必须要有相匹配的java虚拟机。如果没有java虚拟机,则不能进行跨平台。