当前位置:文档之家› 《编译原理》课程设计题目-2014

《编译原理》课程设计题目-2014

《编译原理》课程设计题目
设计题一:正规式r与正规文法G相互转换的程序设计
任意给定一个正规式,求出其对应的正规文法;任意给定一个正规文法,求出其对应的正规式。

(参考教材P53~55)
设计题二:布尔表达式的递归下降翻译器
针对布尔表达式的文法:
〈布尔表达式〉∷=〈布尔项〉{〈与运算符〉〈布尔项〉}
〈与运算符〉∷=and
〈布尔项〉∷=〈布尔因子〉{〈或运算符〉〈布尔因子〉}
〈或运算符〉∷=or
〈布尔因子〉∷=〈非运算符〉〈布尔因子〉|〈布尔量〉
〈非运算符〉∷=not
〈布尔量〉∷=(〈布尔表达式〉)|〈标识符〉〈关系运算符〉〈标识符〉|
true|false
〈关系运算符〉∷=>|<|≥|≤|=|≠
〈标识符〉∷=〈字母〉{〈字母〉|〈数字〉}
利用递归下降分析法编制、调试其语法及语义分析程序,生成的中间代码为逆波兰式。

编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。

(参考教材P92~93)
设计题三:正规式r与有穷自动机FA相互转换的程序设计
任意给定一个正规式,求出其对应的有穷自动机;任意给定一个有穷自动机,求出其对应的正规式。

(参考教材P61~64)
设计题四:赋值语句的LR翻译程序
对教材P180中的赋值语句文法,给出该文法的属性文法,同时实现赋值语句的翻译,生成的中间代码为逆波兰式。

(参考教材P179~181)
设计题五:正规文法G与有穷自动机FA相互转换的程序设计
任意给定一个正规文法,求出其对应的有穷自动机;任意给定一个有穷自
动机,求出其对应的正规文法。

(参考教材P65~66)
设计题六:条件语句的LR翻译程序
对教材P187中的条件语句文法,给出该文法的属性文法,同时实现条件语句的翻译,生成的中间代码为四元式。

(参考教材P186~189)
设计题七:NFA确定化为DFA及化简的程序设计
任意给定一个NFA,将其确定化为DFA,然后化简为最小的DFA。

(参考教材P57~61)
设计题八:布尔表达式的LR翻译器
针对布尔表达式的文法:
B →B and T | T
T→T or F | F
F→not F|true|false |(B)| i rop i
利用LR分析法编制、调试其语法及语义分析程序,生成的中间代码为四元式。

编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。

(参考教材P181~182)
设计题九:生成预测分析表的算法实现
任意给定一个LL(1)文法,生成相应的LL(1)分析表。

(参考教材P75第5章)
设计题十:while循环语句的LR翻译程序
对教材P187中的循环语句文法,给出该文法的属性文法,同时实现循环语句的翻译,生成的中间代码为四元式。

(参考教材P186~189)
设计题十一:利用LEX自动生成词法分析程序
输入描述某种语言词法规则的正规式,利用LEX自动生成词法分析程序。

(参考教材P66~68)
设计题十二:生成LR分析表的算法实现
任意给定一个LR文法,生成相应的LR分析表。

(参考教材P123第7章)
设计题十三:布尔表达式翻译为逆波兰式的算法实现
针对布尔表达式的二义性文法:
B → B and B | B or B | not B | ( B ) | true|false| i rop i
将文法拓广为G’[B’]:
(0) B’ → B
(1) B → B and B
(2) B → B or B
(3) B → not B
(4) B → ( B )
(5) B → true
(6) B → false
(7) B → i rop i
利用LR分析法编制、调试其语法及语义分析程序,生成的中间代码为逆波兰式。

编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。

设计题十四:求解FIRST集和FOLLOW集的算法实现
任意给定一个上下文无关文法,求其所有的非终结符的FIRST集和FOLLOW集。

(参考教材P80~83)
设计题十五: f or循环语句的翻译程序
对教材P191中的循环语句文法,给出该文法的属性文法,同时实现循环语句的翻译,生成的中间代码为四元式。

(参考教材P191~192)
设计题十六:简单说明语句的翻译程序
对教材P196中的简单说明语句文法,给出该文法的属性文法,同时实现简单说明语句的翻译,即建立一个符号表,将简单说明语句所引入的名字id 和性质登录在符号表中。

(参考教材P96~197)
设计题十七:基于LR分析法的计算器
对教材P171中的算术表达式文法,给出该文法的属性文法,同时实现算术表达式的计算,给出算术表达式的计值过程。

(参考教材P171,P173~174)设计题十八:预测分析程序的设计
对教材P94中的上下文无关文法,实现它的预测分析程序,给出符号串i+i*i的分析过程。

(参考教材P93~96)
或者:(选同一题的做下面一个)
对教材P96中的上下文无关文法,实现它的预测分析程序,给出符号串aaabd的分析过程。

(参考教材P96~97)
设计题十九: do-while循环语句的翻译程序
对C语言中的do-while循环语句文法,给出该文法的属性文法,同时实
现循环语句的翻译,生成的中间代码为四元式。

(参考while循环语句的翻译,教材P186~189)
设计题二十:构造识别规范句型活前缀DFA的程序设计
对教材P160中的上下文无关文法,构造它的构造识别规范句型活前缀DFA。

(参考教材P124~137,P160~161)
或者:(选同一题的做下面一个)
对教材P162中的上下文无关文法,构造它的构造识别规范句型活前缀DFA。

(参考教材P124~137,P162~163)
设计题二十一:算符优先分析程序的设计
对教材P110中的上下文无关文法,实现它的算符优先分析程序,给出符号串i+i*i的分析过程。

(参考教材P110~117)
设计题二十二:利用Y ACC自动生成语法分析程序
输入描述某种语言语法规则的LALR(1)文法,利用YACC自动生成语法分析程序。

(参考教材P147~153,P155~160)
设计题二十三:赋值语句的LR翻译程序
对教材P180中的赋值语句文法,给出该文法的属性文法,同时实现赋值语句的翻译,生成的中间代码为四元式。

(参考教材P179~181)
设计题二十四:简单优先分析程序的设计
对教材P104中的上下文无关文法,实现它的简单优先分析程序,给出符号串b(aa)b的分析过程。

(参考教材P103~106)
设计题二十五: DAG优化过程的图形化设计
给出一系列四元式,用图形显示DAG的优化过程。

(参考教材P251~257)设计题二十六:PL/0编译程序的实现
对教材P13第二章中的讨论的PL/0编译程序,给出其程序实现,调试成功。

(参考教材P13第二章,P413附录A)。

相关主题