释义
注意此前端非web页设计前端。
目前的GCC的设计里,将整个编译过程分成了两个部分,前端和后端,前端分各种语言(C、C++,Fortran,)的语法、语义分析、解释器。但是后端只有一个,因为编译成到硬件可以理解的编码,就是实际的机器语言,这个机器语言对于一种架构,只有一套。
所以,如果如果想利用GCC开发另外一套语言,只要开发前端,而后端的工作就会很少。
前端分析的功能注意在gcc 目录。而后端设置,在gcc/config/目录下。 目前C前端的工作列表:https://gcc.gnu.org/projects/c-frontend.html 参考:https://tldp.org/HOWTO/GCC-Frontend-HOWTO-4.html http://www.semdesigns.com/Products/FrontEnds/CFrontEnd.html
概念引例
GCC参考手册:
7.2 Restricting Pointer Aliasing 、、限制指针的限制别名
通过C前端的解释器,G++可以理解C99里定义的限制指针,关联的类型限定词:__restrict__, or __restrict。
因为在C++编译时,不能指定-std=c99,所以C++里没有关键字restrict(解释不了)。 为了实现限制的指针,可以指定限制的引用,也就是说在本地上下文不能定义引用的别名。
Because you cannot compile C++ by specifying the ‘-std=c99’ language flag, restrict is not a keyword in C++. In addition to allowing restricted pointers, you can specify restricted references, which indicate that the reference is not aliased in the local context.
|