西电计算机视觉CV第四次上机资源
2022-06-27 14:09:30 815KB 计算机视觉 西电
1
目的:熟练掌握自上而下的语法分析方法,并能用程序实现。 要求: 1. 使用的文法如下: E TE E + TE | T FT T * FT | F (E) | id 2. 对于任意给定的输入串(词法记号流)进行语法分析,递归下降方法和非递归预测分析方法可以任选其一来实现。 3. 要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。可以参考书上介绍的同步记号集合来处理。 可能的出错情况:idid*id#, id**id#, (id+id#, +id*+id# …… ……
2021-10-13 18:00:03 8.26MB c++ 编译技术 大连理工 第四次上机
1
采用非递归构造预测分析表的方法对输入串进行语法分析 1. 使用的文法如下: E->TE' E'->+TE'|ε T->FT' T'->*FT'|ε F->(E)|id 2. 对于任意给定的输入串(词法记号流)进行语法分析,非递归预测分析方法可以任选其一来实现。 3. 要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。可以参考书上介绍的同步记号集合来处理。 可能的出错情况:idid*id, id**id, (id+id, +id*+id …… 4. 输入串以#结尾,输出推导过程中使用到的产生式。例如: 输入:id+id*id# 输出: E ->TE ' T ->FT' F ->id E'->+ TE ' T -> FT ' …… 如果输入串有错误,则在输出中要体现是跳过输入串的某些记号了,还是弹栈,弹出某个非终结符或者是终结符了,同时给出相应的出错提示信息。比如: idid*id对应的出错信息是
2021-05-25 10:44:10 13.62MB c++ 编译原理
1
目的:熟练掌握自下而上的语法分析方法,并能用程序实现。 要求: 1. 使用如下文法:    E E+T | T T T*F | F F (E) | id 2. 对于任意给定的输入串(词法记号流)进行语法分析,要求采用LR分析器来完成。手工构造LR分析表,利用移进-归约分析算法(P69 图3.12)输出(P70 表3.8)对应的动作部分。如: 输入:id*+id/(id+id)# 输出:移进    按 F->id归约 移进 error …… 3. 要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。 例如: 从状态0开始的记号流为:bm 将b移进之后,栈里的情况应该为: 0 b 2 此时查表发现 action[2,m]=error 输出打印:error 把A和状态1相继压入栈,用户指针后移到FOLLOW(A)对应的元素继续分析。
2019-12-21 20:13:05 5KB 编译原理 语法分析2 C++
1
抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽 烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟 草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有 三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在 卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过 程重复进行。 请用以上介绍的 IPC 同步机制编程,实现该问题要求的功能。
2019-12-21 19:37:55 35KB 吸烟者问题
1
1. 使用如下文法: E ® E+T | T T ® T*F | F F ® (E) | id 2. 对于任意给定的输入串(词法记号流)进行语法分析,要求采用LR分析器来完成。手工构造LR分析表,利用移进-归约分析算法(P71 图3.12)输出(P73 表3.8)对应的动作部分。如: 输入:id*+id/(id+id)# 输出:移进 按 F->id归约 按 T->F归约 移进 error …… 3. 要有一定的错误处理功能。即对错误能提示,并且能在一定程度上忽略尽量少的记号来进行接下来的分析。 例如: 从状态0开始的记号流为:bm 将b移进之后,栈里的情况应该为: 0 b 2 此时查表发现 action[2,m]=error 输出打印:error 把A和状态1相继压入栈,用户指针后移到FOLLOW(A)对应的元素继续分析。 4. 利用P94页的表3.13的方式将错误进行分类提示,即给出具体的出错信息。 扩展: 在已有文法的基础上再加上减法“-”和除法“/”对应的产生式构成最终的文法。从而使得记号流可以处理带括号的加、减、乘、除四则运算。
2019-12-21 19:37:55 6KB 编译原理
1