C语言编译系统初探.pptVIP

  • 3
  • 0
  • 约2.2千字
  • 约 15页
  • 2019-07-11 发布于浙江
  • 举报
C语言编译系统初探 计算机系01本 陈海东 2004年2月 概述 该系统是一个简易的32位C语言编译系统,可以实现C语言程序从编辑修改、编译到连接、运行等一系列过程。能够工作在Windows的各个版本下。 必须声明的是:在设计实现这个系统的时候我并未正式接触过编译原理,因此难免会有很多贻笑大方之处? 主要构成模块 编译程序 汇编程序 连接程序 运行库及启动代码 工程管理程序 集成开发环境 系统流程 编译程序 编译器是系统的核心部分,用纯面向对象的方法设计,是技术上最难实现的部分。由于本项目的目标只是做编译器的尝试且为了调试方便,因此并未使用低级语言而是采用Visual C++ 6.0来实现。 编译器以普通的C源代码文件为输入,以32位x86汇编语言代码文件为输出。 该编译器实现了一些简单的优化。如常值表达式的化简等。 编译流程 词法分析将源程序分解为按C语言规定的保留字、标识符、数字、符号、字符串等,并处理预编译指令。 代码生成进行将输入的单词归约为诸如声明、定义、语句、表达式等实体的尝试,并登记到各相关表中,如果归约失败还将记录出错信息。整个过程采用递归的方式进行逐级的分析。 类型表记录由typedef所定义的类型。 函数表直接记录目标代码。该编译程序不产生中间代码。 常量表记录字符串、浮点常数等无法由x86立即数寻址方式引用的常量。 类型表和变量表采用栈结构,这是为了方便表示非

文档评论(0)

1亿VIP精品文档

相关文档