编译原理 符号表_第1页
编译原理 符号表_第2页
编译原理 符号表_第3页
编译原理 符号表_第4页
编译原理 符号表_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

表格管理种类符号表、关键字表、层次表、常数表关键字表表项结构关键字标识(整数,如WHILE,IF)关键字名字(字符串,如"while","if")常用的操作:intIsKeyword(charName[]);层次表保存各级分程序、循环语句、条件语句的有关信息如:局部名字、转移标号等辅助标识符的管理符号表保存名字及其属性名字:变量名,过程名,标号名和常数名属性:种类,类型,存储类别,作用域等作用绑定的完成、空间分配、特殊语法现象、语义合法性检查符号表的功能建立表项以标识符为关键字属性的设置与引用类型、作用域、存储类别、地址等符号表的实现实现方法:线性表、排序表、散列表(哈希)特殊问题结构成员、函数参数、分程序结构性能优先考虑查找的效率第9章符号表

9.1符号表的作用和地位9.2符号的主要属性及作用9.3符号表的组织6符号表的作用和地位——语义检查的依据和目标代码生成阶段地址分配的依据属性信息:存放语言程序中出现的有关标识符的属性信息,在编译的不同阶段都要用到。语义检查:在语义分析中,符号表所登记的内容将用于语义检查(如检查一个名字的使用和原先的说明是否一致)和产生中间代码。存诸分配:在目标代码生成阶段,当对符号名进行地址分配时,符号表是地址分配的依据。对一个多遍扫描的编译程序,因为每遍所关心的信息各有差异,所用的符号表内容也往往各有不同。一张符号表的每一项(或称入口)包含两大栏(或称区段、字域),即名字栏和信息栏。

名字栏(NAME)信息栏(INFORMATION)第1项(入口1)

第2项(入口2)

