- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
学士学位论文
题目:基于LLVM的编译器的设计与实现
设计人: 梁关林
指导教师:刘爱琴
所属系部:计算机科学与技术学院
专业班级:计算机082001班
2012年 6月 4日
太原科技大学毕业设计(论文)任务书
学院: 计算机科学与技术学院
学 生 姓 名 梁关林 学号 200820010114 专业班级 计算机082001 同组人 无 任务下发时间 2012年3月 任务完成时间 2012年6月 设计(论文)题目 基于LLVM的编译器的设计与实现 设计
目的
要求
高质量应用软件的开发,需要高效的编程语言和编译器的支持。为了加深学生对编程语言和编译器的理解,要求学生设计一个类似C的小源语言,然后利用LLVM实现该语言的编译器。
设计
主要
内容
在深刻理解编译原理,掌握文法设计和编译器构造方法,并且熟悉LLVM的基础上,完成编程语言和编译器的设计。主要内容包括:
设计源语言,要求包括变量声明,基本赋值语句,数组访问,条件分支语句,循环语句,函数定义,和函数调用等。
学习LLVM,完成词法分析,语法分析,和语法制导翻译(翻译成LLVM IR)工作,最后利用LLVM实现代码优化和代码生成功能。
设计
提交
资料 毕业论文
外文资料翻译
编译器软件 学生签名 指导教师签名 系主任签名 主管院长签名
中文摘要
开发高性能的应用软件,除了一个良好的软件架构外,还需要高效的编程语言和高质量的编译器的支持。现有语言的改动和新语言的创造,都会带来编译器的开发需求。
本文设计了一门新的编程语言leechee,定义了此种语言的文法结构、词法规则,并在linux环境下实现了leechee编程语言的编译器。具体实现方式为首先利用Flex完成词法分析,而后使用Bison完成文法设计、语法分析和语法制导翻译,把源代码翻译成LLVM IR,最后利用LLVM实现代码优化和代码生成功能。
关键字:编程语言;编译器;语法制导翻译;LLVM IR;代码优化
The Design and Implementation of
LLVM based Compiler
Author: Liang Guanlin Tutor: Liu Aiqin
ABSTRACT
In addition to a good software-architecture, the development of high-performance applications also needs the support of an efficient programming language and a high-quality compiler. Changes to existing languages and creation of new languages, will bring the development needs of the compilers.
This paper designs a new programming language leechee, defines its grammatical structures, lexical rules, and implements its compiler under Linux environment. The specific approach is, first, finishes the scanner with Flex, and then completes the grammar design, parser, syntax directed translation with Bison, implements the translation to LLVM IR, and finally use the LLVM to do the code optimization and code generation.
Keywords: programming language; compiler; syntax directed translation; LLVM IR; code optimization
目录
第一章 绪论 1
1.1 什么是编译器 1
1.2 总会有编译器的开发需求 1
1.3 为什么做这个项目 2
第二章 设计什么样的编译器和语言 4
2.1 做一个什么样的编译器 4
2.1.1 利用LLVM实现一门新语言 4
2.1.2 利用flex和bison完成词法分析和语法分析 5
2.2 设计一个什么样的语言 6
2.2.1 计算机可以做什么 6
2.2.2 本设计的语言——l
文档评论(0)