# 迷你编译系统 **Repository Path**: studnet_f/mini-compiler-system ## Basic Information - **Project Name**: 迷你编译系统 - **Description**: JavaCC开发迷你编译系统,主要实现有: 1.使用文件读入的方式测试编译程序; 2.将词法分析、语法分析和语义分析结果分别以文件方式输出; - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2022-03-08 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 迷你编译系统 #### 介绍 JavaCC开发迷你编译系统,主要实现有: 1.使用文件读入的方式测试编译程序; 2.将词法分析、语法分析和语义分析结果分别以文件方式输出; 系统功能 1.能够根据单词的构词规则,完成MiniC语言中的单词的解析(词法分析),如果不符合单词的构词规则,请给出错误信息。如果源语言符合单词的词法规则,输出<单词种别,单词自身值>二元式; 2.在词法分析的基础上,构造MiniC的递归下降分析文法,利用JavaCC实现递归下降文法。判断源语言是否符合MiniC的语法,如果符合,输出语法树;否则,请给出语法错误信息; 3.在语法分析的基础上,根据属性文法制导翻译,进行语义分析,输出四元式。如果源语言不符合MiniC的语义,请指出错误信息; 4.在实习课的基础上,整个编译系统要能够翻译声明语句、赋值语句、布尔表达式,if-else, for, while,do-while,switch-case等语句嵌套的分析与翻译;符号表、语义错误检查:变量重复声明、变量使用时未定义。 #### 软件架构 软件架构说明 ![输入图片说明](readme_img/sys.png) #### 效果图 开始界面: ![输入图片说明](readme_img/begin.png) if_else语句: ![输入图片说明](readme_img/if_else.png) for语句: ![输入图片说明](readme_img/for.png) do-while语句: ![输入图片说明](readme_img/while.png) switch-case语句: ![输入图片说明](readme_img/switch_case.png)