编译原理第四讲
- 格式:ppt
- 大小:31.00 KB
- 文档页数:8
《编译原理》理论教学大纲(2001年制订,2004年修订)课程编号:英文名:Compiling Principle课程类别:专业主干课前置课:程序设计基础、数据结构、汇编语言、离散数学后置课:无学分:4学分课时:72课时(其中理论教学54课时,实验教学18课时)主讲教师:苏杭丽等选定教材:吕映之,张素琴,蒋维杜.编译原理.北京:清华大学出版社, 2001年.课程概述:本课程是计算机科学与技术专业的专业主干课程,介绍了程序设计语言编译程序构造的一般原理、基本设计方法、主要实现技术方法和一些自动构造工具,如:语言基础知识、词法分析、语法分析、有限自动机理论、形式语言的识别、语义检查、运行时的存储管理、代码优化和代码生成以及整个编译程序的构造过程。
教学目的:掌握编译程序构造的一般原理、基本设计方法、主要实现技术和一些自动构造工具,巩固《程序设计语言》、《数据结构》、《汇编语言》、《离散数学》等基础知识,能将编译程序中的概念和技术应用于一般的软件设计之中,能够独立完成小型编译程序。
教学方法:理论讲课与上机实验结合。
首先从剖析一个简单的编译程序(PL/0)入手,对编译程序设计的基本理论,如有穷自动机、上下文无关文法等给予必要的介绍;对于广泛使用的语法分析和语义分析技术,如递归子程序法、算符优先分析、LR分析及语法指导翻译等进行了详细讲解;对编译程序的结构及其各部分功能、实现方法以及整体的设计考虑等给予描述。
此外,还介绍了编译原理的构造工具。
“编译原理”是一门对实践性要求较高的课程,教学中设置了实验课,强化对理论的理解。
各章教学要求及教学要点第一章编译程序概论课时分配:2课时教学要求:了解什么是编译程序;了解编译过程。
教学内容:第一节什么是编译程序一、编译程序的基本知识第二节编译过程概述一、词法分析阶段二、语法分析三、语义分析阶段四、中间代码生成五、代码优化六、目标代码生成第三节编译程序的结构一、编译程序的6个基本过程二、编译程序的两个管理功能第四节编译阶段的组合一、编译的前端二、编译的后端第五节编译技术和软件工具一、语言的结构化编辑器二、语言的调试工具三、语言的测试工具四、高级语言之间的转换工具五、并行编译技术思考题:1.编译程序的工作过程包括哪几个基本阶段?2.介绍词法分析的概念。
编译原理武汉大学计算机学院编译原理课程组第4章词法分析·词法分析器·单词符号·词法分析程序设计·词法分析器的自动生成4.1 词法分析器与单词符号词法分析程序依据语言词法规则,分析由字符组成的源程序,把它识别为一个一个具有独立意义的最小语法单位,即“单词”,并识别出与其相关的属性(如是标识符,是界限符,还是数,等等),再转换成长度上统一的标准形式——属性字,把字符串形式的源程序改造成为单词符号串(属性字)形式的中间程序,以供其它部分使用。
1. 词法分析程序的作用如删除注解、空格、回车符、换行符之类非必要信息,把标识符登录入符号表及某些预加工处理等。
4.1 词法分析器与单词符号2.词法分析程序的地位·作为一个独立阶段⑴能独立地研究词法与语法两方面的特性。
⑵词法规则简单,可建立特别适用的有效分析技术,易于实现词法分析程序生成自动化。
⑶可以就同一语言,为每种不同的机器编写一个词法分析程序,而只编写一个共同的语法分析程序。
每当语法分析程序需要一个单词符号时就调用词法分析子程序,每一次调用,词法分析子程序就从源程序中识别出一个单词符号交给语法分析程序。
2.词法分析程序的地位4.1 词法分析器与单词符号·作为一个独立阶段·安排为一个子程序4.1 词法分析器与单词符号3. 单词符号程序语言的单词符号一般可分为五种:关键字、标识符、常数、运算符、界限符。
•单词种别一类一码;一符一码。
•单词符号的属性值反映单词符号特征或特性的值。
如标识符的符号表指针,常数的常数表指针等。
4.2 扫描程序的设计1.预处理如删除注解、空格、回车符、换行符之类非必要信息。
从源程序中处理出一串确定长度的输入字符,并将其装进词法分析程序指定的缓冲区——扫描缓冲区中。
4.2 扫描程序的设计1.预处理2.单词符号的识别——超前搜索•关键字的识别•标识符的识别•常数的识别•算符和界限符的识别4.2 扫描程序的设计状态转换图的实现:将状态转换图看作是通常的程序框图。
《编译原理》教学大纲大纲说明课程代码: 3225003总学时: 64 学时(讲课 48 学时,实验16 学时)总学分: 4课程类别:学科基础课适用专业 : 计算机科学与技术(专业)预修要求: C 语言程序设计、 C++ 程序设计、数据结构课程的性质、任务及地位:《编译原理》是计算机科学与技术专业的一门重要基础课。
通过对该课程的学习,使学生掌握编译过程中的相关原理和编译技术,让学生能初步进行编译程序的开发和维护,同时促进提高学生开发软件的能力。
教学目的与基本要求:本课程的目的,通过向学生讲述编译系统的结构、工作流程及编译程序各部分的设计原理和实现技术,使学生既掌握编译技术理论的基础与基本知识,也具有设计、实现、分析和维护编译程序等方面的初步能力。
本课程理论性较强。
因授课对象为工科学生,所以在强调编译系统的构造原理和实现方法的同时,为培养学生的实际工作能力,通过上机实践进一步加深学生对课堂教学内容的理解。
目的是要使学生牢固掌握相关的基本理论和基本方法,并能初步利用上述理论和方法解决简单实际问题。
教学方法和教学手段的建议:在教学方法上,贯彻理论联系实际、“精讲、多练”的原则,进行案例式、启发式的教学,对于一些实际性较强的问题要多采用课堂讨论等方式,以提高学生的思辨能力和学习的主动性;引导学生读书、理解、体悟、运用相结合;提高学生的学习兴趣与热情,培养与发挥学生的提出、分析及解决问题的能力。
教学手段:运用多媒体教学手段 +黑板 +上机实验的手段。
采取课堂讲授、课堂讨论、课后练习与自学等形式。
大纲的使用说明:大纲对课程性质、目的等作简单说明,同时列出各章节要学习的知识点、重点、难点,便于教学时教授重点的安排和学生自学安排。
大纲正文第一章引论学时: 4 学时(讲课 4 学时,实验 0 学时)了解编译的概念;理解编译程序的各组成部分及功能。
本章讲授要点:介绍程序设计语言与编译程序间的关系,主要内容包括:各级程序设计语言的定义、源程序的执行、编译程序的构造、编译程序的分类、形式语言理论与编译实现技术的联系。