文件名称:编译器通用结构-analysis i terence tao third edition
文件大小:4.28MB
文件格式:PDF
更新时间:2024-06-27 22:51:54
OpenMP
图 3.5 编译器通用结构 从逻辑上,上面的各个功能模块完成了编译过程中的一个步骤(phrase),每个步骤都将 源程序从一种表示输出为另一种表示。下面就这八个功能模块和执行流程分别进行简单的分析 讨论。 3.2.1 功能模块 除了符号表管理和错误处理在系统各处分散存在外,其他功能模块都是比较独立的。 词法分析程序 词法分析(Lexical analysis)或扫描(Scanning)是编译器最前端的输入模块,它将源代码 文件中的一个长长的字符串,逐个识别为有意义的词素(Lexeme)或单词符号,并转变为便 于内部处理的格式来保存。 通常词法扫描器的工作任务有:识别出源程序中的各个基本语法单位(通常称为单词或语 法符号);删除无用的空白字符、回车字符以及其他与语言无直接关系的非实质性字符;删除 注释行;进行词法检查并报告所发现的错误。 对于识别出来的单词,可以用形如(Class, Value)的二元式来表示,其中 Class 是一个整 数代码用来指示该单词的类别,Value 则是单词的取值。 词法 分析 程序 语法 分析 程序 语义 分析 程序 中间 代码 生成 代码 优化 模块 目标 代码 生成 源 程 序 目 标 程 序 错误检查与处理 信息符号表管理