编译系统在计算机科学与技术的发展历史中发挥了巨大作用,是计算机系统的核心支撑软件。《编译原理》课程一直是国内外大学计算机相关专业的重要课程。其主要内容贯穿程序语言、系统环境及其体系结构,能以相对独立的视角体现从软件到硬件,以及软硬件协同的整机概念,同时,其理论基础又涉及形式语言与自动机、数据结构与算法设计等计算机科学的许多重要方面,因此编译系统是联系计算机科学和计算机系统的典范。
《编译原理》课程是理论性很强、实践性也很强的课程,课程建设团队在有限的学时内,根据课程容量和学生特点,选择适当的知识为载体,不仅介绍典型问题求解方法和技术,更注重计算学科问题求解基本思路的探讨。总体上,要求学生掌握“编译原理”中的基本概念、理论和方法,在系统级上再认识程序和算法,提升计算机问题求解的水平,增强系统能力,提高计算机学科的基本素质。
通过本课程的学习,达到的教学目标如下:
(1)掌握本课程的重点内容:形式语言、有限自动机、词法分析、自顶向下和自底向上的语法分析、属性文法和语法制导翻译方法、符号表的组织与管理、目标程序运行时的存储组织、代码优化技术和目标代码生成技术等,领会编译原理在计算机学科中的重要地位。
(2)对文法、形式语言及自动机的概念的学习理解,掌握其基本理论、原理和实现技术,培养学生的计算思维能力,并利用其在软件工程领域的创新研究能力。
(3)掌握编译程序工作的基本过程及其各阶段的主要任务、编译程序的自动生成过程和构造工具,掌握词法分析器、语法语义分析器设计的原理、方法和技术,能利用程序设计语言和开发工具设计并实现一个简单的编译器,使学生深入理解程序编译和执行的过程的同时,提高系统软件开发思想和工程化的实践能力。
(4)综合应用所学知识去解决一些实际的应用问题。能够把所学的原理应用到具体的实践中去,如能利用编译技术解决一些软件工程和计算机领域的具体问题,培养学生发现、分析和解决问题的能力。
课程成绩=线上综合成绩*30%+闭卷笔试成绩*60%+实验成绩*10%
C语言程序设计、离散数学、数据结构
推荐教材:
王生原、董渊、张素琴,吕映芝等. 编译原理(第3版).北京:清华大学出版社,2016
参考书:
【1】 张莉,杨海燕等. 编译原理及其编译程序构造 . 北京:清华大学出版社,2011年
【2】 何炎祥等. 编译原理,北京:机械工业出版社, 2010
【3】 陈火旺、刘春林等. 程序设计语言编译原理(第3版).北京:国防工业出版社,2004
【4】 Kenneth C. Louden. Compiler Construction Principles and Practice. 北京:机械工业出版社,2005
【5】 Alfred V. Aho, Ravi Srthi, Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison Wesley, 2007. 北京:机械工业出版社影印,2011
【6】 陈意云,张昱. 编译原理(第2版). 北京:高等教育出版社,2008
【7】 饶文碧等,Hadoop核心技术与实战教程. 武汉:武汉大学出版社,2017
【8】 饶文碧,王云华,编译原理实验讲义,自编,2018