1. 首页 > 科技

编译原理一道题求助 编译原理期末考试试题及答案

编译原理一道题求助编译原理期末考试试题及答案

编译原理的一道习题,求解

N→AB|B

A→AC|D

B→1|3|5|7|9

D→B|2|4|6|8

C→0|D

诶。开始也写了半天的。

求解编译原理的一道题:设有文法如下

首先要做这题你要知道判别文法类型

包括四个层次:

0-型文法(无限制文法或短语结构文法)包括所有的文法。该类型的文法能够产生所有可被图灵机识别的语言。可被图灵机识别的语言是指能够使图灵机停机的字串,这类语言又被称为递归可枚举语言。注意递归可枚举语言与递归语言的区别,后者是前者的一个真子集,是能够被一个总停机的图灵机判定的语言。

1-型文法(上下文相关文法)生成上下文相关语言。这种文法的产生式规则取如 αAβ -> αγβ 一样的形式。这里的A 是非终结符号,而 α, β 和 γ 是包含非终结符号与终结符号的字串;α, β 可以是空串,但 γ 必须不能是空串;这种文法也可以包含规则 S->ε ,但此时文法的任何产生式规则都不能在右侧包含 S 。这种文法规定的语言可以被线性有界非确定图灵机接受。

2-型文法生成上下文无关语言。这种文法的产生式规则取如 A -> γ 一样的形式。这里的A 是非终结符号,γ 是包含非终结符号与终结符号的字串。这种文法规定的语言可以被非确定下推自动机接受。上下文无关语言为大多数程序设计语言的语法提供了理论基础。

3-型文法(正规文法)生成正规语言。这种文法要求产生式的左侧只能包含一个非终结符号,产生式的右侧只能是空串、一个终结符号或者一个非终结符号后随一个终结符号;如果所有产生式的右侧都不含初始符号 S ,规则 S -> ε 也允许出现。这种文法规定的语言可以被有限状态自动机接受,也可以通过正则表达式来获得。正规语言通常用来定义检索模式或者程序设计语言中的词法结构。

正规语言类包含于上下文无关语言类,上下文无关语言类包含于上下文相关语言类,上下文相关语言类包含于递归可枚举语言类。这里的包含都是集合的真包含关系,也就是说:存在递归可枚举语言不属于上下文相关语言类,存在上下文相关语言不属于上下文无关语言类,存在上下文无关语言不属于正规语言类。

1)本题应该是--上下文无关文法

句子是产生式在推导时“仅仅有终结符”的任何一步

2)%mm%nn 是一个句子

由于下面一题的图我等级不够 不能贴图 发你邮箱

一道《编译原理》求follow集题目,在线等答案

哥们,你这个问题中的一个产生式E’→+TE’| e,应该是E->+TE’ |ε这样吧!否则不可能获得如此结果。

关于求follow集合,龙书中说得很清楚,依据三条规则即可:

1、任何FOLLOW(S)都包含输入终止符号,其中S是开始符号。

适用该条,因此FOLLOW(E’)中包含终止符号#。

2、如果存在产生式,A->αBβ,则将FIRST(β)中除ε以外的符号都放入FOLLOW(B)中。

该条不适用,因为在上述所有产生式中不存在形如E‘->αE’β这样的产生式。

3、如果存在产生式,A->αB,或A->αBβ,其中FIRST(β)中包含ε,则将FOLLOW(A)中的所有符号都放入FOLLOW(B)中。

适用该条,因为存在这样的产生式E->+TE’,使得FOLLOW(E’)=FOLLOW(E)成立。而FOLLOW(E)适用上述第二条,根据产生式F→(E)可求得为FOLLOW(E)={#,)}。

综上,FOLLOW(E’)=FOLLOW(E)={#,)}。

《编译原理》的一道题!!

是句型。

因为 S => aAb => aBcAb => aidtcAb => aidtcBcAb

aidtcBcAb 含有非终结符,所以不是句子