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

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

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一个简单文法的编译器前端的设计与实现.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];//数字常量数组,code = 3 int num =0; 3.2.3 算

文档评论(0)

love + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档