编译原理课程设计增加数据类型计算机C资料_计算机-C++资料.pdf
1/34 山东建筑大学计算机科学及技术学院 课程设计说明书 题 目:对 PL/0 语言及其编译器进行扩充和修改 实现增加数据类型功能 课 程:编译原理课程设计 院(部):计算机科学及技术学院 专 业:计算机科学及技术 班 级:计科 学生姓名:学 号:指导教师:完成日期:2014年 7 月 8 日I/34 目 录 课程设计任务书.II 对 PL/0 语言及其编译器进行扩充和修改实现增加数据类型功能 4 一、问题描述.4 二、基本要求.5 三、算法思想.6 四、数据结构.6 五、模块划分.6 六、源程序.8 七、测试数据.26 八、测试情况.29 结 论.30 参考文献.32 课程设计指导教师评语.33能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理山东建筑大学计算机科学及技术学院 课程设计任务书 设计题目 对 PL/0 语言及其编译器进行扩充和修改 实现增加数据类型功能 已知技术参数和设计要求 PL/0 程序设计语言是一个较简单语言,它以赋值语句为基础,构造概念有顺序、条件和重复(循环)三种。PL/0 有子程序概念,包括过程定义(可以嵌套)及调用且有局部变量说明。PL/0 中唯一数据类型是整型,可以用来说明该类型常量和变量。当然 PL/0 也具有通常算术运算和关系运算。通过读懂源程序,全面掌握编译原理基本实现过程。对现存 PL/0 编译程序做一些修改或扩充。设 计 内容 及 步骤 通过读懂源程序,全面掌握编译原理基本实现过程。扩充 PL/0 增加识别字符型数据类型和实型数据类型功能 增加数据类型定义如下:D|integer id|char id|double id 设计工作计划及进度安排 1-4:进行完整编译程序全过程理解 5-12:根据源程序,理解整个编译器编写中涉及到全局变量及基本函数意义。能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理III/34 指导教师(签字):教研室主任(签字):13-20:在读懂全程序基础上,进行扩充功能,并测试。21-24:撰写课程设计报告书。设计考核要求 设计考核方法:课程设计总成绩=算法实现(30%)+课程设计说明书(50%)+平时考勤(20%)。设计考核要求:(1)规范课程设计说明书(2)所设计算法源代码 能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理4/34 对 PL/0语言及其编译器进行扩充和修改实现增加数据类型功能 一、问题描述 PL/0 程序设计语言是一个较简单语言,它以赋值语句为基础,构造概念有顺序、条件和重复(循环)三种。PL/0 有子程序概念,包括过程定义(可以嵌套)及调用且有局部变量说明。PL/0 中唯一数据类型是整型,可以用来说明该类型常量和变量。当然 PL/0 也具有通常算术运算和关系运算。PL/0 语言 BNF文法如下所示::=.:=变量说明部分 :=CONST,;:=:=:=VAR,;:=|:=;:=PROCEDURE;:=|:=:=:=BEGIN;END 能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理5/34 :=|ODD :=+|-:=:=|():=+|-:=*|/:=|#|=:=IFTHEN :=CALL :=WHILEDO :=a|b|.|X|Y|Z :=0|1|2|.|8|9 对现存 PL/0 编译程序做如下修改或扩充。(1)扩充识别注释功能:注释由(*和*)包含,不允许嵌套。(2)识别对 else 子句进行处理功能 :=IFTHENELSE 二、基本要求 设计目:掌握 PL/0 语言编译器实现基本原理和实现方法。能在理解其实现原理方法基础上进行适当扩充,使其功能更强大。设计要求:在理解源代码基础上,根据文法要求,采用 C语言扩充算法。完成扩充识别注释功能,和识别对 else 子句进行处理功能 能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理6/34 三、算法思想 增加数据类型功能:因子语法描述该为 因子 EBNF 文法为::=|()四、数据结构#define norw 16/关键字个数#define txmax 100/名字表容量#define nmax 14/数字最大位数#define al 10/符号最大长度#define amax 2047/地址上界#define levmax 3/最大允许嵌套声明层数#define cxmax 200/最多虚拟机代码数 enum symbol ident integer char double 表达式()number 能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理7/34 /枚举类型:/nul=0,ident=1,number=2,plus=3,minus=4 /times=5,依次类推,procsym=31 nul,ident,number,/下面表示是系统算数运算符以及逻辑运算符,知道意思就可以 plus,minus,times,/相乘意思 slash,oddsym,eql,neq,lss,leq,gtr,geq,lparen,/左括号 rparen,comma,semicolon,period,becomes,/赋值意思 /下面表示是系统保留字 beginsym,endsym,ifsym,thensym,whilesym,writesym,readsym,dosym,callsym,constsym,varsym,procsym,integersym,charactersym,doublesym,;#define symnum 35 enum object constant,variable,procedur,能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理8/34 integer,character,doubler,;五、模块划分 过程或函数名 简要功能说明 pl0 主程序 Error 出错处理,打印出错位置和错误编码 Getsym 词法分析,读取一个单词 Getch 漏掉空格,读取一个字符 Gen 生成目标代码,并送入目标程序区 Test 测试当前单词符号是否合法 Block 分程序分析处理过程 Enter 登录名字表 position(函数)查找标识符在名字表中位置 Constdeclaration 常量定义处理 Vardeclaration 变量说明处理 Listode 列出目标代码清单 Statement 语句处理 Expression 表达式处理 Term 项处理 Factor 因子处理 能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理9/34 Condition 条件处理 Interpret 对目标代码解释执行程序 base(函数)通过静态链求出数据区基地址 六、源程序 1、/该函数功能就是取一个数据单位,通过调用该函数可以一次取出一个/数字或字符串或运算符,这个函数和 getch 函数我觉得应该是调用最经常地函数啦,/每调用一次该函数,该函数就会去调用 getch 函数/sym 记录是语句单位类型,num中存放是数字大小 int getsym()./取一个数字单位 else /加入 real 类型 if(ch=0&ch=0&ch=0&chnmax)/要求数字位数不能超过 15 位,nmax=14,不过我觉得这有错误 error(30);/输出错误码 else if(int)ch=39)/加入字符类型 getchdo;if(ch=A&ch=a&chtx)/当 table表为空时,只输出 NULL 能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理16/34 printf(NULLn);for(i=tx0+1;iamax)/如果数字大于最大能表示数字,则报错。amax=2047 error(31);num=0;gendo(lit,0,num);能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理24/34 getsymdo;.6、void interpret().case 14:/14号操作为输出栈顶值操作 /输出栈顶值 coutst-1endl;fprintf(fa2,%lfn,st-1);/同时打印到文件 t-;/栈顶下移 break;case 15:/15号操作为输出换行操作 printf(n);/输出换行 fprintf(fa2,n);/同时输出到文件 break;case 16:/16号操作是接受键盘值输入到栈顶 printf(输入整形数:);/屏显问号 fprintf(fa2,输入整形数:);/同时输出到文件 scanf(%lf,&(st);/获得输入 能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理25/34 fprintf(fa2,%lfn,st);/把用户输入值打印到文件 t+;/栈顶上移,分配空间 break;case 17:/17号操作为输出栈顶值操作 printf(%c,(int)st-1);/输出栈顶值 fprintf(fa2,%cn,st-1);/同时打印到文件 t-;/栈顶下移 break;case 18:/18号操作为输出栈顶值操作 printf(%lf,st-1);/输出栈顶值 fprintf(fa2,%lfn,st-1);/同时打印到文件 t-;/栈顶下移 break;case 19:/19号操作是接受键盘值输入到栈顶 printf(输入单字符:);/屏显问号 fprintf(fa2,输入单字符:);/同时输出到文 scanf(%s,&(st);fprintf(fa2,%cn,st);/把用户输入值打印到文件 t+;/栈顶上移,分配空间 break;能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理26/34 case 20:/20号操作是接受键盘值输入到栈顶 printf(输入双精度型数:);/屏显问号 fprintf(fa2,输入双精度型数:);/同时输出到文件 scanf(%lf,&(st);/获得输入 fprintf(fa2,%lfn,st);/把用户输入值打印到文件 t+;/栈顶上移,分配空间 break;case 21:/14号操作为输出栈顶值操作 /输出栈顶值 cout(char)st-1endl;fprintf(fa2,%lfn,st-1);/同时打印到文件 t-;/栈顶下移 break;.七、测试数据 1、运行编译后可执行文件,输入用 PL/0 源语言写代码文件 integer.txt:能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理27/34 该文件内容如下:integer w;begin integer w:=25;write(w);end.得到程序运行结果如图 1 所示:图 1 测试数据 integer.txt运行结果 2、运 行 编 译 后 可 执 行 文 件,输 入 用 PL/0源 语 言 写 代 码 文 件能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理28/34 character.txt:该文件内容如下:character m;begin character m:=m;End.得到程序运行结果如图 2 所示:3、运行编译后可执行文件,输入用 PL/0 源语言写代码文件 double.txt:该文件内容如下:double m;能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理29/34 begin double m:=5.5;write(m);End.得到程序运行结果如图 3 所示:八、测试情况 测试数据:输入 2.0 和 1.0 结果 能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理30/34 测试数据:输入 a 结 论 通过编译原理课程设计,在理解了 PL/0 语言及其编译器实现方法基础上,进行了识别注释功能扩充和实现以及增加了对函数进行处理功能处理功能。通过这次课程设计,我们学会了怎么设计编译器,怎么自己去写一个编译程序来对高级语言进行编译,。在开始时候,对于 C 语言版编译器是一点也不懂,但是进过一天读程序和单步跟踪,了解了其是怎么运行和原理,之后,就进行了代码增加和修改,对于增加字符型和实数型变量处理,我增加了关键字 integersym、charactersym、doubsym,并分别对 getsym()、block()、statement()、factor()、interpret()等函数进行了相应修改。修改过程中出现了很多错误,经过询问老师,和同学交流,并调试,最终一一解决。通过这次课程设计我不仅进一步熟练了利用 C 语言进行编程,而且也学会了一些相应编程技巧,例如怎么快速查错,怎么熟练读懂递归函数调用等等。同时在这次课程设计中也发现了自己一些不足之处,例如,由于时间原因,只完成了要求代码,没有在此基础上更好扩充,还有在写程序能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理31/34 时有时候会犯迷糊,容易出错。对于自己不足,以后我会更加注意,并且会经常写程序来总结经验,改正不足,提高自己能力。这次课程设计让我学会了很多,同时也给了我进一步学好计算机动力,虽然写程序有时很枯燥,但是当你沉浸在其中时,你就会发现程序很有趣,你利用字母来编制实际,来处理现实生活中复杂繁琐事情,解放了生产力。我越来越喜欢计算机啦,在之后世界里,计算机绝对会是主流,我对未来充满了自信和憧憬!能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理32/34 参考文献 1 程序设计语言编译原理(第 3 版)陈火旺主编 国防工业出版社 2 编译原理吕映芝 张素琴 蒋维杜 主编 清华大学出版社 3 编译原理课程设计王雷 等编著,机械工业出版社 能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理33/34 山东建筑大学计算机科学及技术学院 课程设计指导教师评语 班级:学生姓名:学号:指导教师评语(包括工作态度,遵守纪律;基本理论、知识、技能;独立工作能力和分析解决问题能力;完成任务情况及水平):学生成绩(百分制):指导教师签名:年 月 日 能课程编译原理课程设计院部计算机科学及技术学院专业计算机科学及技术班级计科学生姓名学号指导教师完成日期年月日目录课程设计任务书对语言及其编译器进行扩充和修改实现增加数据类型功能一问题描述二基本要求三算法算机科学及技术学院课程设计任务书设计题目对语言及其编译器进行扩充和修改实现增加数据类型功能程序设计语言是一个较简单语言它以赋值语句为基础构造概念有顺序条件和重复循环三种有子程序概念包括过程定义可以嵌套及算通过读懂源程序全面掌握编译原理基本实现过程对现存编译程序做一些修改或扩充通过读懂源程序全面掌握编译原理基本实现过程扩充增加识别字符型数据类型和实型数据类型功能增加数据类型定义下进行完整编译程序全过程理