编译技术是计算机科学与技术、软件工程专业一门重要的专业课。在计算机众多的原理性学习课程中,编译原理主要介绍程序语言实现原理、方法和技术。因此该课程内容有一定深度和难度,且综合性比较强,涉及的先修课程比较多,包括数据结构、离散数学、程序设计、汇编语言、操作系统等,编译技术课程涉及到的原理比较多且复杂;对学生专业知识掌握情况也要求比较高,学生在学习过程中容易感到内容抽象、算法复杂,需要学生动手实践,是一门公认比较难学、比较难教的课程。同时,计算机学科是一门对实践性要求比较高的学科,在考虑如何使学生学好《编译技术》课程理论知识时,如何把理论和实践结合起来,促进和激发学生的学习兴趣,锻炼学生用计算机解决问题的能力和逻辑思维能力,是编译原理教学的一个主要而且极其重要的问题。
课程大纲
01 绪论:本章简要介绍编译器的各个组成部分以及编译器技术的各种应用。
02 词法分析:本章介绍正规式和有限自动机的概念以及词法分析器的自动生成方法。
03 语法分析:本章介绍上下文无关文法的基本概念,详细介绍适合于手工实现的预测分析技术和自动工具采用的LR分析算法。
04 语法制导的翻译:本章介绍语义规则和产生式相联系的两种方式:语法制导的定义和语法制导的翻译方案。
05 运行时存储空间的组织和管理:本章介绍在代码生成之前,静态的程序正文和运行时的活动之间的联系,以及静态的名字和运行时数据对象之间的绑定关系。
06 中间代码生成:本章基于语法制导定义的方法,介绍编程语言的基本结构怎样被翻译成独立于机器的中间表示。
07 代码生成:本章介绍代码生成器所需要解决的问题,通过一个简单的代码生成算法理解代码生成的全过程。
08 一个简易的编译器设计与实现:本章介绍如何实现一个简单的基于Python的编译器。