资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
源程序中所使勺各和村识符的属性这些属性常托常由编译程序集口起李并存放在一个标趴符永符目号表中c末寡讨论组纹基造和查拖吊种符号表的。方法。1谯洵盂垦笋*必衣一口t刑郾豌嘲嘲辕藜豌韧韧赢蒜10.1符号表的一般组织形式丿符号表的每项(称为表项)包含两个部分,即主目和值。表的主目通常即符号或标识符本身(变量的名字,值乃是它们的属性,包括种属(如简单变量、数组或过程等)和类型(如整型、实型、布尔型等)。*因为组成标识符的符号个数是不固定的。凶常不是直接将标识符本身存放在主目栏中,此,常而是存.放一个指向标识符的指示器,并在另一字符串表中存放这些标识符。10.2符号表中的数据*符号表是编译程序中的一个很重要的部分,应按方便获取信息和有效添加信息的方式建立符号表。值部分描述标识符的有关属性,因此也称为描述信息。*对于变量,其描述信息通常包括:类型、种类、精度、维数或维数之值、形参类型、连结其它分量的方式、标号的类型、是否在公用语句或等价语句中出现、它的说明是否处理过、它运行时的地址。对于过程,其描述信息通常包括:外是否为函数过程?若是,则给出其函数类型。*)是否为形式参数过程?*)是否为程序的外部过程?*团是否为递归过程?外是否有形参?若是,给出每个形参的描述信自外其说明是否加工过?10.3符号表的构造与查找符号表的构造(简称造表)是指把新的表项填入表中的过程。符号表的查找是指在符号表中搜索某一特定表项的过程。10.3.1线性查找它按主目出现的先后顺序填写各个表项,而不做任何整理表项次序的工作。查表时,从表头开始朝表尾方向(或从已填表项的末端开始朝表头方向)逐个进行比较,直至找到所需表项或表qh所有已填表项比较完毕(此时表明未找到所需要的表项)为止。sSSxSzSzSzSxiSxSSxtSx10.3符号表的构造与查找线性造表算法为ProcedureLINEARBUILD:;begintfori:=nstep1until1do讪Ti=xthenreturn(error,重名);n:=n+l;Tn:=X;蕲Teturn:;:N圭end:wnl咤,10.3符号表的构造与查找线性查表算法为ProcedureLINEARSEARCH:beginfori:=nstep-1until1do讪Ti=xthenreturn(“x“的信息),return(“表中不存在x表项“);Teturn:;end:XCSySyxsSxtSxdSxtSxdSxdxsSxx10.3.2折半法丿造表法是指按昭表项了目的“大小“次序进行填写,“小“的排在前,“大“的排在后。*查表时,每次取当时表正中间(即对折)那个表项的主目与被查项进行比较;若被查项“小于“中间表项,则在前半表区重复折半法查找;若被查项“大于“中间表项,则在后半表区重复折半法查找(两者相同时,表示已查到所需要的表项)。重复这一过程,直至当时的表尾大于岂时的表夫为土二(】.半查找算法为ProcedureBINARYSEARCH:begini:=1j一山whilei仪jdok:=(i+DIV2ifTk=xthenreturn(“x的信息“elseifTkxtheni:=k+1elsej:=k一工return(“表中不存在x表项“);
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号