高级语言分类

转自:计蒜客

高级语言根据用途不同有很多分类,主要可以分成编译型语言和解释型语言。当然,也有一些人为了一些特殊的目的制造了一些四不像的混合型语言。

编译型语言

编译型语言包括 C、C++、Fortran、Pascal、Delphi 等。这里说的编译是指在应用源程序执行之前,就将程序源代码“翻译”成汇编语言,然后进一步根据硬件环境被变成符合运行需要的机器语言的目标文件。通过这种方式,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,几乎是没法修改的。大多数软件产品都是编译后发行给用户的,不仅便于直接运行,同时又使他人难于盗用其中的一些原始代码。


解释型语言

解释型语言包括 Tcl、Perl、Ruby、VBScript、JavaScript 等。解释型语言的实现中,翻译器并不产生机器语言的目标文件,而是产生易于执行的中间代码,这种中间代码与机器代码是不同的,中间代码的解释是由解释器软件支持的,不能直接使用硬件,解释器软件通常会导致执行效率较低。用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的。与编译程序不同的是,解释程序的任务是逐一将源程序的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码后再执行。

解释程序的优点是当语句出现语法错误时,可以立即引起程序员注意,而程序员在程序开发期间就能进行校正。每条语言只有在执行才被翻译。这种解释型语言每执行一次就翻译一次,因而从某种程度上说效率比较低。一般地来说,如果你听别人说到动态语言,大多都是指解释型语言。


混合型语言

有一些人为了一些特殊的目的制造了一些四不像的混合型语言。比方说 Java。Java 程序也需要编译,但是没有直接编译成为机器语言,而是编译成为字节码,然后在 Java 虚拟机上用解释方式执行字节码。这种运行方式带来了一些优势,但同时直接导致了复杂的环境、不算很高的效率和很多的争议。




你可能感兴趣的:(计蒜客)