编译原理(Compiling Technique)(编号:071241)课程内容:本课程介绍解编译程序的基本结构、编译技术的一般理论和常用的有效方法与技术。其主要内容包括:文法和形式语言、自动机理论、词法分析、语法分析、语义分析、中间语言、代码生成、优化、存储组织与分配、程序的查错与处理等。在分析方法中,主要了解LL(K)方法、运算符优先数法、状态矩阵法、递归子程序法和LR(K)方法等。
预修课程:程序设计数据结构
一、课程的性质和目的
《编译原理》是计算机科学与技术专业的一门重要专业课。其中所涉及的编译程序构造的基本原理、实现技术以及抽象问题和解决问题的方法,不仅适用于编译程序的设计,也广泛应用于各种系统软件、应用软件的开发。学生通过该课程学习,能提高抽象思维能力,应用所学方法能提高所开发各种软件的档次,提高学生分析问题和解决问题的能力。
二、课程教学内容
第一章 概论
要求熟练掌握:1、程序设计语言及编译程序;2、编译过程和编译程序结构;3、编译程序的实现途径
第二章 文法和形式语言
熟练掌握和理解:1、符号和符号串;2、文法和语言;3、语法树和二义性;4、文法的BNF表示法和语法图;5、文法的实用限制
一般了解和理解:文法和语言的分类;正则表达式与正则集;
第三章 有限自动机
熟练掌握和理解:状态转换图;确定有限自动机;非确定有限自动机及其确定化;自动机的化简;
一般了解和理解:正则表达式、正则文法与有限自动机的相互转换
第四章 符号表
熟练掌握和理解:符号表的地位及作用;单词的属性及符号表的内容;符号表的组织;符号表的管理;
第五章 词法分析
熟练掌握和理解:源程序的输入及预处理;单词的表示和词法分析程序的实现;
一般了解:词法分析程序的自动生成
第六章 语法分析(1)
熟练掌握和了解:常用终结符号集;语法分析方法概述;递归子程序法;LL(1)分析方法;
一般理解:算符优先分析法
第七章 语法分析(2)
熟练掌握和了解:LR分析方法概述;活前缀与可归前缀;LR(0)分析法;SLR(1)分析法;LR(1)分析法;LALR(1)分析法
第八章 常用中间语言
熟练掌握:逆波兰表示;四元式;三元式;树表示;
第九章 语法制导翻译与中间代码生成
熟练掌握:语法制导翻译概述;简单算术表达式和赋值语句的翻译;布尔表达式的翻译;控制语句的翻译;
一般理解和掌握:过程调用语句的翻译;简单说明语句的翻译;
第十章 运行时的存储组织与分配
熟练掌握:存储组织概述;静态存储湖分配;
一般理解:栈式存储分配;堆分配;参数传递;
第十一章 代码优化
熟练掌握:优化技术概述;局部优化;控制流分析和循环优化;
一般理解:数据流分析和全局优化简介
第十二章 目标代码生成
一般理解:一个计算机模型;一个简单的代码生成程序;
第十三章 错误的诊察和处理
熟练掌握:错误的诊察和处理概述;词法分析阶段的查错处理;语法分析阶段的查错处理;语义错误的处理;
三、课程教学的基本要求
本课的教学环节包括课堂讲授、学生自学、习题讨论、课程设计、答疑、期末考试。通过上述教学步骤,要求学生掌握和了解编译系统的构造、开发技术、抽象问题和解决问题的方法,同时通过课程设计,自行研制开发出一个简单的编译程序,加深对各种抽象概念、算法及相应技术的理解和掌握。本课程课堂讲授70学时、实验30学时,建议实验为40学时。考核方式为闭卷考试。
四、建议教材与教学参考书
[1] 王力红、霍林. 编译技术. 重庆大学出版社,2001年9月
[2] 霍 林. 编译技术课程设计与上机指导. 重庆大学出版社,2001年9月
操作系统Operating System(编号:111151)课程内容:本课程主要介绍操作系统的基本概念、功能、分类以及发展历史等,讨论操作系统界面和简单的使用操作方法;介绍进程与线程管理的有关概念和技术;介绍处理机管理和存储管理;讲述文件系统和设备管理技术。预修课程:计算机应用基础