编译系统在计算机科学与技术的发展历史中发挥了巨大作用,是计算机系统的核心支撑软件。《编译原理》课程一直是国内外大学计算机相关专业的重要课程。其主要内容贯穿程序语言、系统环境及其体系结构,能以相对独立的视角体现从软件到硬件,以及软硬件协同的整机概念,同时,其理论基础又涉及形式语言与自动机、数据结构与算法设计等计算机科学的许多重要方面,因此编译系统是联系计算机科学和计算机系统的典范。
《编译原理》课程是理论性很强、实践性也很强的课程,课程建设团队在有限的学时内,根据课程容量和学生特点,选择适当的知识为载体,不仅介绍典型问题求解方法和技术,更注重计算学科问题求解基本思路的探讨。总体上,要求学生掌握“编译原理”中的基本概念、理论和方法,在系统级上再认识程序和算法,提升计算机问题求解的水平,增强系统能力,提高计算机学科职业素质。
通过本课程的学习,达到的教学目标如下:
(1)掌握扎实的编译原理专业知识,包括:形式语言与自动机、词法分析、自顶向下和自底向上的语法分析、属性文法和语法制导翻译方法、符号表的组织与管理、目标程序运行时的存储组织、代码优化技术和目标代码生成技术等,并领会编译原理在计算机学科中的重要地位。
(2)掌握编译程序工作的基本结构及其各阶段的主要任务、编译程序的自动生成过程和构造工具,掌握词法分析器、语法语义分析器设计的原理、方法和技术,能利用程序设计语言和开发工具设计并实现一个简单的编译器。同时将视角从“程序级”提高到“系统级”,在提升系统软件开发实践能力的同时,培养以计算机系统全局角度正确认识问题、分析问题和解决问题的能力。
(3)在学习了编译程序构造的一般原理、基本设计方法和主要实现技术基础上,以国产开源编译器为案例(如华为毕昇编译器)了解主流编译器生态、技术架构和未来趋势,培养自主学习能力和精益求精的大国工匠精神。
(4)综合应用所学编译方法和技术解决一些计算机软件领域的具体问题,并激发学生科技报国的家国情怀和使命担当。
课程成绩=线上综合成绩*30%+闭卷笔试成绩*60%+实验成绩*10%
第1章 编译原理概论
3.编译技术的发展与应用
1.编译程序及其作用
2.编译程序的组成及各部分任务
第2章 文法与语言
5.文法和语言形式定义
6.推导和句型、语法树和文法的二义性
第2章课件(汇总)
4.养成规则意识
第2章作业
第3章 词法分析
7.词法分析概述及其形式化定义
8.正规式与FA的转换
9.正规文法与FA的转换
10.由DFA构造词法分析程序
11.词法分析程序的实现与应用
第3章课件(汇总)
12.词法分析实验分析(工匠精神)
第3章词法分析作业(适用于软件工程专业)
词法分析实验
第4章 自顶向下的语法分析方法(1)
13.确定的自顶向下语法分析的关键问题
14.非LL(1)文法的变换
第4章 自顶向下的语法分析方法(2)
第4章课件(汇总)
15.递归下降分析法
16.LL(1) 分析法
17.错误处理
第4章 自顶向下的语法分析法作业(适用于软件工程专业)
第5章 自底向上的优先分析法
18.自底向上语法分析的基本思路
19.句柄
20.算符优先分析方法
第5章课件(汇总)
自底向上语法分析基础和算符优先分析法作业
第6章 自底向上的LR分析法
27.LR分析的基本思路(分析问题、解决问题能力案例)
21.LR分析概述
22.核心概念
23.LR FSM的构造
24.LR(0)分析法
25.SLR(1)分析法
26.其它LR分析法
第6章课件(汇总)
LR分析法作业
第7章 语法制导的语义计算和中间代码生成(1)
28.符号表和属性文法
29.基于属性文法的语义计算
第7章 语法制导的语义计算和中间代码生成(2)
30.中间代码的形式
31.赋值语句的翻译
32.布尔表达式的翻译
33.转移语句的翻译
34.循环语句的翻译
第7章课件(汇总)
第6章 语法制导的语义计算和中间代码生成作业
语法语义分析程序设计与实现(实验)
35.递归下降分析程序演示
36.LL(1)分析程序演示
37.LR分析程序演示
38.实验指导讲义
语法分析实验作业
第8章 运行时存储组织
39.运行时存储组织概述
40.活动记录
41.过程调用
第9章 代码优化
45.代码优化技术思政概述
42.代码优化概述
43.基本块和局部优化技术
44.其它代码优化技术
代码优化课件(汇总)
第8章 代码优化作业
第10 章 目标代码生成
49.代码生成(思政:国产芯片)
46.目标代码生成的主要问题
47.待用信息和活跃信息
48.一个简单代码生成算法
目标代码生成(课件汇总)
第9章目标代码生成作业
习题课(1)
50.文法与语言习题解析
51. 词法分析习题解析
习题课(2)
52.自顶向下语法分析习题解析
53.自底向上语法分析习题解析
习题课(3)
54.语法制导翻译与中间代码生成习题解析
55.代码优化和目标代码生成习题解析
习题课(4)
复习与习题课(仅供人工智能和大数据专业参考)
复习与习题课(其它)
作业补交
第11章 国产编译器设计案例
56. 华为毕昇编译器
毕昇编译器应用实验
高级语言程序设计、离散数学、数据结构
推荐教材:
编译原理.王生原、董渊、张素琴,吕映芝等.北京:清华大学出版社,ISBN: 9787302381419,第3版
参考书:
【1】 Compiler Construction Principles and Practice,Kenneth C. Louden,北京:机械工业出版社,ISBN: 9787111108429
【2】 程序设计语言编译原理,陈火旺等,北京:国防工业出版社,ISBN:9787118022070,第3版
【3】 编译技术,张莉、史晓华、杨海燕、金茂忠,北京:高等教育出版社,ISBN:9787040463170,第1版
【4】 编译原理,陈意云 张昱,北京:高等教育出版社,ISBN:9787040404913,第3版