1. 研究目的与意义(文献综述)
(1) 研究背景
从1957年第一个fortran编译器诞生已经将近60年,编译器的技术也已经突飞猛进。从原来的手动构造词法分析器和语法分析器,到现在已有很多优秀的词法语法自动生成器,例如lex,yacc和antlr。编译器的前端技术已经非常成熟,计算机科学家和工程师现在则是将研究重点均放在编译器后端上,特别是关于代码优化的部份,已期待编译器能生成更高效的目标代码,以使程序员在编写程序的时候不需要过多考虑优化技巧,可以把更多的精力花在业务逻辑上。而我国也在上世纪70年代第一个编译器问世后,相当多的大学及科研机构投身于其中。如今,国内顶级互联网公司的科研均有投入精力在编译器的系统架构上进行研究。
(2)目的和意义
2. 研究的基本内容与方案
(1)完整的c编译器主要包括以下部份:预处理器,词法分析器,语法分析器,中间代码生成器,代码优化器,目标代码生成器。(其中的代码优化器并不着重处理,并且所实现的是一个类c子集,并没有盖整个语言标准的方方面面)
(2)预期的目标:采用模块化方式,将c编译器进行切分,形成编译工作流水线,并且每一个部份的输出将会是下一个部份的输入。所做的工作是将c代码进行词法语法分析,能对出错的部份给出错误提示,能过词法语法分析后,将其转变成中间代码形式(抽象语法树)。此后将不会产生错误提示。接着进行代码优化,最后生成linux上原生的elf格式可执行文件。
3. 研究计划与安排
第1-2周:查阅相关文献资料,确定研究方向(c编译器的设计与实现),拟定论文题目;
第3-4周:查阅相关文献资料,明确研究内容;
第5-6周:查阅相关文献资料,完成开题报告和5000字以上的英文资料翻译;
4. 参考文献(12篇以上)
[1] bergin t.j , r.g. gibson. history of programming languages. acm press,new york,1996
[2] scott m.l. programming language pramatics,second edition. morgankaufmann,san francisco,ca,2006
[3]knuth d.e , j.h.morris, v.r.pratt. ”fast pattern mathing in strings” siam j.computing 6:2(1977),pp.114-125
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。