有汇编功能的python编译器_一门语言的编译器,可以由其他任何语言实现,那解释器呢?如果用 Python 这种性能差的语言写一门新的解释性语言,是不是性能就差了?...

经过探索,

我大概知道了, 编译器是 把代码 翻译成 汇编,

那么理论上 任何语言都行,

因为生成的汇编代码, 是独立于语言的, 最后,执行程序,是直接执行 汇编代码的

所以,用 c 和 python 同时开发一个编译器, 在编译程序的时候,python 会比 c 慢, 但编译完成 后, 执行 2 个目标程序, 性能应该是一样的,因为 2 个目标程序都是二进制的,和 原本的 c 、python 是无关的

类比就是 请了 2 个翻译,把一篇英语文章,翻译成中文, 翻译员 c 翻译的快,翻译员 python 翻译的慢,但如果我是等他们翻译完毕才看, 那么,他们的翻译速度对我来说,并没有什么影响

以上就是我对编译器的理解

而解释器,就不一样了, 用 c 和 python 同时开发一门语言的解释器, 那么, 用 c 开发的解释器,速度应该更快,

因为, 假设一段新语言的源代码, 同时传给 2 个 解释器(用 python 和 c 分别开发的解释器), 其工作原理如下:

解释器用自身的代码,做词法分析,语法分析,生成 ast,然后用自身的代码调用自身的函数,就达到了解释的目的

就好比用 python 写了一个解释器, 把一段代码传递给解释器后,解释器自身的逻辑是 python 写的,由于 python 自身有动态类型等特性,导致运行效率不如 c 这样的编译型语言效率高

而,c 写的解释器,当收到传入的代码后,解释器自身用 c 语言分析传入的文本代码,那么速度自然比 python 所写的解释器快很多

用 python 和 c 写解释器,本质和翻译也一样,不过这次是同声传译,即把英文文章实时翻译成中文,念给我听,c 翻译的快,我听得顺畅, python 翻译的慢,让我听的着急

假设我以上的理解正确

那么,如果我要实现一门解释性的脚本语言,类似 python 这种语言, 是否选择 c 这样的静态语言会比选 python,在性能上有更大的优势?

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值