2018 miniJava编译器前端项目指南

需积分: 0 0 下载量 42 浏览量 更新于2024-08-04 收藏 88KB DOCX 举报
"2018年的一项编程项目说明,主要任务是构建一个miniJava语言的编译器前端,将其转换为抽象语法树。项目占期末总评的30%,截止日期为2019年1月6日,且有严格的抄袭与迟交政策。提交内容需使用git进行版本控制,项目报告和源代码应按指定格式提交。建议使用ANTLR作为工具,并要求提交的代码可执行。" 本项目是针对 miniJava 语言的编译器前端设计,旨在将输入的 miniJava 代码转化为抽象语法树(AST)。这是一个典型的编译原理课程作业,涵盖了词法分析、语法分析以及AST构建等核心概念。学生需要熟悉BNF(巴科斯范式)和语言的详细定义,以便正确解析miniJava的语法结构。 项目具有明确的截止日期,过期提交会根据天数扣除相应分数,直至扣完为止。此外,项目强调原创性,抄袭将导致零分,且禁止分享代码以避免类似问题。提交方式需通过git进行版本控制,这有助于追踪开发过程,同时,gitlog将作为评估独立完成任务的重要证据。不合理或疑似抄袭的gitlog会受到严重扣分。建议小组成员使用私有仓库服务,如GitHub的私有repo或Bitbucket,Gitlab等,以保持各自的贡献记录清晰。 项目要求团队合作,提交的文件格式需规范,包括README.md(包含组员分工和运行说明)、report.pdf(项目报告)和src文件夹。报告需详述项目实施过程和技术细节,而src文件夹则包含所有源代码。不遵循提交规范将直接扣分,且提交的代码必须能够成功执行。 在实现过程中,推荐使用ANTLR这样的工具,它是一个强大的解析器生成器,支持多种语言和格式。ANTLR可以自动生成词法分析器和语法分析器,简化了编译器前端的开发工作。同时,项目鼓励使用ANTLR,因为它提供了方便的API和广泛的支持,能帮助学生快速构建编译器前端。 这个项目旨在深化学生对编译器设计的理解,锻炼他们的实践能力,同时通过git的使用培养良好的版本控制习惯。