第一篇:2018年安徽师范大学《编译原理实践》课程教学大纲
《编译原理实践》课程教学大纲
课程编号:07114180 适用专业:计算机科学与技术系计算机应用专业(软件本科)
学时数:34(理论学时数:10 实验或讨论学时数:48)学分数:2 执笔者:周有顺 编写日期:2004年2月 执行时间:2003年以后入学的年级
一、课程的性质和目的
编译原理实践设计是计算机科学与技术专业学生的专业必修课。
系统软件是计算机系统的重要组成部分。本课程是在学习系统软件的组成、设计原理和实现方法的基础之上,设计并上机实现部分系统软件----编译程序。目的在于完成相关课程从理论到实践的推进,使学生真正掌握计算机信息处理的实质,提高其专业素质及驾驭各种系统软件和应用软件的能力。
二、课程教学内容
编译程序设计与实现的目的:
了解编译程序的组成及各部分的基本任务; 掌握编译程序各部分的设计原理和实现方法; 体会理论内容与具体实践之间的关系。
第一章 课堂教学内容要点
(1)编译过程概要:(4学时)
词法分析、语法分析、语义分析及中间代码生成、目标代码生成等各部分的具体实现算法;符号表管理、错误信息处理的具体实现方法;上述各部分之间的数据及信息的传递与交流。
(2)编译程序实现途径(6学时)
编译程序的书写语言与T型图;编译程序的自展技术;编译程序的构造工具。
第二章 实践内容概要(上机部分)(24学时)
(1)实验型语言源文法(略)。(2)编译程序的设计目标
①设计该语言的词法分析程序和语法分析及语义分析程序,词法分析程序和语法分析程序分别作为一遍编写,并生成二元式和中间代码四元式形式。
②在语法分析中,对各语句和布尔表达式的分析采用递归下降分析,对算数表达式的分析采用算符优先分析。
③程序中应包括符号表管理和简单的出错处理。词法分析出错处理包括非法字符和非法单词;语法分析出错处理包括简单的语法错误,即程序结构不符合语法规则的错误。
④将中间代码四元式生成8086/8088汇编语言的目标代码形式。(选做)(3)程序调试
用上述语言编写程序,求函数的值。(4)文档要求
①画出该语言文法的语法图。
②写出编译程序中所使用的主要数据结构(二元式表,四元式表和符号表)。③给出该语言的编译程序的各模块的结构图。
④调试上述程序,并分别给出无错误信息和有错误信息的调试结果,即二元式表和四元式表。
三、课程教学的基本要求
本课程是编译原理的后续课程,完成课程的实践部分。因此教学上应着重强调理论与实践的关系,理论内容如何付诸实践,如何利用理论知识去解决实际问题等,以达到学生实践能力的提高。
Project for Compiler System
四、本课程与其它课程的联系与分工
先修课程:汇编语言,操作系统,编译原理等
五、建议教材与教学参考书
[1]
蒋立源,《编译原理》,西北工业大学出版社,1997 [2]
吕映芝等,《编译原理》,清华大学出版社,1998 [3] 陈火旺等,《编译原理》,国防工业出版社,1997
第二篇:2018年安徽师范大学《数据库系统原理(B)》课程本科教学大纲
《数据库系统原理(B)》课程教学大纲
课程编号:07114130 适用专业:计算机科学与技术系计算机应用专业(软件本科)
学时数:68(理论学时数:60 实验或讨论学时数:16)学分数:4 执笔者:周有顺 编写日期:2004年2月 执行时间:2003年以后入学的年级
一、课程的性质和目的
掌握数据库的原理和方法,学习数据库的设计及使用。
二、课程教学内容
第一章 数据库系统概论(10学时)
了解什么是数据库,为什么要有数据库,以及数据库和文件的相同及不同之处。给出数据库的基本定义和数据库系统与其它学科的关系;了解什么是信息,信息的特点及表达方式,了解信息的符号表示数据,和数据的计算机内部表示。了解计算机处理数据的方式 批处理和连机方式;了解数据库的由来和发展,了解现实世界,信息世界,机器世界之间的关系,对实体与实体之间的联系有一定的认识;了解层次,网络和关系三种基本数据模型,掌握实体联系模型,了解面向对象模型;理解数据库的三级体系结构,理解内模式,概念模式,外模式及其相互之间的关系;了解数据库系统的硬软件环境和它的管理及使用者;了解DBMS的主要功能和组成部分,了解用户访问数据库的过程。
第二章 关系数据库(10学时)
理解什么是关系,关系模式,关系子模式,掌握熟练使用关系代数解决各种查询问题,掌握元组关系演算公式并能熟练的用元组关系演算表达各种查询,了解元组关系演算和关系代数之间的相互转换关系,掌握域关系演算公式并能熟练的用域关系演算表达各种查询,了解域关系演算和元组关系演算之间的相互转换关系,掌握使用QBE语言实现简单的数据库查询。
第三章 关系数据库实例和SQL语言(14学时)
了解SQL SERVER数据库系统的功能和作用,掌握熟练的用SQL语言实现复杂的数据库查询。
本章教师应演示安装SQL server数据库系统并建立一个SQL数据库。
第四章 查询优化(4学时)
了解查询优化的基本原理及方法,掌握对关系代数表达式依照优化算法进行优化。
本章教师应演示在SQL数据库系统下实现查询优化算法。
第五章 关系数据库设计理论(12学时)
理解数据库设计理论对关系模型的优化作用,理解函数依赖和函数依赖的逻辑蕴涵,理解侯选码,主码和外来码以及它们之间的关系,理解什么是1NF,2NF,3NF,BCNF,掌握对关系模式进行规范化,将其规范化为2NF,3NF,BCNF,了解什么是多值依赖和4NF。
第六章 概念模型、数据模型与数据库设计(8学时简介)
理解和掌握实体联系模型的概念和设计方法。了解E-R图、数据结构图、系、关系数据模型等概念,掌握E-R图到关系模型的转换方法。
了解数据库设计的原理和方法。理解数据库系统开发中的数据库设计与数据库应用程序开发的独立性和相互关系。
第七章 数据库安全与保护(8学时简介)Principles of Database Systems(B)了解数据库系统的安全性,掌握数据库系统的完整性控制的一般方法,了解数据库的并发控制的实现机制,理解和掌握事物处理与并发控制的一般方法,了解数据库的备份和恢复机制。
本章教师应演示建立一个SQL数据库安全性及完整性控制机制。
第八章 数据库管理系统分析及设计(2学时简介)
了解用户访问数据库的过程,了解数据库管理系统的需求,了解数据库管理系统的主要功能和组成部分。
第九章 分布式数据库和面向对象数据库(2学时简介)
了解分布式数据库和面向对象数据库的基本原理及使用方法。
三、课程教学的基本要求
本课程是计算机科学与技术系本科生的必修课。在教学方法上,采取课堂讲授、上机操作、课后自学等形式。
(一)课堂讲授
在教学过程中,教师自身要广泛地查阅资料,细致地备课,充分地组织教案,并且认真地分析学生的实际知识结构,使备课与学生的实际情况紧密结合,使教师本身做到有效地教,使学生做到有效的学。上课时,要适当提出一些问题,一是为活跃课堂气氛,提高课堂质量,集中学生的注意力;二是为了培养他们的分析问题和解决问题的能力,在广度和深度上拓宽学生的知识面;三是为了验证教学过程中出现的问题,了解本级学生的知识结构,作到在以后的教学过程中,有的放矢。
(二)实验与讨论
数据库原理是计算机科学与技术专业学生的专业基础课,实验以教师演示为主并提出问题讨论。本课程的学生实践部分由其后续课程《数据库原理实践》完成。在本课程中主要完成理论教学,教学中应采用启发式的教学方式来培养学生的能力,从调动学生自身学习的积极性、引导学生主动思考问题、强调知识的连贯性和连通性等方面入手,进而达到学生在完成相关内容学习的同时能够自我提高而成为合格人才。
(三)考试
采用闭卷的考试方式。
四、本课程与其它课程的联系与分工
先修课程:操作系统,计算机网络,编译原理,数据结构,数理逻辑以及程序设计语言等。
五、建议教材与教学参考书
[1]
萨师宣、王珊,《数据库系统概述》,高等教育出版社,1995 [2] 丁宝康编、施伯乐主审,《数据库实用教程》,清华大学出版社,2001 [3] C.J.Date,《An Introduction to Database System》,1982 [4] J.D.Ullman,《Principle of Database Systems》,1982
第三篇:《编译原理课程设计》教学大纲
《编译原理课程设计》教学大纲
课程名称: 课程编号: 适用专业: 总 学 分: 总 周 时: 主 撰 人: 撰写日期:
一、目的与任务
通过程序设计上机调试程序实现算法,学习编译程序调试技巧和设计编译程序的一般原则,加深对词法分析、语法分析、语义分析和中间代码生成等编译阶段及实用编译系统的认识,初步掌握编译程序构造的基本原理与技术, 从形式语言理论的角度, 进一步认识与理解程序设计语言。通过编译程序的编写和调试能力的训练,激发学生进一步思考问题,培养学生的学习兴趣和创新能力。并进一步培养学生的抽象思维能力,进一步巩固《编译原理》课程所学知识。
本次课程设计的时间为2周,目的是通过实际的题目如:词法分析、语法分析、代码优化等,使学生了解和掌握编译程序的工作原理,同时培养学生用相关的程序设计语言进行程序设计,实现编译的功能,从而提高学生的综合能力。
二、教学基本要求
1.设计和调试过程要规范化
需求分析:将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,(有些题目已经指定了数据存储的,按照指定的设计),设计或叙述解决此问题的算法,描述算法可以使用自然语言、伪代码、或函数的方式。
给出实现功能的一组或多组测试数据(测试文法),程序调试后,将按照此测试数据进行测试的结果列出来。
如果程序不能正常运行或运行过程中出现了不满足算法思想的情况,写出出现这一情况的原因或改进行的方法。
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
程序能够运行,要有基本的容错功能。尽量避免出现操作错误时出现死循环。2.课程设计实习报告的书写格式
编译原理 436105 软件工程 2W 2012.6
审 核 人:
① 设计题目
②运行环境(软、硬件环境)③算法设计的思想 ④算法设计分析 ⑤主要函数 ⑥源代码 ⑦运行结果分析 ⑧收获及体会 3.实施方式
本次课程设计分成9个题目,都有一定的工作量,涵盖本课程内容和实际应用相关的主要技术,学生可以自由组队选择其中一个实现。课程设计题目见“主要内容”。
根据老师给定的9个题目进行分析设计,本次课程设计采取分组的办法进行,3-4人为一组,要求每组学生在规定时间内独立完成。4.答辩:课题的论述、测试及问题回答
三、课程设计内容
1、词法分析器的构造:
人们理解一个程序,起码是在单词级别上来思考。同样,在编绎一个程序时,也是在单词级别上来分析和翻译源程序。词法分析是编绎的基础,执行词法分析的程序即为词法分析器,它的任务是对输入或给定的源程序,从左至右逐个字符进行扫描,产生一个个单词符号,把作为字符串的源程序改造成单词符号串的中间程序。设计目的与任务:
通过本课程设计教学所要求达到的目的是:对词法分析工作流程进行总体设计和详细设计,最终用C语言来设计一个简单词法分析器,实现对源程序的词法分析功能,对输入程序去除注释,并以二元式形式输出程序中所有单词。
2、正则表达式到NFA 在编译系统中,词法分析阶段是整个编译系统的基础。对于单词的识别,有限自动机FA是一种十分有效的工具。有限自动机由其映射f是否为单值而分为确定的有限自动机DFA和非确定的有限自动机NFA。在非确定的有限自动机NFA中,由于某些状态的转移需从若干个可能的后续状态中进行选择,故一个NFA对符号串的识别就必然是一个试探的过程。这种不确定性给识别过程带来的反复,无疑会影响到FA的工作效率。而DFA引擎在任意时刻必定处于某个确定的状态,它搜索是无需象NFA一样必须记录所有的可能路径(trace multiple possible routes through the NFA),这也是DFA运行效率高于NFA的原因。而已经证明DFA是NFA的一个特例,即对于每一个NFA M存在一个DFA M’’,使得L(M)=L(M’’)。
设计目的与任务
通过本课程设计教学所要求达到的目的是:充分理解和掌握NFA,DFA以及NFA确定化过程的相关概念和知识,编程实现对输入的任意正规式转换成NFA的形式输出。
3、NFA的确定化
有限自动机理论是描述词法规则的基本理论。一条词法规则表示一个正规表达式(又叫正规式),而一个正规式又可化为一个DFA(确定有穷自动机),这个有限自动机可用来识别词法规则所定义的所有单词符号。把程序设计语言的所有词法规则都构造出相应的有限自动机,就得到一个词法分析器。然后,再转换为计算机可识别的程序就能自动实现词法的分析和检查。在实际应用中,用NFA(不确定有穷自动机)识别词法存在不确定和状态的冗余,因而,就要将NFA(不确定有穷自动机)转换为DFA(确定有穷自动机),消除了不可到达和不确定。设计目的与任务
通过本课程设计教学所要求达到的目的是:掌握从NFA到DFA的转换,以及用子集法把NFA转换成DFA理论,编程实现将NFA(不确定有穷自动机)转换为DFA(确定有穷自动机)。
4、DFA的最小化
确定性有限自动机(DFA ,Deterministic Finite Automata)的最小化仍是有限自动机应用及实现方面的重要问题之一。DFA的最小化可以揭示状态之间的内在联系,便于其存储实现,便于建立用DFA描述的任务模型,一些理论问题也与最小化思想有关。DFA的最小化是指,构造一个与之等价且状态数最小的DFA,即等价最小DFA。许多文献给出了一个最小化算法,算法的思想是,构造状态集的一个划分,再将这个划分中的每个子集作为新的状态,从而得到等价最小DFA。
DFA的最小化可以揭示状态之间的内在联系,便于其存储实现,便于建立用DFA描述的任务模型,一些理论问题也与最小化思想有关。
5、语法分析之LL(1)文法
通过该课程设计了解了程序语言的自上而下的语法分析过程,提高了编程能力,能使我们了解编程语言更多的细节 设计目的与任务(1)读入文法(2)求出first(), follow()(3)判断是否为LL(1)文法
(4)若是,构造分析表;
(5)输入一个字符串看是否是文法的一个句子。
6、算符优先文法
一个文法,如果它的任一产生式的右边都不含有两个相继(并列)的非终结符,即不 含有如下形式的产生式的右部:
„QR„
则我们称该文法为算符文法。
假设文法中的任意两个终结符之间最多只有一个优先关系,则该文法称为算符优先文法。
该课程设计按照求,(P),(P)各两条规则,求出各非终结符的集。然后按照算符优先算法求出各终结符的算符优先关系,填写算符优先表,并将其输出。
7、LR(0)分析表的构造
LR分析技术是一种有效的自下而上分析技术,是一种规范归约,其中L表示从左到右扫描输入串,R表示构造一个最右推导的逆过程。这种方法可以适用于很大一类上下无关文法的语法分析。LR方法的基本思想是:在规范归约过程中,一方面记住已经移进和归约出的整个符号串,即记住“历史”;另一方面根据所用的产生式推测未来可能碰到的输入符号,即对未来进行“展望”。当一串貌似句柄的符号串呈现于分析栈的顶端时,我们希望能够根据所记载的“历史”和“展望”以及“现实”的输入符号等三方面的材料,来确定栈顶的符号传是否构成相对某一产生式的句柄。
LR分析器的核心部分是一张分析表。这张分析表包括两部分,一是“动作”(ACTION)表,另一是“状态转换”(GOTO)表。对于一个文法,如果能用一个每步顶多向前检查K个输入符号的LR分析器进行分析,则这个文法就称为LR(K)文法。本文研究的LR(0)文法即K=0时的文法。
设计目的与任务
本课程设计所设计目的与任务是:通过C语言程序实现LR(0)分析表的构造,熟练掌握LR(0)分析表的构造方法,即利用拓广文法和构造项目集规范族的方法。了解LR(0)分析器的工作原理,并能利用LR(0)分析表对输入串进行分析。
8、逆波兰表达式生成算法
虽然源程序可以直接翻译为目标语言代码,但许多编译程序采用了独立于机器的、复杂性介于源语言和机器翻译语言之间的中间语言:后缀式(逆波兰表达式)等。这样做的好处是:
(1)便于进行与机器无关的代码优化工作;(2)使编译程序改变目标机更容易;
(3)使编译程序的结构在逻辑上更为简单明确。以中间语言为界面,编译前端和后端的接口更清晰。设计目的与任务
将非后缀式用来表示的算术表达式转换为用逆波兰式来表示的算术表达式,并能运行查看结果。
9、表达式的中间代码生成
源程序可以直接翻译为目标语言代码,但是许多编译程序却采用了独立于机器的、复杂性介于源语言和机器语言之间的中间语言。这样我们可以做下面工作:
(1):便于进行与机器无关的代码优化工作;(2):使编译程序以改变目标机更容易;(3):使编译程序的结构在逻辑上更为简单明确;
而以中间语言为界面,编译前端和后端的接口更清晰,表达式可以用四个域分别称为OP、ORG1、ORG2及RESULT来表示。
四、时间安排
《编译原理课程设计》安排在第三学期进行,时间2周(17-18周)。
五、组织管理
1.由院、系指派经验丰富的专业教师担任指导教师。
2.课程设计实行指导教师负责制,由指导教师全面负责课程设计的指导与管理工作。
六、成绩考核与评定
学生课程设计结束后写出总结报告,对设计的内容和效果进行总结,按照学生在设计期间的表现,指导老师对每位学生写出评语和鉴定,系课程设计领导小组组织答辩,最后确定每位学生课程设计成绩,课程设计成绩分为优、良、中、及格和不及格五个等级。课程设计成绩为平时表现30%、设计报告50%、答辩20%。评分标准:
① 优秀:目的明确,态度端正,模范遵守学校的各项纪律。工作认真,积极 主动,吃苦耐劳,能出色的完成设计任务。撰写了高质量的总结报告。答辩准确流利。
② 良好:目的明确,态度端正,能遵守学校的各项纪律,工作比较积极主动。能较好地完成设计任务,成绩较突出,表现良好;撰写了质量比较高的实习报告。答辩较准确流利。
③ 及格:目的明确,态度基本端正,能遵守学校纪律,在督促下能开展工作 并完成一定的设计任务,无大的违纪违规现象;撰写了实习报告。通过了答辩。
④ 不及格:实习态度端正,不能遵守实习单位的纪律,不服从领导,自由散漫,工作消极被动,不能完成实习任务,实习期间有失职、旷工、打架、酗酒等大的过失。或无实习报告,没有通过答辩。
2.成绩评定
依据上述考核内容,最后采用优(>90分)、良(80~89分)、中(70~79分)及格(60~69分)、不及格(<60分)五级记分制评定学生课程设计成绩。
七、主要参考资料
教材:
《编译原理及实践》冯博琴等译,机械工业出版社 教学参考书
1、《程序设计语言与编译》龚天富、侯文永编,电子工业出版社。
2、《编译原理》吕映芝、张素琴、蒋维杜主编,清华大学出版社,1998年
3、《编译原理》胡伦骏、徐兰芳、刘建农编,电子工业出版社2002年
4、《编译原理》(第二版)蒋立源、康慕宁主编,西北工业大学出版社,2002年
5、《编译原理习题精选》陈意云、张昱著,中国科技大学出版社,2002年
6、《编译原理习题与解析》 伍春香著,清华大学出版社,2001年
7、《编译原理实验指导书》自编
第四篇:2018年安徽师范大学《微机原理》本科教学大纲
《微机原理》教学大纲
学时:51
学分:3 理论学时:42
实验:18 适用专业:计算机、软件
大纲执笔人:程桂花
大纲审定人:齐学梅
一、课程的性质与任务
本课程属于计算机专业的硬件基础课程,通过学习了解微机系统的基本结构和工作原理,建立微机硬件体系结构的概念掌握微机系统扩展必备的硬件基础知识和分析方法,培养学生计算机硬件知识和应用能力。
二、课程内容、基本要求
1、概述
主要讲述计算机基础知识,常用名词术语,微机工作原理。
2、16位和32位微处理器及CPU子系统
讲述8086CPU的内部结构及子系统、8086的工作模式、存储器读写、I/O读写操作及时序;80386CPU体系结构、Pentium、Itanium微处理器主要特点及先进技术。
3、半导体存储器和高速缓冲存储器
半导体存储器分类、SRAM与DRAM的工作原理、存储器与CPU的连接;高速缓冲存储器的组织及更新方法、高速缓冲控制器的工作原理。
4、微型计算机和外设的数据传送
接口的概述、三种传送方式的基本概念与工作原理、一般接口组成。
5、串并行通信和接口技术 串行通信的基本概念、8251的工作原理;并行通信的概念、8255的工作原理。
6、中断控制器8259A、DMA控制器、计数器/定时器(18学时)中断系统功能、中断优先权管理的方法、中断控制器8259的工作原理及编程;DMA控制器的工作原理及编程;计时器/定时期的工作及编程;多功能接口芯片的使用。
7、数模(D/A)转换与模数(A/D)转换接口(8学时)CPU与D/A的接口电路、CPU与A/D的接口电路。
三、学生成绩评定方法:
作业和小测验占总成绩的10%,实验占总成绩的20%,期末考试占总成绩的70%。
四.参考书目:《微型计算机技术及应用》,戴梅萼、史加权 编著
清华大学出版
《微型计算机系统原理及应用》 《计算机硬件技术基础》 《微型计算机接口技术》等
第五篇:编译原理课程-教学计划
编译原理教学大纲2001,9
周次课内学时课内安排(讲授内容)建议课外安排备注
12编译原理概述阅读PL/0程序文本
24介绍PL/0编译程序阅读PL/0程序文本
32词法分析程序自动构造阅读PL/0程序文本
(正规式,有穷自动机)
44(2)词法分析程序自动构造练习题
Lex(Flex)介绍,布置PP1实践题一PP1
52文法和语言练习题
64自顶向下语法分析练习题提交PP1LL(1)文法
72自底向上语法分析练习题
LR文法
84LR分析练习题
期中考试
92Yacc介绍,布置PP2实践题一PP2
104习题课
语法分析方法比较提交PP2 112语法制导翻译,布置PP3实践题一PP3
124语法制导翻译
运行时存储组织提交PP3 132运行时存储组织练习题144代码优化, 布置PP4实践题一PP4
152代码生成164实践题目总结答辩
习题课
附1 实践题目(从中选一)
实践题一 Deacf编译程序的设计和实现.实践题二Pl/0编译程序扩充,用Lex和 Yacc实现一个小解释器.实践题三 java实现的Mini-Triangle编译程序.(限少数同学选,在第四周作选题报告)附2 课程评分
1课堂小测验,作业抽查 10%期中考试20%
3实践题一 40% 实践题二20% 实践题三 50%
4期末考试 完成实践题一 30% 完成实践题二50% 完成实践题三 20%