- 50
- 0
- 约2.93千字
- 约 15页
- 2018-05-02 发布于湖北
- 举报
编译原理课设—正规式r与正规文法G相互转换的程序设计
目录
1、 引言 1
2、 设计原理 1
2.1、正规文法的定义 1
2.2、正规式的定义 2
2.3、正规文法和正规式的等价性 2
2.3.1、将正规式转换成正规文法 2
2.3.2、将正规文法转换成正规式 3
3、 总体算法设计 3
3.1、正规式转化为正规文法的算法 3
3.2、正规文法转化为正规式的算法 4
4、 详细设计 5
4.1、算法涉及到的各个结构体 5
4.1.1、每个文法规则右部非终结符前面的终结符串 5
4.1.2、每个文法规则右部结构体 6
4.1.3、每条文法规则结构体 6
4.1.4、文法规则结合 6
4.2、主要函数 7
4.2.1、创建文法的一条规则 7
4.2.2、合并规则右部相同非终结符的项 8
4.2.3、规则的替换 9
5、调试与运行结果 10
5.1、 调试方法记录 10
5.2 、实验结果记录 10
5.2.1、第一组测试数据 10
5.2.2、第二组测试数据 11
5.2.3、第三组测试数据 12
6、 课程设计总结与心得体会 13
7、参考文献 13
正规式r与正规文法G相互转换的程序设计
摘要:在计算机编译理论中,正规式、正规文法、自动机的理论以及它们之间的 等价性问题是编译理论的等价基础,其中正规式和自动机,正规文法和自动机之间的等价性问题,已经得到了比较圆满的解决。本文主要讨论正规式和正规文法之间相互转换的方法。
关键字:编译原理 正规式 正规文法 相互转换
引言
程序设计语言中的单词是基本语法符号。单词符号的语法可以用有效的工具加以描述,并且基于这类描述工具,可以建立词法分析技术,进而可以建立词法分析程序的自动构造方法。多数程序设计语言的单词的语法都能用正规文法或3型文法来描述。正规式也称正则表达式,是表示正规集的工具,也是我们用以描述单词符号的方便工具。因此,熟练掌握正规文法、正规式以及它们之间的相互转化是非常必要的。
设计原理
2.1、正规文法的定义
正规文法是左线性文法和右线性文法的统称。它们都是Chomsky分类下的3型文法。由正规文法产生的语言称为正规集。
1、右线性文法
设G[S]=(VN,VT,P,S),若P中的产生或均有如下的形式:
A→aB或A→a(A∈VN,a∈VT)则称G为右线性文法。
例如,文法G1[S]=({S,A,B},{a,b},P1,S)
其中P1={S→aA,A→aA,A→bB,A→b,B→bB,B→b}为一右线性文法
2.1.2、左线性文法
若一个文法G[S]=(VN,VT,P,S)中的产生式均有如下的形式:
A→Ba或A→a(A,B∈VN,a∈VT)则称G为左线性文法。
例如,文法G2[S]=({S,A},{a,b},P2,S)
其中P2={S→Sb,S→Ab,A→Aa,A→a}为一左线性文法
[注:]由于左线性文法和文法是等价的,本次课程设计为简化需要,只考虑右线性文法正规式的转换。
正规式是描述程序语言单词的表达式,对于字母∑,其上的正规式及其表示的正规集可以递归定义如下
① ε是一个正规式,它表示集合L(ε)={ε}。
② 若a是∑上的字符,则a是一个正则式,它所表示的正规集L(a)={a}。
③ 若正规式r和s分别表示正规集L(r)=L(s),则
(a)r|s是正规式,表示集合L(r)∪L(s);
(b)r·s是正规式,表示集合L(r)L(s);
(c)r*是正规式,表示集合(L(r))*;
(d)(r)是正规式,表示集合L(r)。
仅由有限次地使用上述三个步骤定义的表达式才是∑上的正规式。
运算符“|”、“·”、“*”分别称为“或”、“连接”和“闭包”。在正规式的书写中,连接运算符“·”可省略。运算符的优先级从高到低顺序排列为:“*”、“·”、“|”。
文法产生式正规式.1.1、每个文法规则右部非终结符前面的终结符串
.1.2、每个文法规则右部结构体
.1.3、每条文法规则结构体
.1.4、文法规则结合
.2.1、创建文法的一条规则.2.2、合并规则右部相同非终结符的项.2.3、规则的替换用A→→abA|cdC 中的A,替换后为S→abaB|abcD|cdC
HeadG * replaceG(HeadG *head1,HeadG *head2)
//用head2规则替换head1中含有head2左部的项
while(th1!=NULL th1-VNA!=head2-VNA)//找到head1中有head2左部得项
{
if (th1!=head1-nextg) preth1=preth1-nextg;
th1=th1-nextg;
}
if(th1!=NULL)//找到了
while(ta1!=NULL)//串接起来
{
wh
您可能关注的文档
- 精选猎豹移动逆市登陆纳市营收和用户数是资本.ppt
- 精选评论:阿里12亿要踢多大的球.ppt
- 系统及其特征第二课.ppt
- 系统探查与优化建议报告.pptx
- 精装修成品保护实战经验.doc
- 索伯菲项目安装管理手册.docx
- 索乐数码完整版.ppt
- 紧固件战略分析.ppt
- 系统内业务学习.ppt
- 繁花落尽木棉飘絮 厦门园林部门:客观看待植物.pptx
- 河北盐山中学等校2025-2026学年上学期高三一模化学试卷(含解析).docx
- 河北正定中学2025-2026学年高一上学期期末考试物理试卷(含解析).docx
- 河北张家口市怀安县2025-2026学年第一学期期末教学综合评价八年级地理试卷(含解析).docx
- 河南安阳市殷都区2025-2026学年第一学期期末教学质量检测七年级地理试卷(含解析).docx
- 河南安阳市滑县2025一2026学年第一学期期末学业质量监测八年级地理试题(含解析).docx
- 河南安阳市林州市2025-2026学年上学期期末考试高一政治试题(含解析).docx
- 河南焦作市武陟县第一中学2025-2026学年高一上学期1月月考语文试卷(含解析).docx
- 河南济源市2025-2026学年上学期期末学业质量调研七年级历史试卷(含解析).docx
- PICC导管并发症的紧急处理与护理.pptx
- 河南鹤壁市2025-2026学年高二上学期期末考试生物试题(含解析).docx
原创力文档

文档评论(0)