登录| 注册    
收藏  点赞 

翻译程序

把用一种程序设计语言编写的程序,翻译成与之等价的另一种程序设计语言的程序的软件。被翻译的程序称为源程序。编写源程序所用的程序设计语言称为源语言。翻译出的程序称为目标程序。用于构成目标程序所用的语言称为目标语言。翻译程序的主要用途是将计算机不能直接识别的源程序翻译成计算机能直接识别和运行的目标程序,还可用于分析、移植和模拟已有的软件,研制和调试新的软件。

把用一种程序设计语言编写的程序,翻译成与之等价的另一种程序设计语言的程序的软件。被翻译的程序称为源程序。编写源程序所用的程序设计语言称为源语言。翻译出的程序称为目标程序。用于构成目标程序所用的语言称为目标语言。翻译程序的主要用途是将计算机不能直接识别的源程序翻译成计算机能直接识别和运行的目标程序,还可用于分析、移植和模拟已有的软件,研制和调试新的软件。

分类

常用的翻译程序有生成性和解释性之分。①生成性翻译程序。其实现途径分为两个阶段,先由翻译程序把源程序翻译成目标程序,然后由计算机执行目标程序。前一段为生成阶段,后一段为运行阶段。为了执行目标程序,需配置各种各样的子程序,这些子程序总称为运行程序。如果源语言是某一种高级程序设计语言(如FORTRAN、PASCAL、ALGOL60等),目标语言是某一种计算机的汇编语言或机器语言,则这种翻译程序称为编译程序;如果源语言是某一种计算机的汇编语言,目标语言是相应计算机的机器语言,则这种翻译程序称为汇编程序。与编译程序和汇编程序的翻译过程相反,如果源语言是某一种计算机的汇编语言或机器语言,目标语言是某一种高级程序设计语言,则这种翻译程序为反编译程序;如果源语言是某一种计算机的机器语言,目标语言是相应计算机的汇编语言,则这种翻译程序称为反汇编程序。生成性翻译程序的优点是能生成运行效率较高的目标程序,缺点是灵活性较差、算法较繁、编制较难。②解释性翻译程序。将源程序中的语句按动态执行顺序逐句翻译,并立即予以执行,源程序的翻译和运行合并成一个解释阶段完成。每翻译一句,就立即执行一句,翻译完毕,程序也执行完毕。解释性翻译程序的优点是易于编制,占有内存储器容量较小,易于实现,可灵活插入各种调试措施,缺点是重复执行的语句要多次重复翻译,运行效率较差。

编译程序

能将用程序设计语言编写的源程序,翻译成等价的目标程序的翻译程序。编译过程分为分析和综合部分。源程序的分析是经过词法分析、语法分析和语义分析三个步骤实现的。综合阶段主要工作包括代码优化、存储分配和代码生成。编译过程的功能除把源程序翻译成目标程序外,还具备语法检查、调试措施、修改手段、覆盖处理、目标程序优化、不同的程序设计语言合用,以及人机联系等功能。由于程序设计语言所编写的程序具有易读、易移植和表达能力强等特点,为此,编译程序广泛用于翻译规模较大,复杂性高、运行效率高和通用性强的程序设计语言所编的源程序。

汇编程序

能将汇编语言编写的源程序翻译成机器语言的目标程序的翻译程序。汇编过程通常采用两遍扫描源程序的算法。第一遍扫描源程序,收集符号的有关信息送入符号表中;第二遍扫描,将源程序中的符号化指令逐条翻译为相应的机器指令。汇编程序具有如下主要功能:将表示指令的助记符翻译成二进制代码、为用户符号地址分配存储单元、执行伪操作、进行宏处理、产生目标程序带、打印程序清单、进行语法检查、给出错误信息等。汇编程序可分为自汇编程序和交叉汇编程序两类:自汇编程序(驻留汇编程序)是指在计算机上能直接把汇编语言的源程序翻译成机器语言的翻译程序。具有自汇编能力的计算机,需要足够的存储容量来存放自汇编程序。交叉汇编程序是利用一台外围设备比较完善、存储容量比较大、功能较强的计算机对汇编语言的源程序进行调试,再借助于该计算机的汇编程序,生成另一台内存容量较小的计算机的机器语言的目标程序。