文档详情

一个简单文法的编译器前端的设计与实现.doc

发布:2017-02-06约字共19页下载文档
文本预览下载声明
课 程 设 计 报 告 设计题目:一个简单文法的编译器前端的设计与实现 班 级: 组长学号: 组长姓名: 指导教师: 设计时间: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];//
显示全部
相似文档