编译原理-方法分类

编译原理-方法分类

ID:44900258

大小:596.66 KB

页数:18页

时间:2019-11-02

编译原理-方法分类_第1页
编译原理-方法分类_第2页
编译原理-方法分类_第3页
编译原理-方法分类_第4页
编译原理-方法分类_第5页
资源描述:

《编译原理-方法分类》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、文档编号:实习一二三四五六七八九十总评教师签名成绩实习题目:文法分类专业(班):13级计科六班学生学号:2013311500123学生姓名:刘冠佐任课教师:杜 卓 敏评语及建议:2015 年10月13日文档编号:实习一二三四五六七八九十总评教师签名成绩武汉大学计算机学院《编译原理》课程实习报告编号:实习题目:文法分类专业(班):2013级计科六班学生学号:2013311500123学生姓名:刘冠佐任课教师:杜 卓 敏2015 年10月13日文档1.题目:文法分类2.目的:熟悉和掌握文法的形式定义及各成分的含义,正确识别文法的类型。3.要求:(1)主要功能:识别各类Chomsky文法(2)系统

2、输入:任意的文法G的Vn,P和S(3)系统输出:a)文法的形式化表示G=(Vn,Vt,P,S)b)文法的Chomsky类型(0型、1型、2型、3型)(4)为了简单期间,文发符号都采用单字符符号(5)有独到个后选式的产生式允许采用缩写形式(α::=β1/β2/…/βn)作为产生式的输入形式(6)提交算法描述,最好提供某样详细设计表示(如程序框图、伪码等),而不用提交源程序清单4.程序运行实例:输入:提示输入文法:G[N]提示输入Vn:N,D提示依次输入产生式规则:N::=ND/DD::=0/1/2/3/4/5/6/7/8/9输出:文法G[N]=({N,D},{0,1,2,3,4,5,6,7,8

3、,9},P,N)P:N::=ND/DD::=0/1/2/3/4/5/6/7/8/9该文法是Chomsky2型文法(即上下文无关文法)。文档1.问题定义与分析1.1实习目的熟悉和掌握文法的形式定义及各成分的含义,正确识别文法的类型。1.2实习要求(1)主要功能:识别各类Chomsky文法(2)系统输入:任意的文法G的VN,P和S(3)系统输出:a)文法的形式化表示G=(VN,VT,P,S)b)文法的Chomsky类型(0型、1型、2型、3型)(4)为简单起见,文法符号都采用单字符符号。(5)有多个候选式的产生式允许采用缩写形式(α::=β1

4、β2

5、…

6、βn)作为产生式的输入形式(6)要求按照软

7、件工程的原则进行实习设计,提交实习报告,即必要的软件工程文档(可将主要内容压缩成一个文档),内容至少包括:问题定义和分析、设计(数据结构、算法、界面等)、主要测试用例(应如实提供测试结果)等。最好提供某种详细设计表示(如程序框图、伪码等),而不用提交源程序清单。1.3要求分析1.3.1输入部分文档对于文法G用字符串Strings保存;非终结字符集合VN,用数组c保存,Strings1=jTextField2.getText();//获取VN,charc[]=s1.toCharArray();产生式规则P的用二维数组P保存:char[][]P=newchar[10][20];Strings2=

8、jTextArea1.getText();//获取产生式规则StringTokenizertokenizer=newStringTokenizer(s2);intsum=tokenizer.countTokens();intj;Strings4="";for(j=0;j

9、toCharArray();while(i

10、'&&Is(N,P[i][j])==0&&Is(T,P[i][j])==0)T[m]=P[i][j];m++;对于文法G的输出还是用Strings,在获取的文法名的基础上加上文法内容,文法内容为后面加上:Strings=jTextField1.getText();//s用于输出文法s=s+"=({"+s

11、1+"},{";Strings3="";i=0;while(i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。