加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C或C写一个编译器?

发布时间:2020-12-16 06:48:46 所属栏目:百科 来源:网络整理
导读:我想为自定义标记语言编写一个编译器,我想获得最佳性能,我也希望有一个良好的可扩展设计. 多范式编程语言(C)更适合实现现代design patterns,但我认为这会稍微降低性能(例如0700),或多或少可能使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并不一定会带来任何速度惩罚.决定是否做一些可能运行得更慢的事情完全取决于你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读