- 博客(0)
- 资源 (13)
- 收藏
- 关注
大连理工大学软件学院网络综合实验考试题,实验报告册,考试问题等
大连理工大学软件学院网络综合实验相关资料,包括2018年期末考试题,以及期末提问问题。包括网络综合实验报告册答案,以及课程资源PPT,还包期末考试考点!非常全面的资料!
2018-01-03
第三次上机—语法分析1
1. 使用的文法如下:
E ® TE ¢
E ¢ ® + TE ¢ | e
T ® FT ¢
T ¢ ® * FT ¢ | e
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对应的出错信息是:“输入串跳过记号id,用户多输入了一个id”;
id**id对应的出错信息是:“弹栈,弹出非终结符F,用户少输入了一个id”
(id+id对应的出错信息是:“弹栈,弹出终结符 ) ,用户少输入了一个右括号(或者说,括号不匹配)”
2017-06-15
第四次上机—自下而上的语法分析
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的方式将错误进行分类提示,即给出具体的出错信息。
扩展:
在已有文法的基础上再加上减法“-”和除法“/”对应的产生式构成最终的文法。从而使得记号流可以处理带括号的加、减、乘、除四则运算。
2017-06-15
第六次上机作业-中间代码生成
1.以S属性的语法制导定义为基础,将下列产生式附上一定的语义规则。即在原来语法分析的基础上插入相应的语义动作:将输入串翻译成三地址代码序列。
E ® E1 + T
E ® T
T ® T1 * F
T ® F
F® (E)
F ® digit
F ® id
2.以词法分析和语法分析部分的上机结果为基础,添加语义分析部分。即以LR文法为基础。当进行产生式归约时执行对应的语义动作。
3.输入:(-b+c*d)+c*d
输出:
t1= -b
t2= c*d
t3=t1+t2
t4= c*d
t5=t3+t4
4. 若输入有误,如:a++b**c(d+e)
则应提示:+后面缺少运算对象,
*后面缺少运算对象,
c后面缺少运算符,
请重新输入!
扩展:
将三地址代码优化为DAG代码
例如:
输入: (-b+c*d)+c*d
输出:
t1= -b
t2= c*d
t3=t1+t2
t5=t3+t2
2017-06-15
软件学院编译原理第二次上机求first和follow集
第三次上机作业
1. 编写First和Follow函数,实现其求解过程。
(1)FIRST集合计算方法:
① 若Xa.., 则将终结符a加入FIRST(X)中;
② 若X,则将加入FIRST(X)中;
③ 若XY…,且Y属于非终结符,则将FIRST(Y)\{}加入到FIRST(X)中;(注:“\”表示除去元素,即FIRST(Y)中的非元素加入到FIRST(X)中。以下同理。)
④ 若XY1Y2..YK,且Y1,Y2,..Yi-1都是非终结符,且Y1,Y2,..Yi-1的FIRST集合中均包含,则将FIRST(Yj)的所有非元素加入到FIRST(X)中,(j=1,2,..i).特别地,若Y1~YK均有产生式,则将加到FIRST(X)中。
(2)FOLLOW集合计算方法:
① 对文法开始符号S,置$于FOLLOW(S)中。
② 若有AB,则将FIRST()\{} 加入FOLLOW(B)中。 (此处 可以为空)
③ 若A B 或A B ,且 * (即 属于FIRST()),则将 FOLLOW(A)加入FOLLOW(B)中(此处 可以为空)。
2. 测试文法:
A->BCDE
B->aBA|ε
C->F|ε
D->b|c|ε
E->e|ε
F->d|ε
2017-06-15
软件学院第六次上机
在一个请求分页系统中,设页面大小占100个单元,假如系统分配给一
个作业的物理块数为3,试求出用FIFO,LRU,OPT三种算法在程序访问
过程中所发生的缺页次数及缺页率,每次中断时都需要打印出来或者
标示出来。(假设最初页面都在外存)
1. 假定此作业的访问地址序列为202,313,252,111,546,
217,444,544,365,223,398,111。
2. 输入任意的访问序列,也必须正确显示。
2017-06-15
大工软件学院操作系统第四次上机
抽烟者问题。假设一个系统中有三个抽烟者进程,每个抽烟者不断地卷烟并抽
烟。抽烟者卷起并抽掉一颗烟需要有三种材料:烟草、纸和胶水。一个抽烟者有烟
草,一个有纸,另一个有胶水。系统中还有两个供应者进程,它们无限地供应所有
三种材料,但每次仅轮流提供三种材料中的两种。得到缺失的两种材料的抽烟者在
卷起并抽掉一颗烟后会发信号通知供应者,让它继续提供另外的两种材料。这一过
程重复进行。 请用以上介绍的 IPC 同步机制编程,实现该问题要求的功能。
2017-06-15
大工软件学院操作系统第三次上机
进程调度算法包括先来先服务调度算法FCFS、最短作业时间优先SJF(抢占式
和非抢占式)、最高响应比调度HRN算法4种。(每个人必须做非抢占式SJF,
然后在后面的三种中任选一种,即每个人必须做2种调度算法的模拟。)
2017-06-15
软件学院操作系统第二次上机
1实现并发的父子进程合作将整数 X 的值从 1 加到 10 的功
能。它们通过管道相互将计算结果发给对方。
2设有二元函数 f(x,y) = f(x) + f(y)
其中: f(x) = f(x-1) * x (x >1)
f(x)=1 (x=1)
f(y) = f(y-1) + f(y-2) (y> 2)
f(y)=1 (y=1,2)
请编程建立 3 个并发协作进程,它们分别完成 f(x,y)、f(x)、f(y)
2017-06-15
操作系统第一次上机
1. Linux 文件权限概念
2.Linux目录配置
3.文件与目录管理
4.vim 程序编辑器
5.Linux下编程gcc/g++
6.Makefile使用
2017-06-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人