请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

1回答

咚咚呛 2019-07-08 21:39:01

先贴两张PPT的图。

https://img1.sycdn.imooc.com//szimg/5d2342a70001cd1f13420756.jpg

https://img1.sycdn.imooc.com//szimg/5d2342fc0001b2c013620762.jpg

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

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

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

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

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

22 回复 有任何疑惑可以回复我~
  • 这个关于解释器和编译器的解释有点精辟
    回复 有任何疑惑可以回复我~ 2019-08-02 20:26:35
  • 这个解释十分精辟!终于理解了!
    回复 有任何疑惑可以回复我~ 2020-03-02 13:56:04
  • 也就是说
    编译器是整篇翻译
    解释器是实时翻译
    回复 有任何疑惑可以回复我~ 2021-07-24 22:24:09
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信