课程介绍:学科背景:编译原理是计算机科学与技术、软件工程等专业的一门重要专业基础课,旨在介绍编译程序构造的一般原理和基本方法。课程内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。作为计算机专业的核心课程之一,编译原理课程涉及自动机理论、程序语言、优化算法、和硬件指令等相关领域,在理论、技术和方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力,加深对程序语言和计算机系统软件的理解,提高软件开发和设计能力。
教学内容:本课程主要介绍编译器的工作原理,共九章,第一章概要介绍编译器的发展及结构;第二章介绍文法和语言;第三章介绍自动机的理论和词法分析;第四、五和六章分别介绍自上而下的文法分析、优先文法分析和LR类的文法分析理论和算法;第七章介绍中间代码生成的基本流程;第八章介绍运行时的数据区管理,包括堆和栈的管理;第九章介绍中间代码的简单优化和目标代码的生成。
教学方式:本课程以理论课授课为主,同时重视实践教学,要求学生完成2个课程大作业。