littlebot
Published on 2025-04-09 / 0 Visits
0

【源码】基于C语言的SysY编译器

项目简介

SysY编译器是简化版的C语言编译器,实现了从源代码到中间代码再到汇编语言的完整编译流程。此项目可作为学习编译原理和实践编译器开发的工具,涵盖语法分析、语义分析、中间代码生成、中间代码优化以及汇编代码生成等关键步骤。

项目的主要特性和功能

  1. 抽象语法树生成:借助Bison工具识别关键字、变量、函数等元素,生成对应的抽象语法树。
  2. 语义分析:对语法树进行语义检查,保证变量类型、函数调用等语义无误。
  3. 中间代码生成:把语法树转化为自定义格式的中间代码,为后续优化和汇编代码生成做准备。
  4. 中间代码优化:提供常量折叠、公共子表达式消除、冗余代码消除等优化算法,提升程序运行效率。
  5. 汇编代码生成:将优化后的中间代码转换为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】