“编译器”与“解释器”的区别是?

来源:2-7 计算机的层次与编程语言

weixin_慕的地2356788

2019-07-08

请问程序翻译中使用的“编译器”与程序解析中的“解释器”的区别是?在ppt看起来都是为了完成L1语言到L0语言的转换,用途上似乎没有区别

写回答

1回答

咚咚呛

2019-07-08

先贴两张PPT的图。

//img.mukewang.com/szimg/5d2342a70001cd1f13420756.jpg

//img.mukewang.com/szimg/5d2342fc0001b2c013620762.jpg

先说编译:编译器完成了什么功能?编译器能够根据L1的逻辑生成L0,这里面的生成有很多额外的优化可以做,比如逻辑优化、指令优化等等,因此生成的L0从一定程度上来讲,他的执行效率是要比L1高的,在计算机上实际执行的是L0语言组成的程序。

再说解释:对于解释,解释并没有生成新的程序,而是有一个别的和用户逻辑不相关的程序,这个程序把L1的代码当做是一种输入,然后从输入里面逐行去把它解释成计算机能够理解的语言,然后让计算机去执行,就比如js,我在console写一行,计算机就执行一行,又或者是Python,也是我在终端写一行,计算机就执行一行,在这些语言的后面,都有一个解释器,去把语句解释成实际计算机能够理解的语言去执行。

最后举个例子,假设有只懂中文和只懂英文的两个人交流,中文为高级语言,英文为低级语言,那么对于翻译,则是先有一篇中文的文章,然后通篇翻译成一篇英文文章,然后再呈现给那个只懂英文的人交流,这里面要求中文的文章必须完整,这样才可以整篇进行翻译,而在翻译的过程中,可以对一些语法上的不同进行文章的优化,使得翻译出来的英文文章更加合理,这个就是编译。

而对于解释,解释就不要求中文的文章必须完整了,甚至不需要中文文章,可以是懂中文的人说一句,然后立即就给懂英文的人翻译一句,可以理解为实时翻译,这个就是解释。

这就是解释和编译的区别。希望对你有所帮助。

23
3
前端工程师666777888
也就是说 编译器是整篇翻译 解释器是实时翻译
2021-07-24
共3条回复

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程