本实习报告探讨了魔王语言解释器的设计与实现。文档详细记录了项目开发过程中的关键技术挑战、解决方案及心得体会,为相关研究提供了有价值的参考。
学号:13084109 姓名:张吉丽 班级:13083611 题目:试写一个魔王语言的结识系统。
一、需求分析
B=tAdA=tsaedsae, A=sae
建立数组ch[100]来存储魔王语言,再通过for函数使魔王语言从左至右进栈。测试数据为B(ehnxgz)B。
程序执行步骤如下:
- 输入;
- 通过对栈和队列的操作进行翻译;
- 输出。
概要设计:
1. 设定栈的抽象数据类型定义:
ADT stack{
数据对象:D={aiai CharSet,i=1,2...,n,n>0}
数据关系:R1={
ai-1,ai D,i=2,...,n}
基本操作:
Initstack(&s) 操作结果:构造一个空栈s.
Push(&s,e) 初始条件:栈s已存在. 操作结果:在栈s的栈顶插入新的栈顶元素e.
Pop(&s,&e) 初始条件:栈s已存在. 操作结果:删除s的栈顶元素,并以e返回其值.
}ADT stack
2. 设定队列的抽象数据类型:
ADT queue{
数据对象:D={aiai CharSet,i=1,2...,n,n>0}
数据关系:R1={ai-1,ai D,i=2,...,n}
基本操作:
Initqueue(&Q) 操作结果:构造一个空队列Q.
EnQueue(Q,e) 初始条件:队列Q已存在. 操作结果:在队尾插入新的元素e.
DeQueue(Q,&e) 初始条件:队列Q非空. 操作结果:删除首元素,并以e返回其值.
}ADT queue