有自己的类型机制,包括类型说明和使用。类型分析是编.ppt
5.8 类型分析?
每个程序设计语言都有自己的类型机制,包括类型说明和使用。
? 类型分析是编译器语义分析的重要组成部分?。编译器首先根据类型说明,确定每一个变量和常量的类型?,计算其使用存储空间的大小,从而建立其到存储空间的映射。进而,编译器要确定每个语言结构的类型,以完成下面的主要任务: (1) 判定重载算符(函数)在程序中代表是那一个运算;(2) 进行类型转换;(3) 对语言结构进行类型检查。;5.8.1 类型表达式
?5.8.1.1 类型表达式定义 ???
?语言结构的类型由类型表达式指称,类型表达式依赖于程序语言的类型体制。类型表达式或者是简单类型表达式,或者是构造符作用在类型表达式上得到的类型表达式。类型表达式的定义如下: ???(1) 类型名和基本类型是类型表达式。integer、char、real、boolean是基本类型,所以它们是类型表达式。另外,void表示“无类型”,type_error表示“出错类型”,它们也是类型表达式。;??(2)类型构造符作用于类型表达式的结果
仍然是类型表达式。类型构造符包括: ??(a)数组构造符ARRAY:若T是类型表达
式,则ARRAY(I,T)是类型表达式。 (b)笛卡儿乘积?:若T1、T2是类型表达
式,则T1? T2是类型表达式,且?是左结合。 ? (c)记录类型构造符RECORD:若有标识符N1、N2……、Nn与类型表达式T1、T2、
…、Tn, 则RECORD((N1 ? T1) ?
(N2 ? T2)? …? (Nn ? Tn))是一个类型表达式,它指称一个记录类型。 ;???(d)指针类型构造符POINTER:若T是类
型 表达式,则POINTER(T)是类型表达式,它指称一个指针类型。 ???(e)函数类型构造符→:若D1、D2、…、
Dn和R是类型表达式,则D1?D2 ? ……? Dn
→R是类型表达式,其中?优先于→,它指称
从定义域类型D1 ? D2 ? … ? Dn到值域类型R
的映射。 ??(3) 类型表达式中可出现类型变量,变量
值是类型表达式。;例5.23 ?设有Pascal 程序片段: ?TYPE stype=RECORD ??? ????????? name:ARRAY [1..8] OF char; ??? ??????? score:integer ??? ???????? END; ?VAR ??table:ARRAY [1..50] OF stype; ??? ?? ?p: ↑stype; 则stype代表的类型表达式 ?????RECORD((name?ARRAY(1..8,char))
? (score ? integer)) 和table绑定的类型表达式 ARRAY(1..50,stype) 和P绑定的类型表达式 ?POINTER(stype) ;?例5.24 ?设有下面的函数定义 ??? FUNCTION f(P1:T1;P2:T2;…,Pn:Tn):T; ??? BEGIN ……END; 和f绑定的类型表达式 T1?T2 ? … ? Tn→T ?例5.25 ?在函数式语言中可如下定义恒等函数 ??? fun f(x)=x ? x可以是任何类型的语言结构。因此x可以是任何类型。f的类型表达式为??
????
??? ?为类型变量,其值是任何类型表达式。;?类型表达式的表达方法 ???1.树:内部结点是类型构造符,叶结点是基本
类型,类型名或类型变量。例如,
FUNCTION f (a,b:char):?integer: ………
char?char?pointer(integer);2.位串(对类型表达式作某些限制)
例如,考虑由POINTER、→和ARRAY 作为
构造符的类型表达式。Pointer(t)表示指向类
型为t的指针,freturns(t)表示若干变元的函
数, 其中t为函数返回对象的类型, 而函数变
元的类型则存放在其它地方。ARRAY(t) 表
示元素类型为t 的数组,而数组元素的个数
保存在其它地方。这样,构造符都成为一元
算符,它们作用于 基本类型形成的类型表达
式有非常统一的结 构。; 类型构造符 编码
pointer 01 array 10
您可能关注的文档
最近下载
- 2025-2026学年高二物理上学期期末模拟卷【测试范围:人教版必修三+选修一】(考试版).pdf VIP
- 葡萄膜炎课件.PPT VIP
- 《数字化转型成熟度模型与评估》培训PPT.doc VIP
- 2025年江苏农牧科技职业学院单招职业技能测试题库及答案详解1套.docx VIP
- 倒推英语流利说APP产品需求文档.docx VIP
- 2025贵阳市工业投资有限公司管培生招聘试题及答案解析.docx
- 辽宁省名校联盟2025高考模拟卷押题卷物理一.docx VIP
- 经口内镜下贲门缩窄术治疗难治性胃食管反流病的临床效果.pptx VIP
- 浅析余华《活着》中的生命意义.docx VIP
- 伍伍慧《お月さま(月亮大人 otsukisama)》指弹吉他谱.pdf VIP
原创力文档

文档评论(0)