语义的分析在编译程序中的作用.ppt

语义的分析在编译程序中的作用.ppt

语义分析在编译程序中的作用 第六章 语义分析 6.1 语义分析概述 6.2 符号表 6.3 类型的语义分析 6.4 声明的语义分析 6.5 程序体的语义分析 6.6 属性文法和动作文法 6.1 语义分析概述 语法(Syntax)和语义(Semantics)的区别 语义分析的必要性 程序设计语言语义的分类 如何描述程序设计语言的语义? 语义分析的主要任务 语法和语义的区别 语法: 是描述一个合法定义的程序结构的规则 例如:函数调用语句 ? id( 实参表达式) 语义: 说明一个合法定义的程序的含义 语义分析的必要性 一个语法正确的程序不能保证它是有意义的! 程序中容易出现各种语义错误: 标识符未声明 操作数的类型与操作符的类型不匹配 …… 程序设计语言语义的分类 静态语义 编译时(compile-time)可以检查的语义 例如:标识符未声明 动态语义 目标程序运行时(run-time)才能检查的语义 例如:除零溢出错误 如何描述程序设计语言的语义? 程序设计语言的形式语义 属性文法 (用于描述静态语义) 操作语义(Operational Semantics) 指称语义(Denotational Semantics) 代数语义(Algebra Semantics) 公理语义(Axiomatic Semantics) 形式语义技术没有形式语法成熟 硕士研究生的课程-《形式语义学》 语义

文档评论(0)

1亿VIP精品文档

相关文档