《编泽技术原理及方法》习题解答 第六章习题解答_第1页
《编泽技术原理及方法》习题解答 第六章习题解答_第2页
《编泽技术原理及方法》习题解答 第六章习题解答_第3页
《编泽技术原理及方法》习题解答 第六章习题解答_第4页
全文预览已结束

下载本文档

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

文档简介

第六章——习题解答1.符号表的作用和内容是什么?符号表的作用:

(1)收集符号属性;(词法分析)

(2)上下文语义的合法性检查的依据;(语法分析)

(3)作为目标代码生成阶段地址分配的依据;(语义分析)符号表的内容:符号表是由登记项组成,而每一登记项又由名字栏和信息栏组成,信息栏又称登记项的值部分或描述信息,它描述了名字有关属性。2.设计一个用折半法的造表算法。intlow=0;inthigh=n-1;

while(low<=high){if(T[low]==a){printf(“出错:标识重复”);gotoL;}intmid=(low+high)/2;

if(α>T[mid]{

low=mid+1;

}else{

high=mid-1;

}

}k=i+1;gotoL1;L1: for(i=n;i>=k;--i){ T[i+1]=T[i]; } T[k]=α;n=n+1;L2:3.设计散列法中解决冲突的第二种方法——链接法的造表查表算法。造表算法:intgethash(intkey,Hashh){returnkey%(h->tablesize);}Hashcreate(intsize){Hashh=newstructHashTable;h->restore=(Element*)malloc(size*sizeof(Element));h->tablesize=size;for(inti=0;i<size;i++){h->restore[i].next=NULL;}returnh;}voidinsert(intkey,Hashh){intpos=gethash(key,h);Element*head=newElement;Element*middle=newElement;head=h->restore[pos].next;while(1==1){if(head==NULL)break;head=head->next;If(head->num=key){printf("出错:标识符重")gotoL;}}middle->num=key;head=middle;}L:查表算法:Element*find(intkey,Hashh){intpos=gethash(key,h);Element*head=newElement;head=h->restore[pos].next;while(head!=NULL&&head->num!=key){head=head->next;}If(head==NULL){printf("出错:标识符有使用无说明")}else{"已查到,取出内容";gotoL;}}L:4.设有C语言程序:PROCEDURE...VARA,B,C,D:REAL;PROCEDURE...LABELL1;VARE,F:REAL;BEGIN...END;PROCEDURE...LABELL2;VARG,H:RAEL;FUNCTI

温馨提示

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

评论

0/150

提交评论