为什么编辑需要这么长时间?

我正在设计一种编程语言,我在想的一个问题是为什么编程语言花费很长时间来编译。 假定c ++需要很长时间,因为每次编译文件时都需要解析和编译头文件。 但是我 - heard-预编译头文件需要很长时间? 我怀疑c ++不是唯一有这个问题的语言。


一个C ++特有的问题使其变得非常慢,因为与几乎任何其他语言不同,您无法独立于语义分析来解析它。


编译是一个复杂的过程,涉及到很多步骤:

  • 扫描/乐星
  • 解析
  • 中间代码生成
  • 可能的中间代码优化
  • 目标机器代码生成
  • 可选择依赖于机器的代码优化
  • (不考虑链接)

    当然,这对于较长的程序来说需要一些时间。


    预编译头文件的速度更快,至少自1988年以来就已知道。

    C编译器或C ++编译器花费很长时间的通常原因是它必须#include,preprocess,然后lex gazillions tokens。

    作为一个练习,你可能会发现只需要在一个典型的头文件集合上运行cpp需要多长时间 - 然后衡量需要多长时间来分离输出。

    gcc -O使用由Chris Fraser和Jack Davidson开发的非常有效但速度较慢的优化技术。 大多数其他优化器可能会很慢,因为它们涉及对相当大的数据结构的重复迭代。

    链接地址: http://www.djcxy.com/p/85401.html

    上一篇: Why do compilations take so long?

    下一篇: how can you configure spring to execute overlapping fixedRate tasks?