1997-2006年计算机专业考研编译原理试题及答案
1997年编译原理试题
一、 确定有限自动机 (10分)
设计一个确定有限自动机(DFA)来识别操作系统中的合法文件名。文件名的格式为 device:name.extension,其中 device: 和 .extension 部分是可选的。device,name 和 extension 都是由至少一个字母组成的字符串,长度不限。
二、 文法分析 (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
请解释该文法的含义,并说明如何使用该文法进行语义分析。
文件大小:264.5KB
评论区