关闭

Saipan编译器结构

1949人阅读 评论(1) 收藏 举报
我开发中的编译器名字暂时叫"Saipan" ,就是塞班岛的意思,那是个美丽的地方.

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

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

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:80835次
    • 积分:1182
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:0篇
    • 译文:0篇
    • 评论:78条
    最新评论