课程大纲:编译器设计 - 计算机科学中的形式科学

第1周:课程介绍与预备知识

第2-3周:词法分析

  • 主题:词法分析器的设计与实现
  • 学习目标
    • 理解正则表达式与词法分析
    • 学习词法分析器的工作流程
  • 教学方法
    • 讲座 + 实例演示
    • 小组讨论:设计简单的词法分析器
  • 评估:词法分析器设计作业

第4-5周:语法分析

  • 主题:构造解析树与语法分析器
  • 学习目标
    • 掌握上下文无关文法和LL(k)解析算法
    • 实现LR(0)或LL(1)分析器
  • 教学方法
    • 讲座 + 语法分析器构建实践
    • 分组讨论:解析规则的应用
  • 评估:语法分析器实现与测试

第6-7周:语义分析与中间代码生成

  • 主题:类型检查、变量绑定与中间代码生成
  • 学习目标
    • 了解语义分析的规则
    • 学习如何生成低级语言(如三地址码)
  • 教学方法
    • 讲座 + 中间代码生成工具演示
    • 小组项目:实现简单语义分析器
  • 评估:项目报告与中期测试

第8-9周:优化与代码生成

  • 主题:编译器优化与目标代码生成
  • 学习目标
    • 理解编译器优化策略
    • 学会将中间代码转换为目标机器代码
  • 教学方法
    • 讲座 + 代码优化案例研究
    • 实践:针对特定平台的代码生成
  • 评估:优化策略分析报告与最终项目

第10周:项目与总结

  • 主题:综合项目与课程回顾
  • 学习目标
    • 应用所学知识完成编译器全栈设计
    • 总结并反思整个学习过程
  • 教学方法
    • 个人项目展示与小组讨论
    • 课程回顾与答疑
  • 评估:项目演示与期末测试

在整个课程中,将通过在线讨论区、编程练习和定期小组活动,鼓励学生积极参与和互相学习。评估将侧重于理解深度和实践能力,而不仅仅是记忆。