编译原理:正规文法与正规式

1.分别写出描述以下语言的正规文法和正规式:

L1={abna|n≥0}。

L2={ambn|n≥1,m ≥1}

L3={(ab)n|n≥1}



解析:

(1)设文法G(S)={abna|n≥0}

正规文法:

S → aA

A → Ba

B → bn

B → bB|ε

正规式:

B = ε + bB = b*

A = Ba = b*a

S = ab*a

(2)设文法G(S)={ambn|n≥1,m ≥1}

正规文法:

S → AB

A → aA|a

B → bB|b

正规式:

A = aA + a = a*a

B = bB + b = b*b

S = AB = aa*bb*

(3)设文法G(S)={(ab)n|n≥1}

正规文法:

S → ab|abS

正规式:

S = ab + abS = ab(1+ S) = ab(ab)*

2.将以下正规文法转换到正规式

Z → 0A
A → 0A|0B
B → 1A|ε



(1)解析:

正规式:

A  = 0A|0B = 0A + 0B

= 0A +0(1A + ε)

= 0A+01A+0ε

= 0A + 01A +0

= (0 + 01) A + 0

= (0101)*0

z = 0A = 0(0|01)*0

Z → U0|V1
U → Z1|1
V → Z0|0



(2)解析:

正规式:

  Z=U0+V1,U=Z1+1,V=Z0+0

  Z=(Z1+1)0+(Z0+0)1

    =Z10+10+Z01+01

    =Z(10+01)+10+01

    =(10|01)*(10|01)

S → aA
A → bA|aB|b
B → aA



(3)解析:

正规式:

  S=aA,A=bA+aB+b,B=aA

  A=bA+aaA+b

     =(b+aa)A+b

  S=a(b|aa)*b

I → l|Il|Id



(4)解析:

正规式:

  I=l+Il+Id

   =I(l+d)+l

   =(l|d)*l

原文地址:https://www.cnblogs.com/zhif97/p/11683910.html

时间: 2024-10-06 20:24:19

编译原理:正规文法与正规式的相关文章

10.16 正规文法与正规式

1.分别写出描述以下语言的正规文法和正规式: (1)L1={abna|n≥0}. (2)L2={ambn|n≥1,m ≥1} (3)L3={(ab)n|n≥1} 答: (1) 正规文法: S->aA A->bA|a 正规式: S = a (b)* a (2) 正规文法: S->aS S->bs | b 正规式: S = a (a)* b (b)* (3) 正规文法: S->(ab)S |(ab) 正规式: S=(ab)(ab)* 2.将以下正规文法转换到正规式 (1) Z→0

06 正规文法与正规式 10/16

1.分别写出描述以下语言的正规文法和正规式: L1={abna|n≥0} 正规文法:S -> aA     A -> bA | a 正规式:ab*a L2={ambn|n≥1,m ≥1} 正规文法:S -> aS    S -> bS | b 正规式:aa*bb* L3={(ab)n|n≥1} 正规文法:S -> ( ab )S | ( ab ) 正规式: S = ( ab )( ab )* 2.将以下正规文法转换到正规式 Z→0AA→0A|0BB→1A|ε B = 1A +

第6次——正规文法与正规式

1.分别写出描述以下语言的正规文法和正规式: L1={abna|n≥0}. L2={ambn|n≥1,m ≥1} L2={(ab)n|n≥1} (1)正规文法:S->aA A->bna  A->Ba  B->bn  B->bB|ε 正规式:S->ab*a (2)正规文法:S->AB A->aA|ε B->bB|ε 正规式:a*b* (3)正规文法:S-->ab | abS 正规式:(ab)* 2.将以下正规文法转换到正规式 Z→0AA→0A|0B

正规文法和正规式

1.分别写出描述以下语言的正规文法和正规式: L1={abna|n≥0} 正规文法: S->aA A->Ba B->ε|bB 正规式:ab*a L2={ambn|n≥1,m ≥1} 正规文法: S->AB A->aA|a B->bB|b 正规式:aa*bb* L3={(ab)n|n≥1} 正规文法: S->aA A->bB B->aA|ε 正规式:(ab)*(ab) 2.将以下正规文法转换到正规式 Z→0AA→0A|0BB→1A|ε 答: A=0A+0

正规文法与正规式

  原文地址:https://www.cnblogs.com/du162/p/11676490.html

软考之 编译原理

看完书后做了一套真题,都是眼泪呀,经过对试题的分析,发现弱点是编译原理和组成原理部分;因为这两块本来就是薄弱地带,再加上看书之后没有认真地总结过,就开始了真题,难免在做题时遇到困难,下面针对编译原理做一下总结,从一张思维导图开始: 从导图中可以看出,程序语言的部分都不是难点,分类和基本成分都是平时接触的,唯一需要去理解的就是可能平时不太去关注的,低级语言.高级语言.编译程序.解释程序的特点. 把中重点放在语言处理程序的部分,其中分为三部分: 1.汇编程序 其中需要明白的就是指令语句,伪指令语句和

编译原理--01 复习大纲(清华大学出版社第3版)

前言 目前以手中这本清华大学出版社出版的编译原理(第3版,张素琴等编著)作为复习总结,因为考试都是大题,一部分概念会被忽略.所有内容都需要通过举例和推导来帮助加深理解,优先为过几天的考试服务.该文实现了教材中那些特别复杂的推导符号,并且这几天会加紧持续更新. 第2章 文法和语言 符号和符号串 空符号串用\(\varepsilon\)表示,长度为0 若 \(\Sigma=\{0,1\}\) ,则 \(\Sigma^*=\{\varepsilon,0,1,00,11,000,001,...\}\),

编译原理复习

第1章 引论 编译程序的基本任务是将源语言程序翻译成等价的目标语言程序 编译过程 包括词法分析.语法分析.语义分析.中间代码生成.代码优化和目标代码生成6个阶段,除此之外还有表格管理以及出错处理. 词法分析 任务:从左到右一个字符一个字符的读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词. 输入为:源程序 语法分析 任务:在词法分析的基础上将单词序列分解成各类语法短语. 语义分析 任务:审查源程序有无语义错误,为代码生成阶段收集类型信息. 中间代码生成 常用的三种方式:三元式

2.2正规式

正规式是正则表达式,它是一种表示正规集的工具. 而且一个正规式它是对应于一个正规文法的.正规文法是3型文法.既然一个正规式对应一个正规文法,那么它们之间肯定是能够进行转换的.从正规文法转向正规式.规则2:A->xA|y有一个递归,递归体现在A->xA 三个规则涵盖了所有的情况,不是说一个式子里面套用一个规则就行了,规则只是最简单最基本的一种形式,然后呢到具体的文法当中就可能用到规则的组合了. S->xSx|y与规则2非常类似,与规则2不同的是后面多了一个x.那样就要灵活应用规则2.把式子