关于解释器与编译器区别的个人理解

    解析器和编译器它们在功能上是不一样的,然而从结构上看却有诸多相同,而且在开发时也并没有本质上的差别,这导致很多人有时很容易混淆两者。但是有可能某一个闲下来的时刻还是会想知道,作为一个菜鸡程序员我经过一番搜索有了一些个人理解,在此记录下来和大家分享。

    用比较正式的解释来说,读入源语言后,解释器和编译器都要进行词法分析、语法分析和语义分析,之后,二者开始有所分别。解释器在语义分析后选择了直接执行语句;编译器在语义分析后选择将将语义存储成某一种中间语言,之后通过不同的后端翻译成不同的机器语言(即可执行程序)。而如果通俗一点可以举个不太恰当但是具象的例子:假如两个程序员同事猿A和猿C在某一天都在加班赶工期,到晚上的时候两人都感觉饿了想买点夜宵吃,猿A下楼去楼下商店买了一桶方便面,猿A吃面时觉得太单调了又下楼买了几根火腿肠,猿A吃完后觉得口渴便下楼去买了瓶水,而猿C则打开外卖软件将想买的水、食物等列好清单备注,便由外卖小哥一起送上来了。猿A如同解释器,做得时候直接做想到什么做什么,猿C就像编译器将要做的事情全部存储在中间设备(备注)上,由平台(外卖小哥)执行,这样执行效率更高。当然实际运行的时候会有更详细复杂的不同,这个例子可能不够贴切。如有谬误还望大佬们指正。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值