词法分析,语法分析,语义分析,中间代码生成,代码优化,代码生成。其中有符号表管理和错误处理,贯穿于整个编译器的过程。
编译器的一个基本功能是记录源程序中使用的标示符并收集每个标示符相关的各种属性信息。标示符的属性信息表明了该标识符的存储位置、类型、作用域。
符号表是一个数据结构,每个标示符在符号表中都有一条记录,记录的每个域对应于该标识符的一个属性。这种数据结构允许我们快速的找到每个标识符,并在该记录中快速的存储和检索信息。
标识符的属性信息由词法分析以后的各个阶段陆续写入符号表。
每个阶段都可能遇到错误,必须以恰当的方式进行错误处理,使得编译器能够继续运行,以检查出源程序更多的错误。
词法分析阶段,仅仅分理处源文件中的词语;语法分析,构成语法树;语义分析,对词语进行检测,填写符号表;中间代码生成,可以生成相关的四元式;代码优化阶段,可以有四元式变为三元士;代码生成,则可以形成汇编代码。