《编译原理》课件文档
- 格式:doc
- 大小:56.00 KB
- 文档页数:23
一.分析文档1. 目前项目所在领域的现状和发展趋势《编译原理》课程设置的目的在于让学生系统的了解并掌握程序设计语言编译程序的构造原理和技术。
它是国内外大学计算机专业学生的一门重要专业基础课,它的主要内容被列入国际ACM2000教程。
其原因如下:1.随着计算机技术的飞速发展,应用范围的迅速扩大。
新的程序设计语言和新的CPU将不断诞生,因此不仅需要掌握编译技术的人才,而且需要新的编译技术;2.编译技术不仅适用于处理程序设计语言,实际上,只要涉及符号语言处理,就需要采用编译的基本原理和技术;3.编译原理与技术在软件工程,语言转换等许多领域有着广泛的应用,对于软件开发也有一定的启发和指导作用,因此,一个优秀的程序员应该对编译原理与技术有相当程度的了解。
《编译原理》课程是重要的,但对于许多学生来说掌握它又显得有些困难。
利用网络多媒体技术,能把《编译原理》课程中的诸多原理,技术和方法,非常形象的演示出来。
新的程序设计语言和新的CPU将不断诞生,《编译原理》课程的内容要求不断更新,要做到这一点,靠传统出版教课书的途径是困难的,而用HTML+JAVA制成的课件,进行更新将是比较容易的。
目前,有一些高校使用的教材比较陈旧,把过时的技术作为重点进行讲授;有的高校甚至找不到合适的教员。
国外网站上,也没有发现合适的《编译原理》教学课件,一般来说,网站上有的仅是教员上课用的幻灯片。
2鉴于上述情况,《编译原理》网络版教程,将会产生明显的社会效益和经济效益。
2.本项目的目标和教学内容(1)本项目的目标是:建立《编译原理》网络课程, 学生使用它学习《编译原理》课程,能够掌握构造编译程序的原理,技术和工具,而且使学生对该领域产生浓厚的兴趣和求知欲。
为以后进一步从事软件工作打下良好的基础。
(2)教学内容:各章节基本内容如下:第一章:概述编译和解释,编译程序的组成,现状及展望。
第二章:语言的基本知识语言和文法的形式定义,分析树和二义性,形式语言概观第三章:词法分析词法分析器的手工构造,正规表达式,有限自动机,lex介绍第四章:语法分析自顶向下分析,预测递归下降分析,LL(1)分析自底向上分析,算符优先分析,LR(SLR,LR(1),LALR)分析,yacc介绍第五章:语法制导翻译语法制导定义,语法树的构造,S-属性定义及自底向上的计算,3L-属性定义, 自顶向下翻译, 自底向上计算继承属性,类型分析。
第六章:运行时刻环境的组织有关源语言中的一些问题的讨论,存储组织,运行时刻存储分配策略,对非局部名字的访问,参数传递。
第七章:中间代码生成中间语言,说明语句的处理,符号表的管理,赋值语句,布尔表达式和控制语句,回填,过程语句。
第八章:目标代码生成目标机器,运行存储管理,基本块和流图,下次引用信息,一个简单的代码生成器,基本块的DAG表示及用其生成目标代码。
附:一个小型的编译程序及讲解注:每章后附有习题3.本项目的实现方法和技术路线1)选材系统性,先进性,典型性。
主要参考如下教材:(1)杜淑敏等,编译程序设计原理,北京大学出版社,1998.10.(第二次印刷)(2)Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman,CompilersPrinciples,Techniques,and Tools,Addison-WesleyPublishing Company, 1986.(3)AndrewW.Appel Modern Compiler Implementationin C,1998.2)选用通用的网络开发工具,使得开发的课件能在通用的网络4系统上运行:(1)HTML 页面制作(2)JAVA 算法和基本原理的交互式演示(3)POWERPOINT 讲授内容(教师讲授用,学生观看)因此,网络版课程具有共享性和互操作性。
3) 《编译原理》网上课程希望在以下几方面突破传统课堂教学的局限:(1)教学内容不是书本搬家,而尽量体现知识的系统性。
在保证教学内容系统性、简洁性的同时,用多媒体手段提高教学内容的生动性和趣味性。
(2)充分利用计算机网络技术,对基础算法和原理提供交互式的演示。
在教学理论指导下设计教学进程,辅助学生自学、复习。
(3)建立丰富的教学资源库,满足教员和不同程度的需要。
4.使用编译原理课件的对象1)计算机软件专业的本科生。
2)希望学习《编译原理》的学生和工程技术人员。
3)教授《编译原理》课程的老师。
5二.设计文档6三.使用手册71.建立《编译原理》网络课程目标学生使用它学习《编译原理》课程,能够掌握构造编译程序的原理,技术和工具,而且使学生对该领域产生浓厚的兴趣和求知欲。
为以后进一步从事软件工作打下良好的基础。
2.教学内容(共8章)各章基本内容如下:第一章:概述编译和解释,编译程序的组成,现状及展望。
第二章:语言的基本知识语言和文法的形式定义,分析树和二义性,形式语言概观第三章:词法分析词法分析器的手工构造,正规表达式,有限自动机,lex介绍第四章:语法分析自顶向下分析,预测递归下降分析,LL(1)分析自底向上分析,算符优先分析,LR(SLR,LR(1),LALR)分析,yacc介绍第五章:语法制导翻译语法制导定义,语法树的构造,S-属性定义及自底向上的计算,L-属性定义, 自顶向下翻译, 自底向上计算继承属性,类型分析。
第六章:运行时刻环境的组织有关源语言中的一些问题的讨论,存储组织,运行时8刻存储分配策略,对非局部名字的访问,参数传递。
第七章:中间代码生成中间语言,说明语句的处理,符号表的管理,赋值语句,布尔表达式和控制语句,回填,过程语句。
第八章:目标代码生成目标机器,运行存储管理,基本块和流图,下次引用信息,一个简单的代码生成器,基本块的DAG表示及用其生成目标代码。
注:每章后附有习题。
附:一个小型的编译程序及讲解3.教学形式:(1)阅读正文;(2)使用演示加深理解基本算法和原理;(3)观看幻灯片,那是教师对正文的讲解和总结;(4)自己做练习,和参考答案对造。
4.运行环境硬件:pentium Ⅱ或相当的pc.软件:IE(Internet Explorer)5.05. 使用说明使用《编译原理》网络课件和访问网络站点一样,它有路线清析的准确的访问导航。
(1)对于用HTML制作的正文,通过章节导航,先用鼠标选定要读的章,此时鼠标箭头变成手形,点按鼠标,右9边出现相应章节,然后可类似的选取要读的节或小节,进入正文。
(2)正文按页面制作,用鼠标点按每页尾部的导航,可方便地进入上一页,下一页,进入首页。
(3)进入JAVA制作的演示有两个方法,其一:点按每章目录中列出的演示条目,即可进入相应的演示;其二:在正文中该演示处,嵌有演示导航,即(演示)。
用鼠标点按它,即可进入相应的演示。
(4)进入每个演示就进入一个窗口,每个窗口设置使用按钮,每个按钮被标识出使用功能,点按需要的操作按钮,即进入相应的操作步。
(5)播放用POWERPOINT制作的幻灯片,类似于正文的章节导航。
10四.测试报告1.测试环境硬件:pentium Ⅱ软件:IE(Internet Explorer)5.0 2.测试报告第二章:语言的基本知识演示1.最左推导和最右推导(无输入)最左推导最右推导2.最左推导和最右推导(有输入)最左推导最右推导3.if_then_else的两种推导第三章:词法分析演示1.一个词法分析器的演示单步演示自动演示2. 模拟DFA3. 将NFA转化成等价的DFA4. 将一有 转移的NFA转化成等价的DFA5. 正规表达式转化成有限自动机6. 确定的有限自动机的化简7. 根据正规表达式生成NFA,DFA,最简DFA生成NFA生成DFA生成最简DFA应用生生成最简DFA识别字符串第四章:语法分析演示1. 自顶向下与自底向上分析2. 消除左递归3. 预测分析器对表达式的分析过程4. 算符优先分析法的分析过程5. SLR分析器的分析过程6. LR(0)分析表的构造过程7. LR(1)分析表的构造过程8. LALR(1) 分析表的构造过程综合演示1.LL(1)分析表的自动生成以及对输入串的分析2. LR(0)分析表的自动生成以及对输入串的分析3. LR(1)分析表的自动生成以及对输入串的分析4. L ALR 分析表的自动生成以及对输入串的分析第五章:语法制导翻译演示1. 继承属性的传递2. 语法树的构造3. S-属性定义及自底向上的计算4. 具有综合属性和继承属性的简单翻译模式的应用5. 表达式9-5+2的分析树和依赖图第六章:运行时刻环境的组织演示2. 控制栈3. 栈式存储分配4. Display表5. 编译时刻符号表的组织(pascal)第七章:中间代码生成1. 计算说明语句中名字的类型与相对位置2. 处理嵌套过程中的说明语句3. 简单赋值语句的翻译4. 数组元素的翻译5. 用数值表示法翻译布尔表达式6. 控制流语句的翻译8. 使用回填翻译控制流语句第八章:目标代码生成1. 划分三地址代码成基本块2. 计算变量的下次引用信息3. 一个简单的代码生成器3.测试分析报告对«编译原理»教学课件每个演示,直至每个操作步都进行了测试,测试是认真的全面的。
测试过程中没有发现错误,说明«编译原理»教学课件设计合理,经过了严格的自我测试,采用了规范的软件工程开发方法,因此,«编译原理»教学课件的运行是正确的和稳定的。
五.项目总结报告1.功能学生使用它学习《编译原理》课程,能够掌握构造编译程序的原理,技术和工具,而且使学生对该领域产生浓厚的兴趣和求知欲。
为以后进一步从事软件工作打下良好的基础。
教学内容(共8章)各章基本内容如下:第一章:概述编译和解释,编译程序的组成,现状及展望。
第二章:语言的基本知识语言和文法的形式定义,分析树和二义性,形式语言概观第三章:词法分析词法分析器的手工构造,正规表达式,有限自动机,lex介绍第四章:语法分析自顶向下分析,预测递归下降分析,LL(1)分析自底向上分析,算符优先分析,LR(SLR,LR(1),LALR)分析,yacc介绍第五章:语法制导翻译语法制导定义,语法树的构造,S-属性定义及自底向上的计算,L-属性定义, 自顶向下翻译, 自底向上计算继承属性,类型分析。
第六章:运行时刻环境的组织有关源语言中的一些问题的讨论,存储组织,运行时刻存储分配策略,对非局部名字的访问,参数传递。
第七章:中间代码生成中间语言,说明语句的处理,符号表的管理,赋值语句,布尔表达式和控制语句,回填,过程语句。
第八章:目标代码生成目标机器,运行存储管理,基本块和流图,下次引用信息,一个简单的代码生成器,基本块的DAG表示及用其生成目标代码。