用c语言编写一个简易的编译器,面向教学的简易c语言编译器的设计与实现(54页)-原创力文档...

目录

TOC \o "1-5" \h \z \o "Current Document" 摘要I

ABSTRACTII

\o "Current Document" 1背景知识1

\o "Current Document" 1.1编译器的发展背景1

1.1.1编译器的产生1

1.2什么是编译器3

1. 1.3编译器的输出4

1. 1.4开发意义5

\o "Current Document" 1.2面向教学的意义5

\o "Current Document" 2理论分析8

\o "Current Document" 2.1概要流程8

\o "Current Document" 2编译阶段简介8

\o "Current Document" 3模块分析12

\o "Current Document" 1基础分析12

\o "Current Document" 3.2词法需求分析12

2. 1与语法分析器的交互流程12

2. 2主要功能和步骤13

\o "Current Document" 3语法需求分析14

1文法推导14

3.3.2构造分析树14

\o "Current Document" 4语义需求分析15

1语义规则15

4. 2目标形式16

\o "Current Document" 3.5文法规则17

\o "Current Document" 4编译器的实现18

\o "Current Document" 1程序结构定义18

1. 1文法结构19

1.2推导结构20

1.3语法树结构20

\o "Current Document" 2词法模块20

4.2.1实现的功能和技术20

4.2.2主要数据结构21

4.2.3示例函数23

3语法模块25

4.3.1实现功能和技术25

4.3.2主要数据结构26

4.3.3示例函数27

\o "Current Document" 4. 4语义模块29

4.4.1实现的功能和技术29

4.4.2主要数据结构30

4.4.3示例函数31

4. 5汇编模块33

5程序测试.

34

35

35

36

40

错误!未定义书签。

1使用方法....

2测试用程序

3测试结果....

结论

致谢

参考文献.

41

摘要

作为一个理论性和实践性非常重要的课程,编译原理在计算机的整个体系框架内都占有非常重要的地位,编译原理不仅自身所占比重非常大,更是许多门课程的基石,在学好这门课程的基础上对其他知识的理解才可以深入和清晰。而通过学习编译器的组成和运行流程可以深入了解编译原理的基础概念和使用方法,从而提高自身的理论及实践水平,提高自身的编程能力并且解决一些以前遇到的一些问题。而C语言是最基础的编程语言,大部分人的入门语言都是C语言,它的教学用途非常广泛,现在市面上有许多面向不同对象使用方便简单的编译器,但却没有一款主要针对教学的C语言编译器。如果可以制作出一款专门针对教学使用的C语言编译器一定可以解决一般编译器在教学过程中的不便之处。

编译器需要首先确定文法规则,继而确定对应正规表达式和有穷自动机的此法阶段,而后要通过已确立的文法建立下推自动机模型和语法树,在这之上还可以进行语义的纠错处理和代码的优化分析,并最终完成目标代码的生成。这是本程序的基本内核和关键点。本编译器使用C++语言实现,采用类C语言的LL文法,的主要功能有包括各部分的输出结果及中间代码,变量声明及赋值与运算,函数构造,整数、浮点数的运算,字符串的输入与输出,选择语句,循环语句,跳转语句以及生成目标语言。

关键词:编译原理、编译器、c语言

ABSTRACT

Compiler theory is a combination of theory and practice of curriculum, the studyand work in the computer professional plays a vital role. And through the study of thecomposition and running process of compiler can deeply understand the compilationprinciple is based on the concept and method of use, so as to improve own theory andpractice level, to improve their programming ability and solve som

你可能感兴趣的:(用c语言编写一个简易的编译器)