- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《编译原理》实验报告 实验1 查填符号表 姓名 学号 班级 计科1001班 时间: 2012/3/22 地点:文波 同 组 人:无 指导教师:朱少林 实验目的 1、运用所学知识,选择语言、选择算法(数据结构),编程实现符号表管理程序。 2、熟悉编译过程,训练编写程序的能力,为后续实验积累经验。 实验内容 1、运用所学知识,编程实现符号表管理程序。读出源程序中与C语言词法规定相一致的标识符,并在符号表中进行查找,若存在则输出该标识符及其编号和位置;否则将其填入符号表,并分配编号,确定位置,输出该标识符。 2、输出标识符表。 实验环境 软件:VC++6.0 实验前准备 方案设计: 准备模拟数据:由于是识别符合c语言规定的标识符,故本实验中使用 “测试文件.c” 写出c语言标识符的正规式定义:letter_→A|B|C|…Z|a|b|…z|_ digit→0|1|…9 id→letter_(letter_|digit)* 画出不确定的有限自动机 不确定的有限自动机如下: 进行化简: A={1} B={2,3,4,5,9} C={3,4,5,6,8,9} D={3,4,5,7,8,9} 状态转换表如下: 状态 letter_ digit A B B C D C C D D C D 进行化简:{A} {B,C,D} 化简后的确定有限自动机如下: 程序思想:该实验重点是构造识别标识符的函数。程序中,使用的数据结构如下: struct record { char name[20]; }; typedef struct record RECORD; record是用来记录标识符的名字,并且规定标识符的长度最大为20 struct infor//记录符号表的相关信息 { struct record *head; int length; //记录符号表的长度 }; typedef struct infor INFOR; infor是用来指向record结构体的指针和符号表的长度,这个结构体主要是用于比较标识符并将识别到的标识符写入分析结果文件中即本实验中的“search_table”函数,该函数并没有直接把标识符写到文件,而是在该函数之外,新建一个文件用来放符号表,然在后来打印符号表的同时把打印的结果写该文件中去。 该程序中的“search_table”函数判断是否为新的标识符的方法就是把识别的一个标识符与已经识别的一一比较看是否相同,如不相同则表长度加1,并将该标识符填入表中 while( jistrcmp(teststring,point[j].name)) { j++; }//与已有的标识符一一比较 if(j==i)//说明是新的标识符 { strcpy(point[j].name,teststring); //point[j].line=j; p-length++; } 程序设计 #include stdio.h #include stdlib.h #include string.h struct record { char name[20]; }; typedef struct record RECORD; struct infor//记录符号表的相关信息 { struct record *head; int length; //记录符号表的长度 }; typedef struct infor INFOR; void search_table(char *teststring, INFOR *p, FILE *f)//查填符号表函数,p为指向结构体的指针 { int i=p-length; int j=0; RECORD *point; point=p-head; while( jistrcmp(teststring,point[j].name)) { j++; }//与已有的标识符一一比较 if(j==i)//说明是新的标识符 { strcpy(point[j].name,teststring); //point[j].line=j; p-length++; } printf(标识符%s在符号表的第%d行\n,teststring,j+1); fprintf(f,%s\t%5d\n,teststring,j+1);//将新的标识符写入文件分析结果文件f中 ret
您可能关注的文档
- 继电保护及安全自动装置检修规程.doc
- 综合布线考试题及答案.doc
- 综合实验一机械工程中的温度测量.doc
- 综合布线工程竣工文档.doc
- 矿床采技水文地质划分.doc
- 矿山电工学.docx
- 综合布线试题1.doc
- 综合布线重要知识点.doc
- 综合归类理论试题(各校).doc
- 砂夹石施工方案.doc
- 2025贵州毕节市第二人民医院招聘编外人员报名情况及笔试备考题库附答案.docx
- 2025西藏林芝绿优供销有限公司财务会计招聘1人参考题库附答案.docx
- 2025贵州六盘水盘州市工商业联合会招聘城镇公益性岗位2人笔试题库推荐.docx
- 2025西藏林芝绿优供销有限公司财务会计招聘1人备考题库附答案.docx
- 2025舟山岱山县东沙镇人民政府招聘编外人员笔试题库附答案.docx
- 2025西藏林芝绿优供销有限公司财务会计招聘1人参考题库推荐.docx
- 2025秋季河北邯郸市邯郸冀南新区博硕人才引进8人参考题库附答案.docx
- 2025舟山岱山县东沙镇人民政府招聘编外人员参考题库推荐.docx
- 2025西安市永顺路学校教师招聘笔试参考题库附答案.docx
- 2025蒙城县商业综合体公开招聘劳务派遣工作人员1人参考题库必威体育精装版.docx
最近下载
- 汉语基础知识修订省名师优质课赛课获奖课件市赛课一等奖课件.pptx VIP
- 基础汉语初级上册(课件).ppt VIP
- 4M1E确认检查表模板.xls VIP
- 初级汉语汉语教程课件.ppt VIP
- CSC-163系列数字式线路保护装置说明书(0SF.451.029)_V1.04.docx
- 汉语会话301句我不能去市公开课一等奖省赛课微课金奖PPT课件.pptx VIP
- 汉语会话301句-第16课:你看过京剧吗?.pptx VIP
- 美团商业画布.pptx VIP
- Huntorf压缩空气储能电站 - 超过20年的成功运营.pdf VIP
- 《汉语口语速成(入门篇)》和《汉语会话301句》练习对比研究.pdf VIP
有哪些信誉好的足球投注网站
文档评论(0)