欢迎光临散文网 会员登陆 & 注册

编译器和转译器的区别

2023-08-15 00:02 作者:卢朓  | 我要投稿

编译器(compiler)是一种将高级语言转换为低级汇编语言的软件,我们都非常熟悉它的名称和工作原理。转译器(transfiler)是另一种软件,有时被称为源码到源码编译器,它将一种高级语言转换为另一种高级语文。

 需要一个转译器的原因是,将一个大型程序用另一种语言重新编码是非常耗时的。因此,最好编写一个能完成这项工作的从一种语言到另一种语言的转译器。如果要阅读每一篇外国研究论文,我们必须理解外语,那么这将需要付出很多努力。没有翻译的生活很艰难,没有转移器的生活也很艰难。

编译器:编译器是指以某种语言编写的源代码作为输入,并将其转换为其他语言的输出代码的任何程序,通常具有较低的抽象级别。在实践中,编译器将用高级编程语言编写的代码转换为汇编语言,高级编程语言对机器的抽象程度更高,但对人类的可读性更强。汇编语言在机器级抽象程度较低,很容易转换为二进制机器代码,但对人的理解能力很低。在编译器中,源代码被扫描、解析、转换为语义分析的抽象语法树,然后转换为中间代码,最后转换为汇编语言。

转译器:转译器还将用某种语言编写的输入源代码转换为另一种语言的输出代码,与源代码相比,该语言具有类似的抽象级别。转译器将代码从一种高级语言(如fortran)转换为另一种具有类似抽象级别的高级语言(例如C++)。这个输出对硬件来说仍然是抽象的,需要编译器转换成汇编语言才能在机器上运行。在转译器中,源代码被解析,并转换为抽象语法树,然后转换为中间模型。然后将其转换为目标语言的抽象语法树,并生成代码。


free book http://www.craftinginterpreters.com/contents.html






编译器和转译器的区别的评论 (共 条)

分享到微博请遵守国家法律