项目简介
这是一个基于C语言和ANTLR4框架的编译器项目,目标是实现一个基本的C语言编译器。该编译器支持C语言的基本特性,可将C代码翻译成x86汇编代码,最终通过GCC编译成二进制文件。项目还设有测试部分,借助Python脚本对编译器进行测试,保证其生成的汇编代码与GCC生成的代码功能一致。
项目的主要特性和功能
- C语言支持:支持C语言基本语法和特性,涵盖变量声明、初始化和使用,以及基本控制流结构。
- 汇编代码生成:能把C代码翻译成x86汇编代码,支持ARM和x86两种汇编语言。
- 中间表示(IR):运用中间表示树(IR)简化从C代码到汇编代码的转换过程。
- 符号表管理:通过符号表检查变量的声明、初始化和使用情况。
- 测试框架:使用Python脚本对编译器进行测试,确保生成的汇编代码与GCC生成的代码功能一致。
安装使用步骤
1. 安装依赖
构建编译器前,需安装ANTLR4,可通过以下方式安装:
- 使用系统包管理器安装ANTLR4。
- 或运行项目提供的脚本 install-antlr.sh
。
2. 构建项目
在终端进入项目目录,运行以下命令构建项目:
bash
make
3. 设置汇编语言
运行编译器前,需指定目标操作系统的汇编语言:
- 对于macOS或Linux系统,设置环境变量:
bash
export CONFIG_ASSEMBLY=ARM
4. 运行编译器
构建完成后,使用以下命令运行编译器:
bash
./ifcc path/to/file [--debug | --symbol | --x86 | --ARM]
- --debug
选项显示生成汇编代码之前的中间表示(IR)。
- --symbol
选项显示完整的符号表。
- --x86
或 --ARM
选项允许选择生成的汇编语言,覆盖 CONFIG_ASSEMBLY
环境变量。
5. 运行测试
在 tests
目录下,确保已安装Python 3,然后运行以下命令进行测试:
bash
python3 ifcc-test.py testfiles
部分测试可能需要用户输入。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】