一个简单文法的编译器前端的设计与实现.doc
文本预览下载声明
课 程 设 计 报 告
设计题目:一个简单文法的编译器前端的设计与实现
班 级:
组长学号:
组长姓名:
指导教师:
设计时间:20年月
摘 要
关键词:……
目 录
摘要
1 概述2 课程设计任务及要求
2.1 设计任务
2.2 设计要求
3 算法与数据结构··························4
3.1算法的总体思想(流程)···················4
3.2词法分析模块·······················5
3.2.1 功能························7
3.2.2 数据结构······················8
3.2.3 算法························9
3.3 语法分析模块·······················10
3.3.1功能························11
3.3.2 数据结构······················12
3.3.3算法························13
3.4 符号表模块························13
3.4.1功能·······················13
3.4.2 数据结构·····················14
4序设计与实现··························14
4.1 程序流程图······················14
4.2 程序说明······················15
4.3 实验结果······················15
5. 结论
6. 参考文献。
7. 收获、体会和建议。3. 算法及数据结构
3.1算法的总体思想(流程)
输入文件
程序整体上遵从上图所示流程图,源代码通过词法分析器,录入token序列,并纠察词法错误,接下来根据token序列进行语法分析,采用递归下降法对程序语法进行验证检查,在这过程中,建立和完善符号表,并进行语义差错(主要是类型检查、未定义和重定义),通过前面过程后,才能生成中间代码,并输出有关信息。
3.2词法分析模块
3.2.1功能
词法分析程序又称扫描器,它是编译过程的第一个阶段。其主要任务是从左到右依次描描字符串形式的源程序的各个字符,逐个识别出其中的单词,并将其转换成为内部编码形式的单词符号串输出,用于进行语法分析。概括的说语法分析器在工作中完成以下几项任务:
(1)识别出源程序中的各个单词符号,并将其转换成内部编码形式;
(2)删除无用的空白字符、回车字符以及其他非实质性字符;
(3)进行词法检查,报告所发现的错误;
(4)填写符号表。
3.2.2 数据结构
struct TokenType
{ int code,value;}token[100];//token序列
string bsfwords[20];//标示符数组,code = 0
int bsf = 0;
char zifwords[20];//字符数组,code = 1
int zif = 0;
string zfcwords[20];//字符串数组,code = 2
int zfc = 0;
float numwords[30];//
显示全部