# compiler **Repository Path**: bai-zijun-git/compiler ## Basic Information - **Project Name**: compiler - **Description**: 编译原理作业 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-08 - **Last Updated**: 2025-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # compiler #### 介绍 编译原理作业 #### 第一阶段 完成第六部分的语法分析设计 6. Exploring Some Real Grammars. 6.1 Parsing Comma-Separated Values 84 6.2 Parsing JSON 86 6.3 Parsing DOT 93 6.4 Parsing Cymbol 98 6.5 Parsing R 102 要求给出于参考中不同的测试用例1-2个,并自动生成语法分析树 #### 第二阶段 完成第八部分的设计 8. Building Some Real Language Applications ..... 127 8.1 Loading CSV Data 127 8.2 Translating JSON to XML 130 8.3 Generating a Call Graph 134 8.4 Validating Program Symbol Usage 138 要求给出于参考中不同的测试用例1-2个。 #### 第三阶段 设计GO语言的编译器: 1、查找资料,给出GO语言的语法描述 2、设计中间代码表示形式,建议参考三地址指令代码。见参考课件的31页至63页 3、编译器的基本功能包括: a)给出输入程序,可以生产其对应的语法分析树 b)给出输入程序,可以生成相应的三地址指令代码 c)给出输入程序,可以生成相应的汇编指令 4、编译器的附加加分功能: a)给出错误的输入程序,可以进行错误分析和错误恢复 b)给出正确的输入程序,可以生成可执行文件(不用一步到位,可分步骤进行,比如先生成汇编,而后再用汇编器生成可执行文件) c)对输入程序进行优化。(可以在中间代码层面做优化,也可以在源代码或者汇编代码层面进行) 5、提交文档要尽量涵盖整个设计过程中的细节,比如,小组讨论会议纪要、设计文档、操作步骤说明、或者在设计中遇到的问题等。 6、提交文档要写明每个人的详细分工和贡献值(百分比) 7、提交文档完成功能要严格覆盖上述1~4的功能要求,完成额外附加功能的,酌情加分。 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)