- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章:语义分析 符号表管理实例 1.语义分析部分三个核心知识点 检查语义错误 抽象地址的分配(层数、偏移) 符号表局部化、标识符的作用域 2.处理原则 符号表局部化处理的本质:在程序的某一个点P上,判断符号表的哪些信息是有效的 因此有以下原则: 每进入一个局部化区,记录本层符号表的首地址 遇到声明性标识符时,构造其语义字,查本层的符号表,检查是否有重名,有则出错,否则就把其语义字填到符号表里。 遇到使用性出现,查符号表,如果查到则读取其语义字,否则出现语义错误。 退出一个局部化区,作废本层的符号表。 3.Pascal语言的符号表的管理 Pascal语言的最大特点就是允许嵌套的过程声明。规定Pascal主程序的层数为0,在主程序中声明的标识符(包括过/函标识符)的层数为1,在第i层过/函中声明的标识符(包括形参和局部标识符)的层数为i+1(i≥1)。 用一个Scope栈来实现标识符的嵌套作用域。 Scope栈的每项指向当前仍有效的某层符号表的首项,具体说Scope(0) 指向0层符号表的首项,Scope(i) 指向i层符号表的首项。 删除法实现符号表的局部化的具体做法是:弹掉Scope栈的栈顶元素,同时释放当前层的符号表,即调整符号表区的指针。 假设用?表示层数计数器,用s表示符号表的最后一项的地址,则删除式的局部化实现算法可描述如下: s := Scope[?]-1 ? := ? -1 ; Pascal语言的符号表的实例(删除法) procedure P1( ) var i,j,k:integer; {t1} procedure Q2( ) var a, b: real; procedure R3( ) {t2} var a,b:boolean; {t3} begin R的过程体(a,b,i) end begin Q的过程体(a,b,i) end; procedure S2( ) var c,e:char; {t4} begin S的过程体(a,b,i,Q) end ; {t5} begin P的过程体 (a,b,i,P,Q,S) 20. end; 21 begin..P( );..end. 驻留式方法又可分为标记法和跳转法。 标记法是给每个表项增加一个标记域,当某个表项变为无效时,就将该标记域设为无效; 跳转法,又可分为有从前往后和从后往前两种(即上跳和下跳两种)。 关于Pascal语言的符号表的实例 (跳转法) procedure P( ) var i,j,k:integer; {t1} procedure Q( ) var a, b: real; procedure R( ) {t2} var a,b:boolean; {t3} begin R的过程体(a,b,i) end; begin Q的过程体(a,b,i) end; procedure S( ) var c,e:char; {t4} begin S的过程体(a,b,i) end; {t5} begin P的过程体 (a,b,i) end begin ..... end. 4.C语言的符号表的管理 C语言不允许函数的嵌套声明。 一个C程序是由若干个函数并列组成的(其中一定要有main函数),这些函数的地位都是相同的。从main函数调用开始执行,在后面声明的函数可以调用在它之前声明的函数。 C语言的每个标识符的层次只有两个,即0层和1层。全局标识符和所有的函数标识符的层数是0,函数的形式参数和局部标识符的层数是1。 (2) 带有分程序结构的C语言符号表 5.嵌套式语言并列式语言的比较 特殊情形,从程序设计语言的角度来说有嵌套式语言和并列式语言 从处理难度角度来说,可能嵌套式语言复杂,并列式简单。 嵌套式语言里还要考虑变量运行环境。 并列式语言的层数分成两层,全局量定义成0层,局部量
您可能关注的文档
最近下载
- 工程建设管理工作报告(竣工).doc VIP
- 25题项目总工程师岗位常见面试问题含HR问题考察点及参考回答.pdf VIP
- 2025年慈善事业互联网+模式分析及未来五年发展趋势报告.docx VIP
- (浙教2024版)科学八上第2章《力与空间探索》 复习课件(新教材).pptx
- 社区工作者述职报告5篇.docx VIP
- 《中国共产党简史》第二章 掀起土地革命的风暴.pptx VIP
- (高清版)DB31∕T 1487-2024 国际医疗服务规范.docx VIP
- 2024年十八项医疗核心制度-中级理论考试题及答案.docx VIP
- 2025年宁夏警务辅助人员招聘考试(综合应用能力测试+警务基础知识测试)全真试题及答案.docx VIP
- 2025年海外归国留学生秋季就业发展报告.pdf VIP
原创力文档


文档评论(0)