1、 毕业设计(论文)任务书 第 1 页 毕业设计(论文)题目: C 语言编译器设计与实现 毕业设计(论文)要求及原始数据(资料) : 1C 语言简介和国内外编译器技术研究现状; 2深入了解编译器前端,包括词法分析,语法分析, 语义分析; 3熟练掌握 C 语言语法及语法特点; 4深入分析编译器编写语言(C+) ; 5设计并实现编译过程中各个子过程,词法分析,语法分析,语义分析; 6训练检索文献资料和利用文献资料的能力; 7训练撰写技术文档与学位论文的能力。 第 2 页 毕业设计(论文)主要内容: 1C 语言简介和国内外编译器技术研究现状; 2深入了解编译器前端,包括词法分析,语法分析, 语义分析;
2、 3熟练掌握 C 语言语法及语法特点; 4深入分析编译器编写语言(C+) ; 5设计并实现编译过程中各个子过程,词法分析,语法分析,语义分析; 6训练检索文献资料和利用文献资料的能力; 7训练撰写技术文档与学位论文的能力。 学生应交出的设计文件(论文) : 1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文; 2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材 料。 第 3 页 主要参考文献(资料) : 1 KennethAReek.C 和指针.人民邮电出版社, 2008 2 Brian W.Kernighan,Dennis M.Richie. The C Program
3、Language., 2004 3 Richard Stevens. UNIX 环境高级编程. 人民邮电出版社,2006 4 布莱恩特,奥哈拉伦. 深入理解计算机系统.机械工业出版社,2011 5 Stanley B. Lippman 等. C+ Primer. 人民邮电出版社, 2008 6 Alfred V.Aho 等. 编译原理技术和工具.机械工业出版社,2003 7 Andrew W.Appel 等. 现代编译原理-C 语义描述.人民邮电出版社.2006 8 Steven S.Muchnick. 高级编译器设计与实现.机械工业出版社.2005 9 严蔚敏,吴伟民.数据结构.2012 1
4、0 高一凡.面向对象的 C+数据结构.清华大学出版社.2011 11 Thomas H.Cormen, Introduction to Algorithmsm.2012 12 Portland.Lex 其它 数 (1 个或更多的数字序列) 标识符 (1 个或更多的字母序列) 表 4-2C 语言的记号 除了上表的记号之外,C 语言的源程序还要遵循以下的词法规则:代码应是自由书 写格式;空白符由空格、制表位和新行组成。 根据对语言中各类单词某种描述的定义,用手工方式构造词法分析程序。 词法分析程序的主要任务就是扫描程序、识别单词、转换并输出属性字。下面给出 单独成趟词法分析控制流程图。 Y 形成Token字 选择识别的单词 是否文件结尾 进入主控模块 输入 C 源文件 开 始 N Y 停 止 16 图 4-1 单独成趟的词法分析控制流程图 词法分析主要包含在 Scanner.h和 Scanner.cpp 文件中,其核心函数是 scan( ),它每 次从第一个非空格或换行符开始识别, 直到