(1)翻译程序是指把高级语言源程序翻译成机器语言程序的软件。一个翻译程序就是一个编译程序,将高级语言程序(源程序)转化成低级语言程序(目标程序)。汇编程序也是一种语言翻译程序,它把汇编语言源程序翻译成机器语言程序。区别:如果源语言是像FORTRAN、Pascal或C那样的高级语言,目标语言是像汇编语言或机器语言那样的低级语言,则这种翻译程序称作编译程序。如果源语言是汇编语言,而目标语言是机器语言,这样的一个翻译程序称作汇编程序。
(2)编译过程通常分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成六个阶段。各个阶段的功能:词法分析,读入源程序,对构成源程序的字符流进行扫描和分解,识别出一个个单词,并表示成计算机内部形式。语法分析,在词法分析的基础上,将单词序列分解成各类语法短语。语义分析,审查源程序有无语义错误,为代码生成阶段收集类型信息。中间代码生成,将源程序翻译成一种复杂性介于源程序与目标程序之间的内部形式。代码优化,对前一阶段产生的中间代码进行等价交换,目的是使生成的目标代码更为高效。目标代码生成,把中间代码变换成待定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
(3)编译程序能生成目标程序,而解释程序不能。编译程序是整体翻译完再一次性执行,而解释程序是一边翻译一边执行的。编译程序把源程序的每一条语句都编译成机器语言,并保存成二进制文件,而解释程序则是只在执行程序时,才一条条的解释成机器语言来运行此程序。
(4)编译器是一种将“高级语言”翻译为能直接被计算机或虚拟机执行目标代码的程序,编译器的效率直接影响程序运行性能和效率。方舟编译器是首家完全替代语言虚拟机的静态编译器,完全不需要解释器,兼顾Java开发效率和C语言进行效率的编译器。
浙公网安备 33010602011771号