编译原理课程教学大纲
编译原理教学大纲
编译原理教学大纲一、引言编译原理是计算机科学中的重要学科之一,它研究程序语言的编写、编译和执行过程。
本教学大纲旨在帮助学生理解并掌握编译原理的基本概念、技术和应用。
通过系统学习编译原理,学生将能够设计和实现高效的编译器,提高程序开发和执行的效率。
二、教学目标1. 理解编译原理的基本概念和原理;2. 掌握常见的扫描和解析技术;3. 学会构建语法分析树和语法制导翻译;4. 理解编译器的优化和代码生成技术;5. 能够使用编译器生成工具进行程序开发。
三、教学内容1. 编译原理概述1.1 编译原理的定义和重要性1.2 编译器的基本结构和工作原理2. 正则表达式与有限自动机2.1 正则表达式的定义和应用2.2 有限自动机的定义和实现3. 词法分析3.1 词法分析的基本概念和任务3.2 正则表达式与有限自动机在词法分析中的应用3.3 词法分析器的设计和实现4. 上下文无关文法与语法分析4.1 上下文无关文法的定义和产生式表示4.2 语法分析的基本概念和任务4.3 自顶向下语法分析和递归下降分析法4.4 自底向上语法分析和LR分析法5. 语义分析5.1 语义分析的基本概念和任务5.2 抽象语法树的构建和遍历5.3 语义检查和类型推断5.4 中间代码生成6. 优化与代码生成6.1 编译器优化的基本原理和方法6.2 中间代码优化技术6.3 目标代码生成和优化7. 符号表管理7.1 符号表的定义和作用7.2 符号表的实现和管理7.3 作用域和命名空间的处理8. 实践项目8.1 实现简单的编译器前端8.2 使用编译器生成工具进行程序开发四、教学方法1. 理论讲授:通过教师讲解,向学生介绍编译原理的基本概念、原理和技术。
2. 示例演示:通过实例和案例分析,展示编译器的设计和实现过程。
3. 实践项目:引导学生参与编译器前端的实现和应用开发,提高实际操作能力。
4. 小组讨论:组织学生进行小组讨论,分享思考和解决问题的经验。
五、评价方式1. 平时作业:包括理论习题、实践代码和文档撰写等,占总成绩的40%。
《编译原理》课程教学大纲
《编译原理》课程教学大纲一、教学大纲说明(一)课程的地位、作用和任务编译原理》课程是信息与计算科学、信息安全专业的一门专业技术课。
通过本课程的学习,使学生掌握编译理论和方法方面的基本知识,具有设计、实现、分析和维护编译程序等方面的初步能力。
(二)课程教学的目的和要求通过本课程的学习,使学生掌握编译程序构造的基本原理、设计方法和实现技术,具有设计、实现、分析和维护编译程序等方面的基本技能,为今后从事应用软件和系统软件的开发打下一定的理论和实践基础。
掌握:编译原理的基本概念,自动机的理论,上下文文法、LL语法分析技术,LR语法分析技术,动作文法、属性文法理解:小型语言Micro的编译器,中间代码生成,目标代码的生成了解:运行时的存储空间(三)课程教学方法与手段采用理论与实例讨论相结合的教学方法,手段拟采用PowerPoint多媒体教学。
(四)课程与其它课程的联系本课程的前导课程是数据结构、离散数学、操作系统原理等,并与程序设计语言等课程相关联。
(五)教材与教学参考书教材:金成植编译,《程序构造原理和实现技术》,北京,高等教育出版社,2000年教学参考书:1、吕映芝等,《编译原理》,北京,清华大学出版社,1998年2、杜淑敏等,《编译程序设计原理》,北京,北京大学出版社,1990年3、杨宗源,《编译原理习题精选分析与解答》,北京,清华大学出版社,2003年二、课程的教学内容、重点和难点第一章编译程序概述内容:概述编译程序的功能结构、复杂性及其设计开发和测试维护等。
重点:编译程序和解释程序的区别、编译程序的功能分解和组织结构。
难点:编译程序和解释程序的区别。
第二章一个微小编译器内容:介绍小型语言Micro的编译器。
重点:单词的概念和词法分析、处理简单表达式的语义栈技术。
难点:处理简单表达式的语义栈技术。
第三章有限自动机与词法分析器内容:介绍正则表达式和有限自动机及词法分析器的构造。
重点:单词的内部表示、正则表达式、有限自动机、词法分析器的构造。
《编译原理》课程教学提纲
《编译原理》课程教学大纲一、课程的性质与目的本课程是软件工程专业必修的专业核心课。
本课程的教学目的,是使学生在学习程序设计基础及语言和数据结构的基础上,进一步理解程序及程序设计语言的本质,掌握程序词法分析和句法分析的基本原理和方法。
学会构造一个编译程序,用以将一种语言所编写的程序(如,用C语言编写的程序)等价变换为另一种语言所编写的程序(如,用汇编语言编写的程序),并能对变换过程中所生成的中间代码程序及变换所得的程序进行优化,以培养良好的程序设计优化思维,提高学生的编程能力,为学习有关专业课程和进行大型软件实践打下必要的基础。
二、课程内容的教学要求1. 编译原理及编译程序构造引论(1)开设编译原理课程的主要作用:让学生理解开设编译原理课程的意义和作用,编译原理课程在计算机专业课程体系中的地位,学习编译原理课程应采用的方法,编译原理课程知识体系结构,让学生初步认识学习编译原理课程的重要性和潜在的使用价值。
(2)编译程序及其构造过程概述:介绍编译程序的基本含义、作用和结构,简述编译程序构造的基本过程,以让学生形成编译程序构造的总体印象。
2. (程序设计)语言和语法描述(1)语言描述体系结构:了解语言的语法、语义和语用的基本含义及相互作用,掌握描述语言语法的基本方法和过程,使学生清楚语言语法描述应包括由字符构造单词的词法描述,及由单词构造句子的句法描述。
(2)语言和文法的基本概念:掌握语言与文法的相关基本概念,如,串、句子、句型、文法、产生式、推导与归约等,语言文法对语言语法描述的作用,文法的形式化描述方法和过程,Chomsky形式语言文法体系及其在语言语法描述中的应用、特别是正规文法及上下文无关文法在语言语法描述中的应用。
(3)从语言构造文法:了解常见语言句子构造模式,掌握从典型语言句子模式构造对应无 产生式文法的方法,使学生能够理解由语言构造文法的重要性。
(4)语法树、分析树与二义文法:掌握语法树、分析树及二义文法的基本概念,如,语法树、分析树、短语、句柄、二义文法,语法树在语言语法分析过程中的作用,语法树构造方法和过程,二义文法对语言文法的简化描述的作用。
《编译原理》课程教学大纲
《编译原理》课程教学大纲(Principles of Compiler)课程性质: 专业课适用专业: 计算机科学与技术先修课程:PASCAL语言程序设计或C语言程序设计、离散数学、数据结构后续课程:总学分:4学分(其中实验0.5)一、教学目的与要求1.教学目的编译原理是计算机科学与技术专业中的一门很重要的专业课程,它在系统软件中占有十分重要的地位,是计算机科学与技术专业学生的一门主修课。
通过本课程的学习,使学生掌握编译理论基础,包括词法分析、语法分析、中间代码生成、代码优化和目标代码生成。
理解编译的实现方法,了解自动机语言的形式化定义、编译技术的各种概念以及具体实现过程的方法。
从形式语言理论角度讨论词法分析和语法分析技术,为学生从事系统软件开发打下良好的基础。
2.教学要求编译原理是一门重要的专业选修课程,本课程将以课堂讲授为主,讲授编译系统的一般构造原理、基本实现技术和一些自动构造工具,布置一定量的作业,配合相应的实验,帮助学生理解有关编译的基本概念,甚至更深入地理解编程语言。
从而使学生的编程能力得到真正的锻炼与提高。
二、课时安排三、教学内容1.引论(4学时)(1)教学的基本要求了解:编译程序与高级程序设计语言的关系;编译和解释的概念;编译程序的几个阶段所完成的任务及编写编译程序的主要方法理解:编译理论和实践相结合的重要性掌握:编译的各个阶段及其主要任务(2)教学内容①程序设计语言与编译②编译程序概述③编译程序的生成④编译程序的构造2.编译基础知识(4学时)(1)教学的基本要求了解:文法的分类;闭包、正闭包、文法、语言、推导、归约、语法树、二义文法的概念,无ε产生式的文法及文法的简化理解:文法与语言的关系掌握:文法与语言的形式化定义以及它们之间的关系,二义文法,短语、简单短语的概念(2)教学内容①字母表、符号表、闭包②文法与语言的关系③文法构造与文法简化④语法树、短语、简单短语、二义文法3.词法分析(6学时)(1)教学的基本要求了解:正规文法、正规集、正规式的概念;理解:词法分析扫描器的设计。
编译原理教学大纲
编译原理教学大纲一、课程介绍本课程主要介绍编译原理的相关概念、理论和实践技术,旨在培养学生对编译原理的理解和应用能力。
通过本课程的学习,学生将了解到编译器的工作原理、设计流程和实现方法,掌握常见编程语言的词法分析、语法分析、语义分析和代码生成等基本技术。
二、教学目标1. 熟悉编译原理的基本概念和基础知识;2. 掌握编译器的各个模块的设计和实现方法;3. 能够使用现有编译器工具进行编译器开发和优化;4. 培养学生的编程能力、分析问题和解决问题的能力。
三、教学大纲1. 编译原理基础1.1 编译器的作用和概念- 编译过程及其阶段- 编译器的核心功能1.2 语言文法和自动机理论- 正则文法和有限自动机- 上下文无关文法和下推自动机1.3 词法分析- 正则表达式和有限自动机实现词法分析器 - 关键字、运算符、标识符、字面量的识别 2. 语法和语义分析2.1 自顶向下语法分析- LL(1)文法及其分析方法- 预测分析表和递归下降分析2.2 自底向上语法分析- LR(0)文法及其分析方法- SLR(1)文法和LR(1)文法分析2.3 语义分析与语法制导翻译- 语义动作和属性文法- 语法制导翻译的实现方法3. 中间代码生成与优化3.1 中间代码的表示和生成- 三地址码和虚拟机- 递归下降翻译的中间代码生成3.2 基本块和流图- 基本块的概念和划分- 控制流的分析和优化3.3 数据流分析与优化- 活性变量分析- 常量传播和复写传播优化4. 目标代码生成和优化4.1 目标代码生成的基本原理- 寄存器分配和指令选择- 代码布局和指令调度4.2 目标代码优化- 数据流分析在目标代码优化中的应用- 循环优化和内存优化四、教学方法本课程采用理论课与实践相结合的教学方法。
理论课重点讲解编译原理的基本概念和原理,实践课通过编写实际编译器项目,培养学生的编程和问题解决能力。
五、考核方式1. 平时成绩占比:40%包括课堂参与、作业完成情况和实验报告等。
《编译原理》教学大纲
《编译原理》教学大纲一、课程概述编译原理是计算机科学与技术专业的一门重要课程,也是软件工程领域的基础课程之一、本课程通过对编译器的原理和实现技术的学习,使学生掌握编译器的设计和实现方法,培养学生独立解决实际问题的能力。
二、教学目标1.理解编译器的基本原理和工作流程;2.掌握常见编译器的构建方法和技术;3.能够设计和实现简单的编译器;4.培养分析和解决实际问题的能力。
三、教学内容和教学进度1.第一章:引论1.1编译器的定义和分类1.2编译器的基本工作流程2.第二章:词法分析2.1编译器的基本结构2.2词法单元的定义和识别方法2.3正则表达式和有限自动机3.第三章:语法分析3.1语法分析的基本概念3.2语法规则的定义和表示方法3.3自顶向下的语法分析方法3.4自底向上的语法分析方法4.第四章:语义分析4.1语义分析的基本概念4.2属性文法和语法制导翻译4.3语义动作和符号表管理5.第五章:中间代码生成5.1中间代码的定义和表示方法5.2基本块和控制流图5.3三地址码的生成方法6.第六章:优化6.1优化的基本概念和原则6.2常见的优化技术和方法6.3编译器的优化策略7.第七章:目标代码生成7.1目标代码生成的基本原理7.2目标代码的表示方法和存储管理7.3基本块的划分和目标代码生成算法8.第八章:附加主题8.1解释器和编译器的比较8.2面向对象语言的编译8.3并行编译和动态编译四、教学方法1.理论教学与实践相结合,注重教学案例的分析和实践;2.引导学生主动探索,注重培养学生的自主学习能力;3.激发学生的兴趣,鼓励学生提问和讨论。
五、考核方式1.平时成绩:包括课堂测验、作业和实验报告等;2.期末考试:闭卷笔试,主要考查学生对编译原理的理论知识和实践能力的掌握程度。
六、参考教材1.《编译原理与技术》(第2版),龙书,机械工业出版社,2024年2.《现代编译原理-C语言描述》(第2版),谢路云,电子工业出版社,2024年七、参考资源1. 实验环境:Dev-C++、gcc、llvm等2.相关网站:编译原理教学网站、编译器开源项目等八、教学团队本课程由计算机科学与技术学院的相关教师负责教学,具体安排详见教务处发布的教学计划。
《编译原理》课程教学大纲
《编译原理》课程教学大纲一、课程基本信息注:1.课程类别:选填“通识核心课/通识拓展课/通修课/学科基础课/专业主干课/专业选修课/专业实践/ 素质拓展”2.课程性质:选填“选修/必修”3.授课语言:选填“中文/双语/全英文或其他语种”二、课程目标2 .学生学习预期成果:描述学生在学完本节内容后应获得的知识、能力或素养水平(下同).教学方式:包括讲授、讨论、案例、演示等,但不限于所列,根据课程实际需要列举实践(实验或实习)教学I2.实验类型:选填”验证性/综合性/设计性”;实习类型:选填“认识实习/生产实习/毕业实习”五、课程评价(一)考核内容、考核方式与课程目标对应关系注:1.课程目标在考核方式及占比:主要根据课程目标自行设计和制定多元化考核方式,表中所列仅为参考(红色数据可删除)。
但所列考核方式必须覆盖全体学生,可根据当学期具体教学情况酌情调整。
2.各考核方式占总成绩权重:根据课程实际情况对各考核方式占总成绩的权重予以赋值。
(二)考核方式评分标准1.课程作业评分标准2.注:考核方式和课程目标在考核方式中占比应与“(一)考核内容、考核方式与课程目标对应关系” 一致。
所列考核环节,除了笔试类均须依次给出评分标准,格式同上。
笔试类课程考核评分标准可以在本课程大纲里进行说明,也可以通过提交“试卷分析表”予以说明。
五、参考书目及学习资料1.[美]安佩尔,现代编译原理:c语言描述,人民邮电出版社,2006.劳顿著,冯博琴等译,编译原理及实践,机械工业出版社,20042.[美]Kenneth C. Louden,编译原理与实践,机械工业出版社,2002注:1 .支撑毕业要求指标点:选填项。
需要进行专业认证,有毕业要求指标点可参照的课程必填,无明确毕业要求指标点可参照的可不填。
三、理论教学内容类、NFA 到DFA 的转.掌握状态转换. Lex 工具的使用4 .理解单词符号 的识别:超前搜索 5.掌握正那么表达 式与正那么定义6 .掌握确定有限 自动机(DFA)7 .掌握非确定有 限自动机(NFA) 8.掌握正那么文法 与有限自动机的 等价性9 .掌握正那么式与 有限自动机的等 价性 10 .掌握确定有 限自动机的化简 11 . 了解 Lex 工 具的使用方法子程序 换、识别DFA图及实现第四章语法分析-自上而下分析1.属性文法第六章 语义分 析、语 法制导 翻译及 中间代 码生成 2 .翻译模式.语义处理 3 .语法制导翻译.中间代码 4 .简单赋值语句的翻译.数组的翻译5 .布尔表达式和控制结构的翻译1 . 了解基于属性文法的处理方法.理解属性的依 赖图和属性计算 方法2 . 了解S-属性文法的自下而上计 算. 了解L.属性文 法和自顶向下翻 译3 .理解自顶向下翻译及常见语言的翻译及中间代 码表示. 了解递归下降 翻译器的设计理 解符号栈的使用 与语法树的表示4 .理解后缀式、图表示法、三地址 代码的中间代码 表示方法.掌握四元式的 表示方法5 .理解说明语句的翻译方法.理解赋值语 句的翻译6 .理解简单算 术表达式及赋值 语句.理解数组元 素的引用7 .掌握控制结讲授、 讨论、 案例、习题课程目标 1, 2素养:科学素质构中的布尔式翻译14.理解简单控制语句的翻译注:1.思政融入点:至少写3条,简述该课程教学中将思政教育内容与专业教育内容有机融合的知识点(下同)。
《编译原理》课程教学大纲--供四年制计算机科学与技术(医药软件开发)专业使用
《编译原理》教学大纲(供四年制计算机科学与技术(医药软件开发)专业使用)____________________________________________________________________一、前言本课程是计算机专业的重要专业课之一,主要介绍程序设计语言编译构造的基本原理和基本实现方法。
本课程主要讲授形式语言、有限自动机、自上而下和自下而上的语法分析、LR分析方法、属性文法和语法制导翻译、语义分析的蹭代码产生、存储器的动态分配与管理、符号表的组织与管理、优化问题、代码生成等内容。
本课程学生应掌握以下基本概念和原理,语言和文法、正规式、有限状态自动机、递归下降分析、算符优先分析、SLR 文法、代码生成、代码优化。
本课程的重点是突出基本概念、基本原理及算法,通过课堂教学与实践环节的训练,使学生掌握编译实现的基本方法和技术。
本课程的前导课程是计算机组成原理、数据结构、汇编语言程序设计、微机原理、操作系统原理等,并与程序设计语言等课程相关联。
本课程是考试课。
采用综合考核的考试方法,即在课程结束后一次性闭卷考试为主,并结合课堂提问、课后作业、上机作业等方面的考查,综合评定成绩。
本课程教学时数为:计算机科学与技术专业72学时,其中理论学时48,上机24学时。
教学采用课堂讲授法。
二、教学目的要求和内容第一章引论【目的要求】掌握编译的基本概念、编译过程概述、编译程序的结构了解编译程序与程序设计环境,编译程序的构造【教学内容】编译程序工作的基本过程及其各阶段的基本任务,编译程序总体框架。
【教学方法】课堂讲授第二章高级语言及其语法描述【目的要求】掌握程序语言定义、初等数据类型、数据结构熟悉高级高级语言的一般特性、程序结构、语句与控制结构掌握上下文无关文法,语法分析树与二义性。
【教学内容】上下文无关文法,程序语言定义参数传递。
【教学方法】课堂讲授第三章词法分析【目的要求】掌握词法分析器任务掌握词法分析器设计掌握正规表达式与有限自动机熟悉词法分析器自动生成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编译原理课程教学大纲一、课程简介编译原理是计算机及相关专业的重要专业课程,主要介绍程序设计语言编译器构造的基本原理和基本实现方法。
由于这门课程相对抽象且内容复杂,是较难学的一门课程。
编译系统是计算机系统中最重要的系统软件之一,它的基本作用是把高级语言等价地翻译成机器指令形式,从而能够使高级语言写成的程序顺利运行。
因此编译系统是使高级程序设计语言具有生命力的有力保证,对编译系统的理论基础、构造方法、实现技术的研究是计算机科学研究的基本内容。
设置该课程的目的是为了让学生系统地了解并掌握编译程序的构造原理,掌握符号语言的形式化处理的一般方法和步骤,熟悉编译辅助工具如LEX、YACC等。
二、课程目标(一)课程具体目标本课程是软件工程专业的一门重要的专业平台必修课,在该专业人才培养方案和课程体系中具有重要地位,对培养毕业生的专业能力和综合素质具有重要意义。
课程的具体目标如下:1. 掌握软件工程学科的专业核心知识,包括编译器构造的基本原理和基本实现方法,并能够用于解决计算机领域的复杂工程问题。
2. 能够基于软件工程的相关原理和方法,对软件工程复杂工程问题涉及的软件、模块、系统等诸多因素开展技术研究。
3. 能够结合软件工程技术相关问题背景和科学原理,评价平台环境、技术工具和有效资源在问题求解中的局限性。
4. 能够根据软件工程复杂工程问题的设计需要,开发适用工具对工程中的设计进行检验和评价。
(二)课程目标与专业毕业要求的关系表1 本课程对专业毕业要求及其指标点的支撑(三)课程对解决复杂工程问题能力的培养这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的必修课程。
在课程理论知识讲授环节,注重培养学生对高级语言编译原理和编译技术的深入理解,使学生掌握解决复杂工程问题所需的基本理论和工程原理,并通过适当的课后作业锻炼和检验学生解决复杂工程问题的能力。
在实验教学环节,以培养学生解决复杂工程问题的能力为目标,围绕课程目标安排实验项目,设计实验内容,明确实验要求,指导实验实施,严格实验成果考核。
在课程考核环节,根据课程目标选择合适的考核方式,考题设置应完全覆盖课程目标,考题设计应充分考虑学生解决复杂工程问题所需知识和能力,考题的难度和深度应能够体现复杂工程问题的特征。
总之,本课程的教学通过在理论讲授、课后作业、课内实验、课程考核等环节充分贯彻培养学生解决复杂工程问题能力的理念和要求,实现本课程支撑课程目标的达成。
三、教学内容及基本要求(一)理论教学第1单元编译程序概论(2学时)1.教学内容(1)编译程序的概念及结构什么是编译程序;编译过程概述;编译程序的结构;编译阶段的组合。
(2)解释程序、软件工具、程序设计语言范型解释程序;处理源程序的软件工具;程序设计语言范型。
2.基本要求介绍编译程序在计算机科学中的地位和作用;介绍编译技术的发展历史,讲解编译程序、解释程序的基本概念,概述编译过程;介绍编译程序的逻辑结构和编译程序的组织形式。
要求理解编译程序、解释程序、遍的基本概念;掌握编译过程各阶段的任务和编译程序逻辑结构及其各部分的基本功能。
3.支撑的课程目标通过本单元各知识点的讲授和学习,可以支撑:课程目标1:掌握软件工程学科的专业核心知识,包括编译器构造的基本原理和基本实现方法,并能够用于解决计算机领域的复杂工程问题。
使学生了解编译原理的基本概念和常用术语、掌握编译过程各阶段的任务和编译程序逻辑结构及其各部分的基本功能,具备解决计算机软件系统的核心问题、识别和判断计算机软件系统所涉及的关键环节和参数、构建模型并进行分析和解释,得到合理有效的结论。
本单元教学通过“互动、开放”的课堂形式,采用探究式学习、问题导入的教学方法,激发学生的学习兴趣。
通过课堂讨论、课后作业及实验,培养学生掌握数据结构基础知识,具备解决计算机软件系统的核心问题、识别和判断关键环节和参数、构建模型并进行分析和解释,得到合理有效的结论等能力,达到课程目标的要求。
第2单元文法与语言(4学时)1.教学内容(1)文法的直观概念、符号和符号串;(2)文法与语言的形式定义;(3)文法的分类;(4)上下文无关文法及其语法树;(5)句型的分析、有关文法实用的一些说明:句型的分析;自上而下的分析方法;自下而上的分析方法;句型分析的有关问题;有关文法的实用限制;上下文无关文法中的规则。
2.基本要求文法与语言是编译原理课程的理论基础,要求理解文法、语言、规范推导、规范归约和短语、简单短语、句柄的基本概念;掌握语言的求解方法、文法的二义性的判断方法及句型的分析方法。
3.支撑的课程目标通过本单元各知识点的讲授和学习,可以支撑:课程目标1:掌握软件工程学科的专业核心知识,包括编译器构造的基本原理和基本实现方法,并能够用于解决计算机领域的复杂工程问题。
课程目标2:能够基于软件工程的相关原理和方法,对软件工程复杂工程问题涉及的软件、模块、系统等诸多因素开展技术研究。
使学生了解文法与语言是编译原理课程的理论基础,理解文法、语言、规范推导、规范归约和短语、简单短语、句柄的基本概念;掌握语言的求解方法、文法的二义性的判断方法及句型的分析方法,具备解决计算机软件系统的核心问题、识别和判断计算机软件系统所涉及的关键环节和参数、构建模型并进行分析和解释,得到合理有效的结论。
本单元教学通过“互动、开放”的课堂形式,采用探究式学习、问题导入的教学方法,激发学生的学习兴趣。
通过课堂讨论、课后作业及实验,培养学生掌握数据结构基础知识,具备解决计算机软件系统的核心问题、识别和判断关键环节和参数、构建模型并进行分析和解释,得到合理有效的结论等能力,达到课程目标的要求。
第3单元词法分析(6学时)1.教学内容(1)词法分析程序的设计:词法分析程序与语法分析程序的接口方式;词法分析程序的输出;将词法分析工作分离的考虑。
(2)单词的描述工具:正规文法;正规式;正规文法和正规式的等价性。
(3)有穷自动机:确定的有穷自动机(DFA);不确定的有穷自动机(NFA);NFA转换为等价的DFA;确定有穷自动机的化简。
(4)正规式和有穷自动机的等价性(5)正规文法和有穷自动机的等价性(6)词法分析程序的自动构造工具2.基本要求介绍编译程序的第一个阶段-词法分析的设计原理和设计方法,要求掌握正规文法、状态转换图、DFA、NFA、正规式和正规集的基本概念和词法分析程序的设计与编写。
3.支撑的课程目标通过本单元各知识点的讲授和学习,可以支撑:课程目标1:掌握软件工程学科的专业核心知识,包括编译器构造的基本原理和基本实现方法,并能够用于解决计算机领域的复杂工程问题。
课程目标2:能够基于软件工程的相关原理和方法,对软件工程复杂工程问题涉及的软件、模块、系统等诸多因素开展技术研究。
课程目标3:能够结合软件工程技术相关问题背景和科学原理,评价平台环境、技术工具和有效资源在问题求解中的局限性。
课程目标4:能够根据软件工程复杂工程问题的设计需要,开发适用工具对工程中的设计进行检验和评价。
使学生了解词法分析的设计原理和设计方法,掌握正规文法、状态转换图、DFA、NFA、正规式和正规集的基本概念和词法分析程序的设计与编写方法,具备解决计算机软件系统的核心问题、识别和判断计算机软件系统所涉及的关键环节和参数、构建模型并进行分析和解释,得到合理有效的结论。
本单元教学通过“互动、开放”的课堂形式,采用探究式学习、问题导入的教学方法,激发学生的学习兴趣。
通过课堂讨论、课后作业及实验,培养学生掌握数据结构基础知识,具备解决计算机软件系统的核心问题、识别和判断关键环节和参数、构建模型并进行分析和解释,得到合理有效的结论等能力,达到课程目标的要求。
第4单元自顶向下语法分析方法(6学时)1.教学内容(1)确定的自顶向下分析思想;(2)LL(1)文法的判断;(3)某些非LL(1)文法到LL(1)文法的等价变换;(4)不确定的自顶向下分析思想;(5)确定的自顶向下分析思想:递归子程序法;预测分析方法。
2.基本要求介绍编译程序的第二个阶段-语法分析的设计方法和实现原理,包括自上而下分析的无回溯的递归下降分析、LL(1)分析法。
要求理解递归下降分析、LL(1)文法的基本概念;掌握无回溯的递归下降分析的设计和实现、LL(1)分析表的构造与分析方法。
3.支撑的课程目标通过本单元各知识点的讲授和学习,可以支撑:课程目标1:掌握软件工程学科的专业核心知识,包括编译器构造的基本原理和基本实现方法,并能够用于解决计算机领域的复杂工程问题。
课程目标2:能够基于软件工程的相关原理和方法,对软件工程复杂工程问题涉及的软件、模块、系统等诸多因素开展技术研究。
课程目标3:能够结合软件工程技术相关问题背景和科学原理,评价平台环境、技术工具和有效资源在问题求解中的局限性。
课程目标4:能够根据软件工程复杂工程问题的设计需要,开发适用工具对工程中的设计进行检验和评价。
使学生了解语法分析的设计方法和实现原理,包括自上而下分析的无回溯的递归下降分析、LL(1)分析法;理解递归下降分析、LL(1)文法的基本概念;掌握无回溯的递归下降分析的设计和实现、LL(1)分析表的构造与分析方法,具备解决计算机软件系统的核心问题、识别和判断计算机软件系统所涉及的关键环节和参数、构建模型并进行分析和解释,得到合理有效的结论。
本单元教学通过“互动、开放”的课堂形式,采用探究式学习、问题导入的教学方法,激发学生的学习兴趣。
通过课堂讨论、课后作业及实验,培养学生掌握数据结构基础知识,具备解决计算机软件系统的核心问题、识别和判断关键环节和参数、构建模型并进行分析和解释,得到合理有效的结论等能力,达到课程目标的要求。
第5单元自底向上优先分析法(4学时)1.教学内容(1)自底向上优先分析法自底向上优先分析法概述;简单优先分析法;优先关系;简单优先文法的定义;简单优先分析法的操作步骤。
(2)算符优先分析法直观算符优先分析法;算符优先文法的定义;算符优先关系表的构造;算符优先分析算法;优先函数;算符优先分析法的局限性。
2.基本要求掌握算符优先分析法的关系表的构造以及分析过程,了解简单优先分析法。
3.支撑的课程目标通过本单元各知识点的讲授和学习,可以支撑:课程目标1:掌握软件工程学科的专业核心知识,包括编译器构造的基本原理和基本实现方法,并能够用于解决计算机领域的复杂工程问题。
课程目标2:能够基于软件工程的相关原理和方法,对软件工程复杂工程问题涉及的软件、模块、系统等诸多因素开展技术研究。
课程目标3:能够结合软件工程技术相关问题背景和科学原理,评价平台环境、技术工具和有效资源在问题求解中的局限性。
课程目标4:能够根据软件工程复杂工程问题的设计需要,开发适用工具对工程中的设计进行检验和评价。