聊聊编译原理(二)中,我们详细的介绍了编译器工作流程中的第二个步骤:语法分析。在这篇文章中,我们开始学习编译过程中的第三个重要步骤:语义分析。

语义分析

语义分析也称为类型检查、上下文相关分析,它负责检查程序(抽象语法树)的上下文相关的属性。

语义分析的操作十分依赖于该语言的语法格式,不同语言的语义分析有可能完全不一样。

符号表

在计算机科学中,符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明或使用信息绑定在一起,比如其数据类型、作用域以及内存地址。