# AdvCompTech **Repository Path**: glucose180/advcomptech ## Basic Information - **Project Name**: AdvCompTech - **Description**: UCAS《编译程序高级教程》实验作业 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-10-26 - **Last Updated**: 2026-02-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 编译程序高级教程 这里是 2025 年 UCAS 研究生课程《编译程序高级教程》的实验仓库! 今年起,实验基于 LLVM 20 版本进行。 ## 实验 1:AST 解释执行 ### 构建 ```bash $ cd Pr1-ASTInterpreter $ mkdir build $ cd build $ cmake -DCMAKE_BUILD_TYPE=Debug .. $ make && cd .. ``` 注意:“CMakeLists-a.txt”适用于课程提供的 Docker 容器里,“CMakeLists-g.txt”适用于带有自己编译安装的 LLVM 的环境(需在其中配置相应的目录)。构建时注意将自己需要的那一个重命名为“CMakeLists.txt”。 ### 运行 可以直接使用程序内容: ```bash $ build/ast-interpreter "" ``` 其中 `` 是 C 程序内容,而不是源文件名! 也可以指定文件: ```bash $ build/ast-interpreter -f ``` 其中 `` 是 C 程序源文件。课程提供的所有测试程序位于“test”目录下。 ## 实验 2:函数调用分析 ### 构建 与实验 1 相仿。 ### 运行 ```bash $ build/HomeworkLLVM ``` 其中 `` 是 BitCode 格式的 LLVM IR 文件。课程提供了 C 程序源文件,可通过下面的命令调用脚本生成相应的 BitCode 文件到“test”目录中: ```bash $ bash gen-llvm-bc.sh ```