Skip to content

refrain-wbh/wbhcc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wcc:编译原理课程项目

本项目来源于学校编译原理课程设计,主要借鉴了chibicc的设计思路,该C编译器采用一种增量的方式逐步构建符合C11标准的编译器,非常适合初学者学习。 项目计划分为四个部分实现:词法分析,语法分析,语义分析和中间代码生成,目标代码生成,中间代码优化部分由于时间问题暂时不考虑实现,但万一以后想实现呢?未可知。 原本准备从小项目逐步构建起整个框架,但由于需要生成中间代码和目标代码(课程要求)所以起步并不顺利,因为需要写太多代码用于基本的寄存器分配以及构建符号表。

支持的语法

ifwhileforreturn语句
+ - * / == != < > <= >= 
* & (取地址,解引用) [] (运算符)
函数调用
数组 

在remind.md中有一些思考的心路历程,其中最重要的是对指针、右值等等的考虑和实现,以及中间一次大的重构的心路历程。没有整理过,只是为了厘清思路。

使用方法

使用make指令进行编译,然后运行./test.sh进行测试,或者直接make test 注意,生成的代码是基于linux系统,并且格式符合AT&T格式。

参考

  • chibicc: 采用增量方式构建的C编译器

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published