- 13
- 0
- 约3.7万字
- 约 30页
- 2019-05-31 发布于天津
- 举报
第五章类型检查-Read.doc
PAGE
PAGE 1
第五章 类 型 检 查
编译器必须检查源程序是否满足源语言在语法和语义两个方面的约定。这种检查叫做静态检查(以区别在目标程序运行时的动态检查),它诊断和报告程序错误。静态检查的例子有:
(1)类型检查 如果算符作用于不相容的运算对象,编译器报告错误。例如数组变量和函数变量相加。
(2)控制流检查 对于任何引起控制流离开一个结构的语句,程序中必须有该控制转移可以转到的地方。例如,C的break语句引起控制离开最小包围的while, for或switch语句,如果这样的包围语句不存在,则是一个错误。
(3)唯一性检查 有些场合,对象必须正好被定义一次。例如,在Pascal语言中,标识符必须唯一地声明,case语句的分情形常量必须有区别,枚举类型的元素不能重复。
(4)关联名字检查 有时,同样的名字必须出现两次或更多次。例如,在Ada语言中,循环或程序块可以有名字出现在它的开头和结尾。编译器必须检查两个地方是否使用同样的名字。
本章集中于类型检查。上面的列举表明,大多数其它静态检查是一些简单的工作,可以用上章所讲的技术实现。其中有些工作可以并入编译器的其它部分,例如,在把名字的信息填入符号表时,可以检查该名字声明的唯一性。许多Pascal编译器把静态检查和中间代码生成组织在分析的同时完成。对于更复杂的结构,如Ada中
您可能关注的文档
最近下载
- 麻醉药品和精神药品临床应用与管理培训试题含答案.pdf VIP
- 2025年金融风险管理师风险价值的基本假设与局限性专题试卷及解析.pdf VIP
- 微脉和微脉圈.docx VIP
- 2025年互联网营销师A_B测试未来发展趋势专题试卷及解析.pdf VIP
- 2025年化工工程师过滤机选型中的生产能力计算与规模确定专题试卷及解析.pdf VIP
- 2025年信息系统安全专家漏洞评估流程与方法论专题试卷及解析.pdf VIP
- 2025年无人机驾驶员执照风险评估工具知识点综合应用与模拟决策专题试卷及解析.pdf VIP
- 新时代核心英语教程写作2教学课件U7 Description.pptx VIP
- 有机酸的定量检测方法.pdf VIP
- 【最新】人教版一年级下学期数学期末模拟试卷(9套试卷).doc VIP
原创力文档

文档评论(0)