哪个有更好的编译器设计应用程序?

时间:2016-11-07 21:02:02

标签: compiler-construction compiler-optimization

正如我们大多数人所知,创建编译器总是一项艰巨的任务。我确实想知道哪个库有更好的应用程序,Java或C.我在这里看到的问题是Java与C相比要长得多,但是它有更多的控制自由。 C编译时间较短且可能更快,但它不允许 AS 进行大量控制。在意见中,哪一个会更好地应用它?

1 个答案:

答案 0 :(得分:0)

构建编译器主要需要算法和数据结构,这些算法和数据结构不是任何一种语言提供的标准库的原生:

  • 词位
  • 通过将许多正则表达式组合成多出口状态机来进行词法提取
  • 词汇流
  • 抽象语法树
  • 用于检查语法和构建AST的解析器
  • 控制流程图
  • 控制流程构建
  • ......还有更多......

为了构建编译器,你最终将所有这些数据类型定义为结构或对象,并手写代码来实现这些想法。

因此,C或Java都不会“更容易”用于此任务。

小心谨慎,C版本可能比同等的Java版本更快。

如果您真的想快速编写编译器,则需要找到一个工具或框架,为您提供这些结构和算法such as our DMS Software Reengineering Toolkit,这样您就不必全部发明它们。