编译原理课程设计参考选题 下载本文

内容发布更新时间 : 2024/5/5 18:38:17星期一 下面是文章的全部内容请认真阅读。

P→(E)|i

26.

题目: 带出错处理的算符优先分析算法的程序实现 设计内容及要求:

对文法 G: E→E+T|T 采用教材P.98表5.3,实现P.93描述的算符优先

T→T*F|F 分析算法。程序显示输出“移进-归约”的步骤。

F→(E)|i 要编制各出错处理子程序。

27.

题目: 优先表构造算法的程序实现

设计内容及要求: 实现教材P.92优先表构造算法。对任一给定的算符优先文法G,假定所有非终结符P的FIRSTVT(P)、LASTVT(P)均已知。以教材P.90例5.4文法为例,程序生成表5.1优先表。 28.

题目: 优先表自动构造程序的实现

设计内容及要求:对任一给定的算符优先文法G,构造其优先表。要求:首先实现对于非终结符P的FIRSTVT(P)构造算法和LASTVT(P)构造算法,再实现教材P.92给出的优先表构造算法。以教材P.90例5.4文法为例,程序生成表5.1优先表。 29.

题目: 优先函数构造程序的实现

设计内容及要求:构造一程序,实现:根据优先关系表构造优先函数。输入的优先表假定保存在指定文件中,构造出的优先函数可显示输出,或输出到指定文件中。 30.

题目: 消除左递归算法的程序实现

设计内容及要求:构造一程序,实现教材P.70消除左递归算法。对于用户任意输入的文法G,输出一个无左递归的等价文法,可显示输出,或输出到指定文件中。 31.

题目: 消除回溯算法的程序实现

设计内容及要求:构造一程序,实现:消除文法每一条产生式候选式的公共左因子。对于用户任意输入的文法G,输出一个无回溯的等价文法,可显示输出,或输出到指定文件中。 32.

题目: LR分析器总控程序的实现

设计内容及要求:对P.101中的文法,按图5.5LR分析表构造LR分析器。要求程序按P.102例5.7那样,对于输入串i*i+i,输出LR分析器的工作过程。 33.

题目: 识别文法活前缀的NFA构造程序的实现

设计内容及要求:构造一程序,对任意给定的文法G:①构造并输出G的所有LR(0)项目;②用这些LR(0)项目构造并输出识别文法活前缀的NFA(输出其

第5页

状态转换矩阵)。 34.

题目: LR(0)项目集规范族构造程序的实现

设计内容及要求:构造一程序,对任意给定的文法G,构造识别文法活前缀的DFA,输出DFA的状态转化矩阵及LR(0)项目集规范族。要求按教材P.107所给的ITEMSETS(G’)构造,要实现CLOSURE(I)、GO(I,X)函数。按P.105例5.8给出测试结果,可输出到指定文件中。 35.

题目: LR(0)分析表构造算法的程序实现

设计内容及要求: 构造一程序,实现LR(0)分析表构造算法。根据教材P.106图5.7的识别文法活前缀的DFA,输出如P.109表5.4的LR(0)分析表,可输出到指定文件中。 36.

题目: LR(0)分析器自动构造程序的实现

设计内容及要求:对任意给定的文法G,构造识别文法活前缀的DFA,输出DFA的状态转化矩阵及LR(0)项目集规范族;实现LR(0)分析表构造算法;实现LR分析器总控程序。程序输出一个完整的LR(0)分析器源程序,可输出到指定文件中。 37.

题目: SLR(1)分析表构造算法的程序实现

设计内容及要求:构造一程序,实现SLR(1)分析表构造算法(假定所给文法识别文法活前缀的DFA、LR(0)项目集族、所有非终结符FOLLOW集合均已构造出来了)。根据教材P.111例5.11文法为输入,构造其SLR(1)分析表。 38.

题目: LR(1)项目集规范族构造程序的实现

设计内容及要求:构造一程序,对任意给定的文法G构造LR(1)项目集规范族(按教材P.115所述方法构造,要实现CLOSURE(I)、GO(I,X),集合FIRST的构造方法参见教材P.78)。 39.

题目: LR(1)分析表构造算法的程序实现

