C或C写一个编译器?

C或C写一个编译器?,第1张

概述我想为自定义标记语言编写一个编译器,我想获得最佳性能,我也希望有一个良好的可扩展设计. 多范式编程语言(C)更适合实现现代design patterns,但我认为这会稍微降低性能(例如0700),或多或少可能使C成为更好的选择. 我想知道什么是最好的语言(C,C甚至客观C),如果有人想要创建一个快速,高效和精心设计的现代编译器(在遵守作为软件的现代软件工程原理的意义上). C中的“昂贵”特性(例如 我想为自定义标记语言编写一个编译器,我想获得最佳性能,我也希望有一个良好的可扩展设计.

多范式编程语言(C)更适合实现现代design patterns,但我认为这会稍微降低性能(例如0700),或多或少可能使C成为更好的选择.

我想知道什么是最好的语言(C,C甚至客观C),如果有人想要创建一个快速,高效和精心设计的现代编译器(在遵守作为软件的现代软件工程原理的意义上).

解决方法 C中的“昂贵”特性(例如,例外,虚函数,RTTI)在C中根本不存在.当你用C模拟它们时,你可能最终得到的东西至少和它一样昂贵.在C中,但不太为人所知,文档较少等等(让我们面对现实:编译器编写者并不愚蠢 – 虽然你可以实现比他们“更好”的功能,但实际上并不是特别可能).

在另一个方向,模板(例如)通常使得编写代码相对容易,这比C中的实际快得多.仅仅对于一个明显的例子,使用std :: sort的C代码通常是两到三倍.快速作为使用qsort的等效C代码.

结论:C程序比用C语言编写的等效程序慢的唯一原因是你决定(无论出于何种原因)编写较慢的代码.常见的原因是简单性和可读性 – 在大多数情况下,这些比执行速度更重要.尽管如此,使用C并不一定会带来任何速度惩罚.决定是否做一些可能运行得更慢的事情完全取决于你.

总结

以上是内存溢出为你收集整理的C或C写一个编译器?全部内容,希望文章能够帮你解决C或C写一个编译器?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224408.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存