摘要: 词法单元的规约: 串和语言: 字母表:一个有限的符号集合,符号的典型例子包括字母、数位和标点符号 串:字母表中符号的一个有穷序列 串s的前缀:从s的尾部删除0个或多个符号得到的串 串s的后缀:从s的开始处删除0个或多个符号后得到的串 串s的子串:删除s的某个前缀和某个后缀之后得到的串 串s的真前缀: 阅读全文
posted @ 2020-03-11 17:47 方知有 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 输入缓冲: 加快源程序读入速度 缓冲区对: 减少用于处理单个输入字符的时间开销 lexemeBegin指针:该指针指向当前词素的开始处,当前正试图确定这个词素的结尾;确定一个词素后,lexemeBegin指针指向该词素之后的第一个字符 forward指针:一直向前扫描,直到发现某个模式被匹配为止,并 阅读全文
posted @ 2020-03-11 16:10 方知有 阅读(704) 评论(0) 推荐(0) 编辑
摘要: 词法分析器: 作用: 与符号表进行交互,存储和读取符号表中的标识符的信息 读入源程序的输入字符,将他们组成词素,生成并输出一个词法单元序列,每个词法单元序列对应一个于一个词素 过滤掉程序中的注释和空白 将编译器生成的错误消息与源程序的位置联系起 相关概念: 词法单元:由一个词法单元名和一个可选的属性 阅读全文
posted @ 2020-03-11 15:36 方知有 阅读(1551) 评论(0) 推荐(0) 编辑
摘要: 生成中间代码: 两种中间表示形式: 树形结构:语法分析树、抽象语法树 抽象语法树的构造: 可以为任意的构造创建抽象语法树,每个构造用一个结点表示,其子结点代表此构造中具有语义含义的组成部分 在语法分析过程中,将创建抽象语法树的结点来表示有意义的程序构造,随着分析的进行,信息以与结点相关的属性的形式被 阅读全文
posted @ 2020-03-11 12:11 方知有 阅读(756) 评论(0) 推荐(0) 编辑