Saipan编译器结构

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值