项目简介
SysY编译器是简化版的C语言编译器,实现了从源代码到中间代码再到汇编语言的完整编译流程。此项目可作为学习编译原理和实践编译器开发的工具,涵盖语法分析、语义分析、中间代码生成、中间代码优化以及汇编代码生成等关键步骤。
项目的主要特性和功能
- 抽象语法树生成:借助Bison工具识别关键字、变量、函数等元素,生成对应的抽象语法树。
- 语义分析:对语法树进行语义检查,保证变量类型、函数调用等语义无误。
- 中间代码生成:把语法树转化为自定义格式的中间代码,为后续优化和汇编代码生成做准备。
- 中间代码优化:提供常量折叠、公共子表达式消除、冗余代码消除等优化算法,提升程序运行效率。
- 汇编代码生成:将优化后的中间代码转换为ARM平台的汇编代码,生成可执行文件。
安装使用步骤
依赖安装
- 确保已安装Bison工具。
- 安装C语言编译器(如gcc)。
源码编译
使用gcc编译各个源文件,示例命令如下:
bash
gcc -o sysy_compiler ast.cpp gen_arm.cpp gen_arm2.cpp gen_code.cpp ir_optimize.cpp lex.yy.c SysY.tab.c util.cpp
运行编译器
通过命令行运行编译器,并输入C语言源代码文件作为输入,示例命令如下:
bash
./sysy_compiler input.c
生成结果查看
- 查看生成的中间代码文件(如
ir.txt
)。 - 查看优化后的中间代码文件。
- 查看最终生成的ARM汇编代码文件。
通过以上步骤,用户可体验从源代码到汇编代码的完整编译流程,了解编译器的工作原理和实现细节。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】