设计内容及要求:构造一程序,实现LR(1)分析表构造算法(假定所给文法识别文法活前缀的DFA、LR(1)项目集族已构造出来了)。根据教材P.116图5.10的LR(1)项目集族和GO函数为输入,构造并输出其LR(1)分析表5.5。 40.

题目: LR(1)分析表自动构造程序的实现

设计内容及要求:对任意给定的文法G构造LR(1)项目集规范族(按教材P.115所述方法构造,要求实现CLOSURE(I)、GO(I,X)、FIRST(集合FIRST的构造方法参见教材P.78);然后实现LR(1)分析表构造算法。以教材P.115例5.13为输入,构造并输出其LR(1)分析表5.5。

第6页

41. 题目: LALR(1) 项目集规范族构造程序的实现

设计内容及要求:假设对于给定文法,识别文法活前缀的DFA、LR(1)项目

集族已构造出来了。构造一程序,检查两个LR(1)项目集是否为同心集(可任意输入),若是,则输出合并后的同心集,并检查合并后的集合是否含有冲突项目(指出存在何种冲突),输出合并同心集后的识别文法活前缀的DFA,及LALR(1) 项目集规范族。 42.

题目: LALR(1) 分析表自动构造程序的实现

设计内容及要求:对任意给定的文法G构造LR(1)项目集规范族(按教材P.115所述方法构造,要求实现CLOSURE(I)、GO(I,X)、FIRST(集合FIRST的构造方法参见教材P.78);然后构造LALR(1) 项目集规范族;再实现LALR(1)分析表构造算法。以教材P.115例5.13为输入,构造并输出其LALR(1)分析表5.6。 43.

题目: 带出错处理的LR分析器总控程序的实现

设计内容及要求:按教材P.127表5.9分析表构造一LR分析器,输出语法分析过程(如P.128所述),要构造各出错处理子程序。 44.

题目: 算术表达式从中缀式翻译成后缀式的程序实现

设计内容及要求:设计一个语法制导翻译器,将算术表达式从中缀式翻译成后缀式。要求:先确定一个定义算术表达式的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的算术表达式,程序将其转换成后缀式输出。 45.

题目:将算术表达式转换成抽象语法树的程序实现

设计内容及要求:设计一个语法制导翻译器,将算术表达式转换成抽象语法树。要求:先确定一个定义算术表达式的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的算术表达式,程序将其转换成抽象语法树输出(可按一定格式输出到指定文件中)。 46.

题目:将算术表达式转换成DAG的程序实现

设计内容及要求:设计一个语法制导翻译器,将算术表达式转换成DAG。要求:先确定一个定义算术表达式的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的算术表达式,程序将其转换成DAG输出(可按一定格式输出到指定文件中)。

第7页

47. 题目:将算术表达式转换成三元式的程序实现

设计内容及要求:设计一个语法制导翻译器,将算术表达式翻译成三元式。

要求:先确定一个定义算术表达式的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的算术表达式,程序将其转换成三元式输出(可按一定格式输出到指定文件中)。 48.

题目:将算术表达式转换成间接三元式的程序实现

设计内容及要求:设计一个语法制导翻译器,将算术表达式翻译成间接三元式。要求:先确定一个定义算术表达式的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的算术表达式,程序将其转换成间接三元式输出(可按一定格式输出到指定文件中)。 49.

题目:将算术表达式转换成四元式的程序实现

设计内容及要求:设计一个语法制导翻译器,将算术表达式翻译成四元式。要求:先确定一个定义算术表达式的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的算术表达式,程序将其转换成四元式输出(可按一定格式输出到指定文件中)。 50.

题目:将布尔表达式转换成四元式的程序实现

设计内容及要求:设计一个语法制导翻译器,将布尔表达式翻译成四元式。要求:先确定一个定义布尔表达式的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的布尔表达式,程序将其转换成四元式输出(可按一定格式输出到指定文件中)。 51.

题目:将条件语句转换成四元式的程序实现

设计内容及要求:设计一个语法制导翻译器,将条件语句翻译成四元式。要求:先确定一个定义条件语句的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的条件语句,程序将其转换成四元式输出(可按一定格式输出到指定文件中)。 52.

题目:将WHILE语句转换成四元式的程序实现

设计内容及要求:设计一个语法制导翻译器,将WHILE语句翻译成四元式。

第8页