正在加载图片...
语义分析器的角色 不同的语言语义分析器扮演不同的角色 强制不同 ● FORTRAN和C允许在表达式中混合使用各种类型 Ada类的语言根本不允许 ●执行动态检查多少不同 ●C语言几乎不做,除了硬件顺便做的(除0,数组越界等) ●Java尽可能地检查许多规则,以便保证无法信任的程序不会对其 运行所在的机器的存储或文件造成任何破坏。 通常语义分析器创建一棵带标注的语法树,随后由中 间代码生成器 线性化为某种理想机器的汇编语 ●语义分析和中间代码生成可以与语法分析交错进行, 也可单独作为一遍。语义分析器的角色 不同的语言语义分析器扮演不同的角色 ⚫ 强制不同 ⚫ FORTRAN和C允许在表达式中混合使用各种类型; ⚫ Ada一类的语言根本不允许。 ⚫ 执行动态检查多少不同 ⚫ C语言几乎不做,除了硬件顺便做的(除0,数组越界等) ⚫ Java尽可能地检查许多规则,以便保证无法信任的程序不会对其 运行所在的机器的存储或文件造成任何破坏。 通常语义分析器创建一棵带标注的语法树,随后由中 间代码生成器将它线性化为某种理想机器的汇编语言。 语义分析和中间代码生成可以与语法分析交错进行, 也可单独作为一遍
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有