- 3
- 0
- 约1.36千字
- 约 8页
- 2023-03-12 发布于四川
- 举报
第4章 语义分析和中间代码生成4.1 概述 4.2 属性文法 4.3 几种常见的中间语言 4.4 表达式及赋值语句的翻译 4.5 控制语句的翻译 4.6 数组元素的翻译 4.7 过程或函数调用语句的翻译 4.8 说明语句的翻译4.9 递归下降语法制导翻译方法简介第一页,共八页。4.1 概 述4.1.1 语义分析的概念 源程序经过词法分析、语法分析后,表明该源程序书写正确、符合程序语言所规定的语法,但语法分析并未对程序内部的逻辑含义加以分析,因此编译程序接着进行语义分析,即审查每个语法成分的静态语义。如果静态语义正确,则生成与该语言成分等效的中间代码,或直接生成目标代码。第二页,共八页。 直接生成机器语言或汇编语言形式的目标代码的优点是编译时间短且无需中间代码到目标代码的翻译,而生成中间代码的优点是使编译结构在逻辑上更为简单明确,特别是使目标代码的优化较易实现。 语义分析进行的语义检查有两类:动态语义检查和静态语义检查。动态语义检查需生成相应的目标代码,在运行时进行;静态语义检查在编译时进行。第三页,共八页。静态语义检查涉及以下几个方面:(1)类型检查,如运算操作数的类型应相容。(2)控制流检查,用以保证控制语句有合法的 转向点。如C语言中不允许goto语句转入 case语句流;break语句需寻找包含它的最 小switch、while或for语句方
原创力文档

文档评论(0)