编译原理专题实验 2013 西安交通大学
指导老师:赵银亮 TA:刘延昭、武万杰、王启明、何守伟
Outline 实验目的 实验方案选择 编译器实现概貌 本课程安排 COOL语言概貌
一、实验目的 认识完整的编译过程 掌握词法、语法、语义分析的代码实现 基于COOL语言 将抽象的原理转化为具体实现 正确理解编译器的内部机制 了解复杂程序的规范开发过程 检验在程序语言方面的能力 认识自己的强项
二、实验方案选择 Classroom Object-Oriented Language Alexander Aiken Stanford, Virginia, Berkeley, pitt, gcsu, wright, wustl, udel,… 语言 描述 编译 器 模拟 器 实验 描述 加州大学伯克利分校的实验项目环境以及对应的实验文档
三、编译器实现概貌 coolc 源程序 mips汇编代码 ref- lexer ref- parser ref- semant ref- cgen my- lexer my- parser my- semant my- cgen spim 输出 实验内容及特点
本实验特点 完整性 关注编译运行完整过程,并分成多个阶段可观察 灵活性 每个实验可独立 每个实验可被剪裁 几个实验可串联起来 实用性 Linux makefile mips 易于满足同学的个性化需求 强手高手也施展得开
四、课程安排 实验分组:3人一组 上机安排 签到;验收(通过后可提前离开) 上机时间安排:每次4小时共6次,讲课1~2次 具体时间另行安排,第一次? 实验报告 每个实验完成后提交电子版,包括实验报告及其附件 电子版发至邮箱: byyl_2012@163.com 邮件及附件命名规则:班级学号姓名实验n
实验报告格式 实验题目、完成时间、姓名、学号、班级 实验内容描述 实验过程或流程描述 实验结果描述,包括输入、输出及评价 实验心得:讨论自己的程序解决了哪些问题,不能解决哪些问题。 附件:所有有关文档的文件名及简要说明。注:电子版中包括这些文档。
课程安排(续) 实验大纲 每次实验有实验大纲介绍实验目的、任务和过程 提供相关资料 实验环境 演示
部分环境 Cool 安装目录 /usr/local/lib/cool Add the following to your PATH to access Coolexecutables: /usr/local/lib/cool/bin There are several example Cool programs in the directory: /usr/local/lib/cool/examples To compile a Cool program type: coolc <filename.cl> The compiler produces MIPS assembly code. To “execute” the program use the SPIM simulator: spim –file <filename.s>
课程安排(续) 交流互动 现场提问、解答 通过邮箱xjtucompiler2013@163.com 其他 成绩评定 完成了实验过程(有签到和报告)60-70 根据验收情况确定 70-90 态度积极主动、兴趣大, 可加分
五、COOL概貌 Designed to Be implementable as a course project in one semester /two quarters. Give a taste of implementation of a modern programming language with Abstraction and Encapsulation Strong typing, Static typing Reuse (single inheritance) Dynamic Dispatch Automatic Memory management But leaves out many features of a production language, for tractability.