- 18
- 0
- 约1.94万字
- 约 19页
- 2020-09-14 发布于浙江
- 举报
《 编译原理 》
课程设计
实验时间:
实验班级:
姓 名: 焦王
学 号:
实验教师:
计算机学院
广东工业大学
基本内容
(1)扩充赋值运算:*= 和 /=
(2)扩充语句(Pascal的FOR语句):
①FOR 变量:=表达式 TO 表达式 DO 语句
②FOR 变量:=表达式 DOWNTO 表达式 DO 语句
其中,语句①的循环变量的步长为2,
语句②的循环变量的步长为-2。
(3)增加运算:++ 和 --。
(4)选做内容(成绩评定范围扩大到:“优”和“良”)
(1)增加类型:① 字符类型; ② 实数类型。
(2)扩充函数:① 有返回值和返回语句;② 有参数函数。
(3)增加一维数组类型(可增加指令)。
(4)其他典型语言设施。
二、实验环境与工具
(1)计算机及操作系统:PC机,Windows7,WindowsXP
(2)程序设计语言:C++Builder5,VC 6.0
(3)教学型编译程序:PL/0
设计方案
概述:源、目标语言,实现工具(平台),运行平台
源语言:PL/0语言
目标语言:类PCODE
实现工具:C++Builder
运行平台:windows 7
结构设计说明--各功能模块描述
1、 int POSITION(ALFA ID, int TX):查找标识符在名字表中的位置
2、 int BASE(int L,int B,int S[]):通过静态链求出数据区的基地址
3、 void Error(int n) :错误处理,打印出错位置和错误编码
4、 void GetCh():漏掉空格,读取一个字符
5、 void GetSym():词法分析,读取一个单词
6、 void GEN(FCT X, int Y, int Z):生成目标代码,并送入目标程序区
7、 void TEST(SYMSET S1, SYMSET S2, int N):测试当前单词符号是否合法
8、 void ENTER(OBJECTS K, int LEV, int TX, int DX):登录名字表
9、 void ConstDeclaration(int LEV,int TX,int DX):常量说明处理
10、void VarDeclaration(int LEV,int TX,int DX):变量说明处理
11、void CharDeclaration(int LEV,int TX,int DX):字符说明处理
12、void RealDeclaration(int LEV,int TX,int DX):实数说明处理
13、void ListCode(int CX0):列出目标代码清单
14、void FACTOR(SYMSET FSYS, int LEV, int TX) :因子处理
15、void TERM(SYMSET FSYS, int LEV, int TX) :项处理
16、void EXPRESSION(SYMSET FSYS, int LEV, int TX):表达式处理
17、void CONDITION(SYMSET FSYS,int LEV,int TX) :条件处理
18、void STATEMENT(SYMSET FSYS,int LEV,int TX) :语句部分处理
19、void Block(int LEV, int TX, SYMSET FSYS) :分程序分析处理过程
20、void Interpret() :对目标代码的解释执行程序
21、void __fastcall TForm1::ButtonRunClick(TObject *Sender):进行编译,RUN
(3)主要成分描述
① 符号表
符号表的主要功能如下:
1、收集符号属性
2、上下文语义合法性检查的依据
3、作为目标代码生成阶段地址分配的依据
② 运行时存储组织和管理
解释程序定义了4个寄存器:1、指令寄存器.存放当前正在解释的一条目标指令2、程序地址寄存器.指向下一条要执行的目标程序的地址3、栈顶寄存器.4、基址寄存器.指向每个过程被调用时,在数据区S中给它分配原则的数据段起始地址,也称基地址.
当源程序经过语法分析,如果未发现错误时,由编译程序调用解释程序,对存放在CODE中的代码CODE[0]开始进行解释执行.当废弃结束后,记录源程序中标识符的TABLE表已没有作用.因此存储区只需以数组CODE存储的只读目标程序和运行机制时的数据区S,S是由解释程
您可能关注的文档
最近下载
- 眼科学基础题库及答案.doc VIP
- 子痫前期预测与预防指南(2025) .pdf VIP
- 2023-2024学年江苏省南京市四年级下学期期末数学复习试卷(解析版).pdf VIP
- 陕09J10 地下工程防水.docx VIP
- 东北三省第二课时.pptx VIP
- 2025年企业级安全生产智能体白皮书.pdf
- 2026年广东省公务员考试《申论》(市级卷)真题详解.docx VIP
- 6.2 ”白山黑水“——东北三省 课件(共45张PPT) 2024-2025学年人教版地理八年级下册.pptx VIP
- 最新人教版六年级数学第一学期教学工作计划-(11).docx VIP
- 年处理1500吨乙醇-水筛板精馏塔设计说明书(逐板,仪表,经济)23.7.5.docx VIP
原创力文档

文档评论(0)