[hellogcc] 请教一下编译器前端语法树和符号表问题

  • From: bang bang <shenoubang@xxxxxxxxx>
  • To: hellogcc@xxxxxxxxxxxxx
  • Date: Thu, 18 Apr 2013 10:43:47 +0800

各位研究编译器的爱好者们,你们好:
          最近我在研究GCC(GCC-3.4.6)的前端,现在遇到一些很疑惑的问题,麻烦各位能解答一下。
1.前端主要是词法分析和语法分析,在使用Bison进行语法分析的时候,建立很多种树,其中有block树,里面用var把块里面的变量进行链接,用superblok链接上一层block,subblok链接下一层block,block里面有一个var的链表,照我理解就是GCC里面的符号表嵌入到树里面,这样做的一个好处就是能很好的解决变量命名冲突的问题,但是查找符号的过程是不是很麻烦?假如有一个全局变量,我在一个bock里面要使用这个全局变量,在语法分析的时候,我得检查这个全局变量是否存在,那么gcc是怎么查找这个全局变量?是通过块一层一层往上查?还是有其他的方法?
2. GCC中定义了一个hash表,想请问一下这个hash表里面的具体内容和如何使用?这个hash表跟语法树之间又有什么联系?

-- 
ADDRESS:清华大学FIT楼4-308
TEL: 156-1166-2737

Other related posts: