gpt4 book ai didi

c++ - *任何*流行的编程语言解释器的主要实现是用 C++ 编写的吗?

转载 作者:IT老高 更新时间:2023-10-28 23:12:07 24 4
gpt4 key购买 nike

目前我正在考虑是否重写我用 C++ 维护的编程语言解释器。解释器目前是用 C 语言实现的。

但我想知道,primary 实现——因为,当然,人们已经使用不同于原作者使用的语言制作了许多解释器的版本——任何流行的 目前使用的编程语言解释器是用 C++ 编写的?

如果没有,是否有充分的理由不用 C++ 编写解释器?我的理解是,如果 C++ 代码编写得当,那么它的可移植性非常好,并且可能编译后运行的速度与执行相同操作的已编译 C 代码一样快。

最佳答案

我用 C++ 编写了一个解释器(在多年使用 C 之后),我认为 C++ 是一种体面的语言。关于实现,我只会回到过去,改变我对实现同时运行多个不同解释器(每个多线程)的可能性的选择,仅仅是因为它使代码更复杂,而且它从未使用过。多线程非常有用,但是解释器的多个实例毫无意义......

但是现在我最大的遗憾确实是我编写了那个解释器,因为现在它已在生产环境中使用,编写了相当多的代码并经过培训,而且因为该语言相当丑陋并且不如 python 强大......但现在切换到 python 会增加成本。它没有我知道的错误......但它比 python 更糟糕,这是一个错误(除了无缘无故支付编写成本的错误之外)。

我最初应该使用 python 代替(或 lua 或任何其他易于嵌入且具有合理许可的现成解释器)......我唯一的借口是我不了解 python 或那时的lua。

虽然编写解释器作为编程练习是一件很有趣的事情,但我建议您避免为生产环境编写自己的解释器,尤其是(请不要把它个人化)如果低级复杂性需要的照顾已经不存在了在你的范围内(例如,我发现几个内存泄漏的存在非常令人震惊)。

C++ 仍然是一种低级语言,虽然您可以在内存处理方面获得一些帮助,但 该语言的主要假设是您的代码是 100% 正确,因为没有运行时错误会帮助你(只有未定义的行为守护进程)。

如果您错过了 C(一种更简单的语言)代码 100% 正确的假设,那么我看不出您如何确信您会用 C++ 编写正确的代码(相比之下,这是一个复杂的怪物)。我怀疑你最终会得到另一个你必须扔掉的错误解释器。

关于c++ - *任何*流行的编程语言解释器的主要实现是用 C++ 编写的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3185593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com