1997-2006年计算机专业考研编译原理试题及答案

1997年编译原理试题

一、 确定有限自动机 (10分)

设计一个确定有限自动机(DFA)来识别操作系统中的合法文件名。文件名的格式为 device:name.extension,其中 device:.extension 部分是可选的。devicenameextension 都是由至少一个字母组成的字符串,长度不限。

二、 文法分析 (20分)

(a) 消除二义性 (10分)

给定描述命题演算公式的二义文法:

S -> S and S | S or S | not S | p | q | (S)

请为其写一个等价的非二义文法。

(b) 文法类型判断 (10分)

判断以下文法是否为 LL(1) 文法,并说明理由:

S -> A B | P Q x
A -> x y
B -> b c
P -> d P | ε
Q -> a Q | ε

三、 语义分析 (10分)

某些编程语言允许为名字表提供属性表,并允许声明嵌套在其他声明中。以下文法描述了这种语法:

D -> attrlist namelist | attrlist (D)
namelist -> id, namelist | id
attrlist -> A attrlist | A
A -> decimal | fixed | float | real

请解释该文法的含义,并说明如何使用该文法进行语义分析。

doc 文件大小:264.5KB