Saipan编译器结构

原创 2006年05月19日 23:46:00
我开发中的编译器名字暂时叫"Saipan" ,就是塞班岛的意思,那是个美丽的地方.

目前它分为已下几个模块
预处理->词法分析->语法分析->语义分析->字节码生成    以及 符号管理,类型系统,属性管理,错误处理 等几个部分,并在语法分析和语义分析中完成一些属性的计算.

各个模块大概功能如下:
预处理:         目前只是简单的去注释  (已完成)
词法分析:     将源代码拆分成一个个的标识符,并判断出基本类型,例如关键字,运算符,立限数 (已完成)
语法分析:     分析已拆分出来的标识符,检查是否有语法错误,并成生语法树.
语义分析:     在语法树的基础上检查语义.
字节码生成: 生成自己的虚拟机可以运行的字节码.
没有单独的属性计算步骤,为了编程上的方便,将属性计算放在语法分析和语义分析部分一起进行.

其它的模块包括:
符号管理:   管理词法分析中拆分出来的标识符. (已完成)
类型系统:   管理类型信息,包括标准类型和构造类型(类,接口,枚举之类)的信息,比如此类型所占用字节长度,是否能显示或 隐式的转换成某个其它类型.当某二个类型经过某种运算符的运算,会得到什么样的类型等等. (完成一部分)
属性管理:   管理编译过程中所计算出来的某个语法元素的属性,比如一个参数的类型,在栈上寻址的偏移地址等.
错误处理:    对源代码中各种错误的处理. (完成一部分)

相关文章推荐

数据结构栈-行编译器

  • 2015年11月20日 20:31
  • 2KB
  • 下载

C编译器剖析_4.4 语义检查_外部声明_类型结构的构建(2)

在这一小节中,我们将对形如第3章图3.3.17所示的结构体语法树进行语义检查,从而构建结构体的类型结构。          图3.3.17 ParseStructOrUnionSpecifie...
  • SheIsC
  • SheIsC
  • 2015年03月20日 14:24
  • 961

C编译器剖析_4.4 语义检查_外部声明_类型结构的构建(1)

4.4.1  类型结构的构建(1)     int * arr1[5]和int (*arr2)[5]的类型结构
  • SheIsC
  • SheIsC
  • 2015年03月17日 19:55
  • 731

编译器对switch case结构的优化

在使用IDA分析Crack Me的时候,发现IDA对switch case结构的分析很是清晰,还发现了一个jump table for switch statement,也就是所谓的跳转表了,是编译器...

java开发C编译器:结构体的解析和执行

更详细的讲解和代码调试演示过程,请参看视频 用java开发C语言编译器结构体是C语言中,最为复杂的原生数据结构,它把多种原生结构结合在一起,形成一个有特点含义的数据结构,要实现一个完整的C语言编译器...

结构化编译器前端 Clang 介绍

如何运用 Clang 进行插件开发 Low Level Virtual Machine (LLVM) 是一个开源的编译器架构,Clang 是 LLVM 的一个编译器前端。由于优秀的设计,使得 cla...
  • vloong
  • vloong
  • 2014年02月11日 15:12
  • 634

GCC编译器中和ARM体系结构相关的选项讲义

和ARM体系结构相关的选项 这些是为ARM(Advanced RISC Machines)结构定义的“-m”开关: -mapcs-frame 对所有函数都生成一个遵从ARM程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Saipan编译器结构
举报原因:
原因补充:

(最多只允许输入30个字)