吉林大学:《编译原理》课程教学资源(PPT课件讲稿)类型表达式

类型表达式 类型的等价性 按名等价: type tp= array[1..10] of integer var a, b tp: 则称a,b是相同类型的变量 结构等价: type tp1 array[1..10] of integer type tp2=array [1.10]of integer var a: tpl b: tp2; 则称a,b是相同类型的变量 类型的相容性
类型表达式 类型的等价性 按名等价:type tp=array[1..10]of integer; var a,b:tp; 则称a,b是相同类型的变量 结构等价:type tp1=array[1..10]of integer type tp2=array[1..10]of integer; var a:tp1; b:tp2; 则称a,b是相同类型的变量 类型的相容性

类型相容性 运算分量类型的相容性 ÷赋值语句左右类型的相容性; 形参和实参类型的相容性 类型相容: ◆类型等价则相容 ◆整型或整型子界类型与整型、实型相容 ◆两个子界类型定义的范围相包含则相容 ◆对结构类型,如果同一结构,且子类型 相容则相容
类型相容性 运算分量类型的相容性; 赋值语句左右类型的相容性; 形参和实参类型的相容性; 类型相容: ⬧类型等价则相容 ⬧整型或整型子界类型与整型、实型相容 ⬧两个子界类型定义的范围相包含则相容 ⬧对结构类型,如果同一结构,且子类型 相容则相容

类型的分析 作用:构造类型的内部表示,类型检查。 分析过程:读 Token序列,识别出各种类型, 类型检查,返回类型内部表示的地址 array arrKind ow=1 tp1=intPtr 10 up=10 tp2=intPtr IndexPtr=(1, subTy, intPtr, 1,10) of integer ElemPtr=intPtr size=(up-low+1)*sizeof (int) aPtr:=(size, arrTy, IndexPtr, ElemPtr)
类型的分析 作用:构造类型的内部表示,类型检查。 分析过程:读Token序列,识别出各种类型, 类型检查,返回类型内部表示的地址。 array [ 1 .. 10 ] of integer arrKind … low=1 tp1=intPtr … up=10 tp2=intPtr IndexPtr= (1,subTy, intPtr ,1 ,10) … … ElemPtr=intPtr size=(up-low+1) * sizeof (int) aPtr := ( size, arrTy, IndexPtr, ElemPtr )

