登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 计算机科学与技术 > 正文

基于C的小型编译程序的设计毕业论文

 2022-02-15 10:02  

论文总字数:19881字

摘 要

随着计算机的广泛应用,计算机程序设计语言也从初期的机器语言发展为汇编语言,以及现在的各种高级程序设计语言。编译程序的功能就是把一种高级程序设计语言源程序转换为另外一种与之等价的低级程序设计语言目标程序。从高级语言,甚至运行于虚拟平台的高级语言,到机器语言,最终到硬件执行的指令,这一步步的转化,都涉及编译技术的应用。

本系统采用C 为编程语言。论文首先介绍了本编译程序的组成及用到的技术。然后,重点阐述了词法分析程序、语法分析程序、语义分析程序和目标代码生成的设计思路,最后说明了该编译程序对源程序错误的检查。

关键词编译技术 编程程序 高级语言

C language compiler design and Implementation

Abstract

With the widespread use of computers, the computer programming language also evolved from the initial machine language to assembly language, as well as the various advanced programming languages. The function of the compiler is to convert a high-level programming language source program into another equivalent low-level programming language target program. From high-level language, and even running in the virtual platform of the high-level language, to the machine language, and ultimately to the implementation of the hardware instructions, this step by step transformation, are involved in the application of compiler technology.

The system uses C as the programming language. This paper mainly introduces the background, task function, structure of the thesis, the composition of the compiler and the technology used in the graduation project. This paper focuses on the design of lexical analysis, grammar analysis and semantic analysis.

Key Words: Compiler technology,Programming procedures,High-level programming language

目录

摘 要 I

Abstract II

第一章 绪论 2

1.1 课题背景 2

1.2 课题功能 2

1.3 论文结构 3

第二章 编译程序的组成 4

2.1 词法分析程序 4

2.2 语法分析程序 4

2.3 语义分析程序 4

2.4 目标代码 5

2.5 代码优化 5

第三章 语法分析的技术 7

3.1 自顶向下的分析技术 7

3.1.1 递归下降分析技术 7

3.1.2 预测分析技术LL(1) 7

3.2 自底向上的分析技术 8

3.2.1 算符优先分析技术 8

3.2.2 LR(K)分析技术 8

第四章 C语言小子集编译程序的实现 10

4.1采用的语法分析技术 10

4.2采用的逻辑结构 11

4.3 C语言小子集编译程序的设计 12

4.3.1 词法分析程序的设计 13

4.3.2 语法分析程序的设计 17

4.3.3 语义分析程序的设计 22

4.4编译程序错误的检查 30

4.4.1 词法分析方面的错误 30

4.4.2 语法分析方面的错误 30

4.4.3 语义分析方面的错误 31

第五章 总结及展望 33

5.1 毕业设计总结 33

5.2 日后展望 33

参考文献 34

致谢 35

第一章 绪论

1.1 课题背景

随着计算机科学技术的飞速发展,计算机技术被应用在了越来越广泛的领域,实现各种各样功能的计算机程序被大量地开发出来,应用在我们的生活、学习和工作当中。相应地,也产生了许多用以编写这些计算机程序的高级程序设计语言。程序编制者通过特定语言的编译器将自己编写的源程序翻译为特定机器上的目标程序,从而能够最终达到程序执行的目的。

从20世纪60年代以来,编译器设计就一直是计算机研究发展和开发领域中的一个活跃主题。虽然编译器设计已有很长的历史,并且也是一门相对成熟的计算机技术,但编译器毕竟是一种实现由高级语言源程序至机器或汇编指令的高效映射工具,随着计算机软、硬件水平的飞速发展,使得计算机应用日新月异,程序语言的设计在不断地变化,目标机体系结构也在不断地改进,软件越来越复杂,其规模也越来越大。尽管编译器设计问题在高级层次上没有变化(或变化很小),但当我们深入其内部研究时就会发现,编译器的内部构造其实也一直在变化。此外,由于我们能够提供给编译器本身使用的计算资源也在不断增加。因此,现代编译器可以采用比以前更耗费时间和空间的算法。当然,编译技术研究人员也在继续努力开发新的、更好的技术来解决传统编译器的一些设计性问题。

另一方面,很多编译“前端”技术,如文法、正则表达式、语法分析器以及语法制导翻译器等,仍然被广泛使用。

1.2 课题功能

本次毕业设计实现了一个基于C的小型编译程序, 该小型编译程序的主要任务是分析基于C语言小子集规范的字符组成的C小子集源程序,把它们识别为一个个具有独立意义的单词或符号,并识别其有关属性再转换成长度统一的属性字,然后经过语法分析检查其语法结构是否正确,最后由语义分析确定标识符的类型、检查运算的类型是否匹配、识别语义并作相应的语义动作处理。综上,本基于C的小型编译程序的功能就是扫描C小子集语言源程序,识别出单词,将其转换成属性字,再经过语法结构检查、语义处理和代码生成,最终得到四元式形式的目标文件。

小型编译程序实现了下列几项功能:

(1)从C源程序中逐一取出单词。

请支付后下载全文,论文总字数:19881字

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图