剑神一笑的游戏世界

梦开始的地方

Saipan编译器结构

我开发中的编译器名字暂时叫"Saipan" ,就是塞班岛的意思,那是个美丽的地方.

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

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

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

编译原理讲义

2014年12月15日 17.18MB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