编译器设计
课程大纲:编译器设计 - 计算机科学中的形式科学
第1周:课程介绍与预备知识
- 主题:编译器概述与基础概念
- 学习目标:
- 了解编译器的工作原理及重要性
- 熟悉形式语言和计算理论基础
- 阅读/资源:
第2-3周:词法分析
- 主题:词法分析器的设计与实现
- 学习目标:
- 理解正则表达式与词法分析
- 学习词法分析器的工作流程
- 教学方法:
- 讲座 + 实例演示
- 小组讨论:设计简单的词法分析器
- 评估:词法分析器设计作业
第4-5周:语法分析
- 主题:构造解析树与语法分析器
- 学习目标:
- 掌握上下文无关文法和LL(k)解析算法
- 实现LR(0)或LL(1)分析器
- 教学方法:
- 讲座 + 语法分析器构建实践
- 分组讨论:解析规则的应用
- 评估:语法分析器实现与测试
第6-7周:语义分析与中间代码生成
- 主题:类型检查、变量绑定与中间代码生成
- 学习目标:
- 了解语义分析的规则
- 学习如何生成低级语言(如三地址码)
- 教学方法:
- 讲座 + 中间代码生成工具演示
- 小组项目:实现简单语义分析器
- 评估:项目报告与中期测试
第8-9周:优化与代码生成
- 主题:编译器优化与目标代码生成
- 学习目标:
- 理解编译器优化策略
- 学会将中间代码转换为目标机器代码
- 教学方法:
- 讲座 + 代码优化案例研究
- 实践:针对特定平台的代码生成
- 评估:优化策略分析报告与最终项目
第10周:项目与总结
- 主题:综合项目与课程回顾
- 学习目标:
- 应用所学知识完成编译器全栈设计
- 总结并反思整个学习过程
- 教学方法:
- 个人项目展示与小组讨论
- 课程回顾与答疑
- 评估:项目演示与期末测试
在整个课程中,将通过在线讨论区、编程练习和定期小组活动,鼓励学生积极参与和互相学习。评估将侧重于理解深度和实践能力,而不仅仅是记忆。