类型出现的位置: 类型定义 TYPE id=t; 变量声明 VAR id:t 过/函声明 Proce/ Func p(A1:t…,)(:t 类型的种类: name, subr ange, enum, array record, set file, pointer ÷类型分析模块: 类型检查,返回类型的内部表示地址Pr和 Forward
类型出现的位置: 类型定义 TYPE id = t; 变量声明 VAR id : t; 过/函声明 Proce/Func P(A1:t1,…)(:t) 类型的种类: name,subrange,enum,array,record,set, file,pointer…… 类型分析模块: 类型检查,返回类型的内部表示地址Ptr和 Forward

NameType 形式:id(类型标识符) ÷处理思想: 查符号表→>无声明错 ◆ type ind? ◆ TypePtr为Ptr的值 ◆ Forward:=0
NameType 形式:id (类型标识符) 处理思想: ⬧ 查符号表 → 无声明错 ⬧ typekind ? ⬧ TypePtr 为Ptr的值 ⬧ Forward:=0

EnumTvpe 形式:(a1,…,an) 处理思想: ◆生成a1,l的符号表 EntryList: (a;,Ptr, conskind,i),Ptr需回填 ◆生成内部表示: Ptr: =(enumSize, enumTy, EntryList, n) ◆回填 EntryList中的Ptr值 ◆ Forward:=0
EnumType 形式:(a1,… ,an) 处理思想: ⬧ 生成a1,…an的符号表EntryList: (ai,Ptr,consKind,i),Ptr需回填 ⬧ 生成内部表示: Ptr:=★(enumSize,enumTy,EntryList,n) ⬧ 回填EntryList中的Ptr值 ⬧ Forward:=0

SubRangeType 形式:C1C 处理思想: ◆从G1求出其内部类型地址Ptr1和值N1; ◆从C2求出其内部类型地址Ptr2和值N2; ◆检查Ptr1=Ptr2,N1≤N2; ◆Ptr:=★( subsize, subTy,Ptr1,N,N2) ◆ Forward:=0
SubRangeType 形式:C1..C2 处理思想: ⬧ 从C1 求出其内部类型地址Ptr1和值N1; ⬧ 从C2 求出其内部类型地址Ptr2和值N2; ⬧ 检查Ptr1 =Ptr2,N1 N2; ⬧ Ptr:=★(subSize,subTy,Ptr1 ,N1 ,N2 ) ⬧ Forward := 0

ArrayType 形式: array to of t1 处理思想 ◆返回To,T1的内部表示地址 Indexptr,E| emPtr ◆判定 Indepth是否为下标类型 ◆计算size=( IndexPtr个,Up I ndexPtr1Low+1)×( ElemPtr↑.Size) ◆Ptr:=★(size, arrarY, Indexptr,E| emPtr)
ArrayType 形式:array T0 of T1 处理思想: ⬧ 返回T0,T1的内部表示地址IndexPtr,ElemPtr ⬧ 判定IndexPtr是否为下标类型 ⬧ 计算size = (IndexPtr↑. UpIndexPtr↑. Low +1) (ElemPtr↑. Size); ⬧ Ptr:=★(size,arrayTy,IndexPtr,ElemPtr)

Set Type 形式: set of t ÷处理思想: ◆返回T的内部表示地址 BasePtr ◆检查 BasePtr是否为有序类型; ◆Ptr:=★( setsize, setTy, Baseptr)
SetType 形式:set of T 处理思想: ⬧ 返回T的内部表示地址BasePtr; ⬧ 检查BasePtr 是否为有序类型; ⬧ Ptr:=★(setSize,setTy,BasePtr)

File type +形式: file of t +处理思想: 返回T的内部表示地址 compUtr; ◆Ptr:=★( filesize, fileT, CompPtr) 返回地址Ptr
FileType 形式:file of T 处理思想: ⬧ 返回T的内部表示地址compPtr; ⬧ Ptr:=★(fileSize,fileTy,CompPtr) 返回地址Ptr
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)符号表.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)语义分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)简单优先分析方法.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)LALR(1)方法.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)LR(1)分析方法.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)LR(0)分析方法的不足.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)LL分析方法—自顶向下分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)自顶向下分析——递归下降法.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)文法例1.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第四章 文法与语法分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)有限自动机(Finite Automata).ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)正则表达式.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第三章 有限自动机和词法分析器.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第十章 目标代码生成.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第九章 中间代码优化.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第七章 动作文法和属性文法.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第六章 运行时的存储空间.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第二章 一个微小的编译器.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第一章 编译程序概述.ppt
- 吉林大学:《编译原理》课程教学资源(试题习题)2001 级试题(B).doc
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)程序的语义分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)执行体的语义分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)第八章 中间代码生成.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)原子语句的中间代码.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)原子语句的中间代码.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)自底向上分析-LR分析概述.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)派生定理.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)LR(0)分析.ppt
- 吉林大学:《编译原理》课程教学资源(PPT课件讲稿)总结.ppt
- 合肥工业大学:《Solidworks3d造型》课程教学课件(PPT讲稿)第1章 基础知识(主讲:胡延平).ppt
- 合肥工业大学:《Solidworks3d造型》课程教学课件(PPT讲稿)第2章 三维实体建模方法.ppt
- 合肥工业大学:《Solidworks3d造型》课程教学课件(PPT讲稿)第三章 草图绘制.ppt
- 合肥工业大学:《Solidworks3d造型》课程教学课件(PPT讲稿)第4章 零件建模的草绘特征.ppt
- 合肥工业大学:《Solidworks3d造型》课程教学课件(PPT讲稿)第5章 放置特征.ppt
- 合肥工业大学:《Solidworks3d造型》课程教学课件(PPT讲稿)第7章 特征复制.ppt
- 合肥工业大学:《Solidworks3d造型》课程教学课件(PPT讲稿)第10章 零件工程图.ppt
- 合肥工业大学:《Solidworks3d造型》课程教学课件(PPT讲稿)第9章 零件装配.ppt
- 合肥工业大学:《Solidworks3d造型》课程教学课件(PPT讲稿)复习提纲.ppt
- 《单片机应用技术实践指导资料》PDF电子书.doc
- 《单片机应用技术实践指导资料》实训指导书.doc