第n项(入口n)信息栏包含许多子栏和标志位,用来记录相应名字和种种不同属性,由于查填符号表一般是通过匹配名字来实现的,因此,名字栏也称主栏,主栏的内容称为关键字(keyword)。在整个编译期间,对于符号表的操作大致可归纳为五类:往表中填入一个新的名字;对给定名字,查询名字是否已在表中;对给定名字,访问它的某些信息;对给定名字,更新它的某些信息;删除一个或一组无用的项。不同种类的表格所涉及的操作往往也是不同的。上述五个方面只是一些基本的共同操作。9.飞2嘴符号挽属性抓(信格息)几种叉通常但都是血需要赛的。1妙符垒号名2柳符林号的营类型3引符薪号的邪存储考类别4滔符宜号的勒作用文域及练可视谱性5伍符岁号变挣量的壁存储樱分配削信息6援符映号的醉其它壶属性折①陵数暖组内廊情向腾量规②蓝记录结构护型的飘成员劲信息贫③函娱数及选过程沾的形鹿参符号瓦表的切组织总体套组织窑和表窄项属断性信难息组册织第一挥种:园把急属性大种类树完全疼相同喉的那云些符卫号组由在一盛起,括构造泊出表蛾项是蚂分别茫为等伏长的戒多个股符号传表第二薪种:椅把所珍有语布言中合的符根号都介组织鸭在一队张符啄号表纵中。袍组成诞一张萝包括虑了所存有属沾性的汁庞大睡的符烛号表第三打种:链折衷羽方式脱是根轨据符岛号属项性相嫌似程较度分菜类组轨织成缘瑞若干捏张表舌,每傲张表移中记续录的响符号豪都有苗比较箱多的倒相同州属性膜。编译犹程序帽按名陷字的源不同替种属贼分别智使用递许多筛符号纺表,驼如常喜数表采、变蝇量名察表、贯过程停名表注等等两。PR腐OC肾ED孟UR方E柄IN成CW淘AP毅(M质,N赠)BE娱GI反N10当:K化=M昼+1M=贩M+部4N=啦KEN传D经编涉译头赴三阶永段后京所产小生的摇主要附表格特有:啦符号污名表SN克T、常数姑表CT侧、入口晌名表EN粘T、标号捕表LT和四羽元式晃表QT符号罗名表SN伸TNA斜ME狭I阅NF亡OR兴MA认TI岁ON(1榜)M参数稠,整箭数,员变量(2邀)N参数领,整道数,寺变量(3恒)K整数疫,变洗量常数殊表CT值(VA拼LU线E)俗(1返)惩1的(2缎)耗4入口鞠名表EN拣TNA金ME励IN笑FO场RM供AT崭IO雄N(1馆)I洒NC隔WA化P二目脑子程蓬序,联入口QT未(1蔽)/*记录纳入口球名IN聋CW俘AP的入丑口地屠址*柜/标号窗表LTLA乏BL成E岁I疑NF雾OR面MA贤TI币ON(1名)1域0馆QT谱(4习)/*记录福了标搜号1效0对洞应的抹四元刮式序梳列号棒*/四元索式表QT四元桌式表QTL1危:回i够f筒a奋<筋bgo遇toL2就;go朝toLn之ex请t;L2全:杠i售f聋c瞎<执5go菜toL3易;go脊toL4离;L3呈:厕i灰f匆x也>剧ygo阁toL5阔;go须toL1薄;L5震:希x票:绸=阻z抱+酸1;go象toL3倒;L4佳:砍x穗:睛=菠y;go赏toL1雀;Ln破ex菠t:例:符号推表项比的排蔬列符号忆表作稳为一料个多直元组卖,表交中元炊组的漆排列侮组织哲是构王造符筋号表领的重筛要成明分。磁在编闸译程饱序的鹊整个叉工作居过程昼中,头符号哈表被疗频繁次地用唱来建劳立表棋项,秃找查架表项筑,填矩充和察引用衔表项波的属混性。扫因此协表项豆的排冶列组乎织对荡该系绩统运姨行的锣效率萍起着还十分乖重要维的作举用。杯在编挤译程锦序中铸,符很号表禽项的后组织斗传统伪上采点用三争种构乓造方园法。叉即线弄性法坡,排椒序组瓜织法撕及散冲列法亩。关键缩慧字域狠的组渡织符号傲表的闪关键调字域暖(段眯)--海--节符号丈名、规符号计本身(1印)峰等长即关键块字域恭(段迎)符找号表锅(P2坐15图9少.9)(2鞠)镰不等闪长关棒键字炎段符缸号表录——就采用锹关键木字池疤的索妥引结蒸构。挖(P2抬15图9促.1谈0)分程店序结悦构的做符号适表对于拉具有牙分程穿序型定结构杠的语耗言程凭序,列不同计层次冒分程无序中冲定义测的标歼识符盾号具愿有不半同的云作用谋域和葬不同山的可怖视性君规则雕。通遗常对豪于具粉有分馅程序队结构量的语姐言可民用两屈种方吩式组堪织它串们的热符号翠表:(1赔)对招每个铸分程蹲序建搏立一将个独广立的取分表碑结构齐的符辆号表应;(2申)把县各分样程序趟符号快组织值在一盖张单茎表结阔构的覆符号咱表中凑。分表挖结构槐的组倚织管焰理基本武思想声:每仍当编波译程巴序扫呢描到羽一个胀分程拌序结塑构开殃始时盏,为励该分袖程序妄建立输一张头符号锻表,单在该誓分程底序中观定义银的标坦识符段,都症被登们录在肠该符贺号表危中。而当逐编译际程序辞扫描恒到一塑个分顺程序增的结照束时香,编热译程痰序释章放为亚该分继程序棒所建释立的鼓符号球表。这种推符号虫表的针分表氏结构苹与源锤程序右的分粗程序银层次目结构饺一一柳对应P2忘27图9遭.2浮3单表绝结构阀的组刃织管舟理基本敬思想琴:所献有分沿程序袍中定裙义的纯标识碧符都收集中诊在单思张符微号表节中。陵为了绵实现懂分程斗序构灰造中隐标识坐符的嗽作用家域和粪可视督性规铺则的昏要求篮,在衫符号适表中少可设我立一恶个属嘉性域数用来特登录吨符号谊所在晌分程韵序的绣层次唱。进入理分程蠢序时倾,层鹅次要傍增加湾一层拒。在放退出较一个算分程快序时寨,层害次降纯低一骡层,胀且需咸要把砍符号鞠表中渣,所窃有在敌退出雪的分肯程序新中登涛录的染符号炮项清学除。P2胡28图9颈.2眉5嵌套暮结构型型程除序设传计语具言(Pa躲sc奸al虾)的特文点可采松用的泽办法滑之一伐:将其艳符号井表设坟计为纹栈符桃号表晶,当阿新的竖名字忙出现垦总是阵从栈样顶填趟入。查找驻操作遇从符脾号表惊的栈秘顶往测底部职查(玻保证惩先查斩最近迅出现烤的名登字)翼。因为奶程序荡是分天层的携,并公且一野个过抬程结妥束时其将释条放相勤应的拥子符稿号表承,因矩此查旱找范舒围与乏线性漂表比我相对器要小当一些漂。嵌套遵结构蚀型程寨序设响计语阀言(Pa鼻sc肠al广)的特除点可采贷用的稠办法阀之二撞:引入市一个撤显示理(DI涉SP绑LA奸Y)层次妈关系肿表,泪称为统过程衬的嵌框套层接次表挺。其碰作用套是为教了描摔述过薪程的耕嵌套暗层次董,指傅出当炮前正射在活难动着搏的各严嵌套记的过健程(沃或函陕数)煤相应们的子贞符号袍表在再栈符僵号表歌中的璃起始梁位置评(相薄对地母址)漫。DI长SP速LA描Y表也恋是一穗个栈轿,栈旧顶指才针为le欣ve云l。当进称入一棋个新帆过程漆时,le睡ve资l增加艇1;钟每当没退出奸一个寇过程爸时,le央ve哲l减1警。DI沫SP靠LA窄Y[浙le没ve泛l]总是虏指向祸当前海正在古处理萍的最圆内层右的过候程的州子符哭号表胁在栈杯符号耕表中饱的起友始位敢置。嵌套互结构汇型程掀序设最计语劳言(Pa嘱sc佛al瞎)的特驰点可采较用的锯办法趋之三皱:在符壮号表痒的信源息栏舒中引辨入一鸡个指鼠针域孕(pr牲ev给io挠us哄)用以谊链接评它在狗同一宋过程透内的壶前一罪域名疫字在印表中垒的下谨标(肥相对先位置胖)。漆每一棚层的势最后宜一个届域名筛字,辰其pr照ev百io清us之值滴为0化。这浮样,末每当膏需要瓣查找睁一个暮新名搏字时拍,就回能通牛过DI蛾SP旁LA侄Y找出即当前倘正在材处理敲的最领内层句的过求程及剖所有诱外层疮的子云符号预表在副栈符蕉号表口中的陪位置偿。然铃后,征通过pr厅ev携io熟us可以匆找到恢同一困过程私内的每所有聪被说慨明的节名字秒。说明孤部分鲁的分运析与计处理对每顾个过奋程说明瞒的对抢象(变量,常量和过程)造名卵字表登录榴标识言符的此属性久。填写标识畜符的所在层次、属性和分葬配的相对狸位置。标归识符督的属璃性不斜同时落,所中需填较入的乱信息春也不览同。登录吧信息晓由EN捎TE病R过程汉完成芳。课本P2裕1说明秀部分倒的分稼析与处赛理(程序)说明烟类型录的定搁义:ob持je闻ct蹈=望(co晋ns笋ta田nt,va巷ri盯ab途le,pr印oc筑ed怀ur氧e)(定义纯量/枚举类型徐)名字冲表的轿定义ta居bl铅e:a禾rr形ay滔[0娘..tx葱ma级x]睡of垮r武ec条or捷dna骡me赴:al巷fa;ca别seki辨nd:o株bj填ec样t曲ofco铺ns自ta江nt:(va浪l:i建nt环eg恢er昂);va跌ri梳ab逮le箭,p矛ro惜ce尚du抱re:(le戴ve采l,ad萍r,si缝ze:in团te备ge筋r)庸;例程亲序说准明部圆分为浊:CO敬NS冠T搏A=键35魔,B值=4薄9;给V净AR片C休,D鸡,E阳;盛PR假OC强ED缺UR哄E既P;察V数AR眼G唤;助…名字租类型屡层列次/私值脆地吸址斑存储柱空间Co丹ns代t(常量兵)无层次对应仗符号掠表tx:链ta阀bl促e表的煮下标企指针晕,是卷以值参雅数形式劳使用久的。dx:计算凤每个慰变量夜在运虎行栈队中相母对本过程基地屡址的偏唐移量,放甘在ta脏bl爪e表中的ad闻r域,生成泛目标乐代码时再放在co越de中的a域参考PL历/0编译旅程序浩的Bl踏oc疾k函数狼及其姻递归悬调用变量福定义匆语句秃的处饰理语法妄:<奶变量面说明摊部分驳>:慎:公=va薄r<标识讽符>诱{,<标识鹅符>}怪;程序支:if竖s鹿ym旋=va念rs匪ymth荡en转b点eg迹inge滤ts孙ym;杆r跪ep叨ea梢tva扩rd含ec护la枯ra摆ti铺on;杂(纱*变量茶说明高处理*)wh亲il输e百sy小m=co住mm赢ado序b慢eg固inge则ts疲ym;va炒rd筋ec己la荒ra楚ti罪onen臭d;嘱if师s切ym泛=se介mi巷co斜lo酷nth己enge塘ts愚ymel肠se报e摄rr浩or败(5卖)万u巩nt隆il且s扇ym运<>id堤en罪t;en着d;变量扔说明松处理pr扔oc瓣ed贴ur腐eva愁rd窄ec侵la却ra扔ti顾on;be园gi骆n裂if笨s种ym贤=id惨en仗tth卫en婶be哑gi捎nen评te起r(va殃ri氏ab南le);ge伍ts职ymen必d架el役se工er鸽ro移r(盾4)甜en瞧d享(*va确rd约ec成la对ra趣ti薪on*)加;过程EN藏TE端R的实缸现tx:t赤ab页le表的打指针pr帝oc象ed宣ur奶een宿te全r(k:o怨bj句ec查t供);非be弄gi托n复(*输e炼nt漂er蜓o牺bj后ec买t海in紫to伍t公ab互le忠*种)tx:=tx+1赚;wi嚷th殿t形ab扬le概[tx]辈do(*开域语句关*梦)be返gi瓜nna钢me:=id;(辞*表示ta旬bl猜e[tx].na域me:=id;*证)ki辱nd:=k;降(*表示ta艇bl迟e[tx].ki板nd:=k;*黎)过程EN度TE飘R的实睬现ca派sekofco薄ns蛾ta就nt:be盗gi兰n长ifnu赌m>am铲axth夕enbe术gi神n盐e户rr瘦or丑(3牲1)赔;nu组m:=萝0;握e饲nd胀;va鸡l:=nu双m;凯(得*ta亩bl僻e[tx].va筹l:=nu班m;*后)就e梯nd学;过程EN冲TE方R的实泳现va杜ri益ab毁le:be苗gi惰nle绕ve丢l:=le古v;谨(摄*表示ta聚bl垒e[tx].le评ve浴l:=le碍v*)ad争r:=dx;郊(*表示ta誉bl煮e[tx].ad生r:=dx*)dx:=dx+1子;凡e盐nd匆;pr疾oc议ed梅ur:le脆ve今l:=le斧v(*表示ta姥bl徐e[tx].le绘ve隐l:=le蝴v;*残)en的d句(*ca涌se*)过;en喂den捞d向(*亿en午te桂r*煌);PL红/0编译因程序Ta罢bl狗e表的下标旺指针tx补充敬说明捷:主程泊序BL墨OC壮K第1次调用bl墙oc末kBL逃OC偿K(0,0,…弦)00..药.BL纪OC初KBL梨OC谋K(LE质V+刻1,TX,…朱)(递归进入分程正序)LE纪VtxLE鉴Vtx(6)6(9)1tx是BL曾OC寒K的实际值参过程两体的糖处理对语句担进行语法分析语义练分析当遇虑到标识凶符的惑引用旨时就调啄用PO混SI方TI鼠ON函数查TA数BL贞E表,看框是否有过正确兽定义,若贼已有第,则食从表鸟中取相差应的有雷关信息,供视代码总的生破成使执用。若无捐定义昼则错。当语法馒语义快正确帖时,就生成相应足语句哗功能播的目标驴代码赋值语句统的处理if资s腹ym斜=id简en顾tth绘en撇be束gi耗ni:仰=虹po酒si榜ti元on纷(i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论