【发布时间】:2011-11-03 10:29:45
【问题描述】:
根据各种来源(例如,the SE radio episode with Kevlin Henney,如果我没记错的话),“带类的 C”是用预处理器技术实现的(然后将输出馈送到 C 编译器),而 C++ 一直是实现的使用编译器(早期恰好吐出 C)。这似乎引起了一些混乱,所以我想知道:
预处理器和编译器之间的界限到底在哪里?什么时候把实现一种语言的软件叫做“预处理器”,什么时候把它叫做“编译器”?
顺便说一句,“编译语言”是一个既定术语吗?如果有,具体是什么意思?
【问题讨论】:
-
关于“编译语言”:它被使用,但很少伴随定义,并且经常被那些不知道有非 AOT 编译和编译到机器代码以外的目标的人,或者有一个过于严格的编译定义,不包括上述内容 - 如果没有将其定义得太严重,我不会使用该术语的文本;)
标签: c++ compiler-construction preprocessor terminology