第2章文法和语言
- 格式:ppt
- 大小:1009.50 KB
- 文档页数:66


蚌埠学院教学日历
2013 ~ 2014 学年度第 二 学期
授课教师姓名 邹青青 职称 讲师
授课专业班级 11计算机科学与技术(本1,2,3)
课程名称 编译原理
根据何种教学大纲 编译原理本科教学大纲
采用教材名称 编译原理
周 次
日 期 周
学
时 其 中
教学内容摘要
(章节名称、讲述的内容提要,实验的名称,课堂讨论的题目等) 讲
课 实验习
题 课
堂
讨
论 其他环节
第一周
2月24日
至
2月28日 4 4 第一章 引论
编译的基本概念、编译过程概述、编译程序的结构
编译程序与程序设计环境,编译程序的构造
重点:编译程序工作的基本过程及其各阶段的基本任务,编译程序总体框架
第二周
3月3日
至
3月9日 2 2 第一章 引论
举例说明编译器/编译程序的各个部分的工作过程
词法分析
语法分析
语义分析与中间代码生成
代码优化
代码生成
第三周
3月10日
至
3月16日 4 3 1 第二章 文法和语言
文法的直观概念与形式语言概论
文法的类型 0,1,2,3型文法
上下文无关文法及其语法树
正规式和上下文无关文法的比较,文法的改造
文法的实用限制
上下文无关文法中的ε规则
第四周
3月17 日
至
3月23日 2 1 1 第三章 词法分析
词法分析程序的设计方法
单词的描述工具
有限自动机与正规文法
第五周
3月24日
至
3月30日 4 3 1 第三章 词法分析
NFA向DFA的转换
正规表达式之间的对应关系
正规文法和有限自动机间的转换
重点:NFA的确定化算法 周 数 1-16 周
讲 课 42 学时 课堂讨论 2 学时
第2章习题解答
1. 文法G[S]为:
S->Ac|aB
A->ab
B->bc
写出L(G[S])的全部元素
[答案]
S=>Ac=>abc
或 S=>aB=>abc
所以 L(G[S])={abc}
2. 文法G[N]为:
N->D|ND
D->0|1|2|3|4|5|6|7|8|9
G[N]的语言是什么?
[答案]
G[N]的语言是 V。V={0,1,2,3,4,5,6,7,8,9}
N=>ND=>NDD.... =>NDDDD...D=>D……D
3. 已知文法G[S]:
Sf dAB Af aA|a B|bB
问:相应的正规式是什么? G[S]能否改写成为等价的正规文法?
[答案] 正规式是daa*b* ;
相应的正规文法为(由自动机化简来):
G[S]:S — dA A — a|aB B — aB|a|b|bC C — bC|b
也可为(观察得来):G[S]:S — dA A — a|aA|aB B — bB| &
4. 已知文法G[Z]:
Z->aZb|ab
写出L(G[Z])的全部元素。
[答案]
Z=>aZb=>aaZbb=>aaa..Z...bbb=> aaa..ab...bbb
L(G[Z])={a nbn|n>=1}
5. 给出语言{anbnc1 n>=1,m>=0}的上下文无关文法。
[分析]
本题难度不大,主要是考上下文无关文法的基本概念。 上下文无关文法的基 本定义是:A-> B ,A € Vn ,B€( VnU Vt) *,注意关键问题是保证anbn的成立, 即“ a与b的个数要相等”,为此,可以用一条形如 A->aAb|ab的产生式即可解 决。
[答案]
构造上下文无关文法如下:
S->AB|A
A->aAb|ab
B->Bc|c
[扩展] 凡是诸如此类的题都应按此思路进行,本题可做为一个基本代表。基本思路 是这样的:
要求符合anbncm,因为a与b要求个数相等,所以把它们应看作一个整体单元进 行,而cm做为另一个单位,初步产生式就应写为 S->AB,其中A推出anbn,B推
语言和文法的关系
《语言和文法的关系》
哎呀呀,说起语言和文法,这可真是个有趣又重要的话题呢!
就像我们每天都要吃饭、睡觉一样,语言也是我们生活中离不开的东西。我们用语言跟爸爸妈妈聊天,跟小伙伴们玩耍,向老师请教问题。那文法呢?文法就像是给语言穿上了一件漂亮又整齐的衣服。
比如说,我跟好朋友说:“咱出去玩呗!”这就是很随意的语言。可如果我写作文的时候也这么写,老师可能就会说:“哎呀,这可不符合文法哟!”那啥是符合文法的呢?比如我写:“我们一起出去玩吧!”这听起来是不是就正式多啦?
想想看,语言要是没有文法,那不就乱套了嘛!就好像一群小朋友在操场上乱跑,没有老师指挥,那得多混乱呀!文法能让我们的语言更有条理,别人更容易明白我们的意思。
有一次,我在班上读自己写的作文,我写的是“我昨天去公园,看见很多花,美极啦。”老师就说:“你这句子呀,少了点东西。应该是‘我昨天去公园,看见很多美丽的花,美极啦。’”你瞧,加上“美丽的”这几个字,是不是整个句子就更清楚、更好理解啦?
再打个比方,语言是一条流淌的小河,那文法就是河两边的堤岸。没有堤岸,河水就会到处乱流;有了堤岸,河水才能沿着一定的方向,顺畅地流淌。
还有啊,我们学英语的时候,文法也特别重要。“I am a student.” 这是对的。可要是说成 “I is a student.” 那不就闹笑话了嘛!
我同桌还跟我说过一件好玩的事儿。他去参加英语口语比赛,本来想说 “I have
many friends.” 结果一紧张说成了 “I has many friends.” 回来他自己都觉得好笑。
我妈妈也跟我说过,她工作的时候,如果写的邮件文法不对,别人可能就会误解她的意思,那可就麻烦啦!
所以说呀,语言和文法的关系那可真是紧密得很呢!文法能让语言更准确、更优美、更有力量。我们可不能小瞧了文法,得好好学,才能把我们的语言说得更好、写得更棒!
我的观点就是:语言和文法就像一对好伙伴,谁也离不开谁。我们要想用好语言,就得掌握好文法,这样才能在交流和表达中畅通无阻,让别人都能明白我们的心思,感受到我们的情感!
--
--
《编译原理》教学大纲
大纲说明 课程代码: 3225003 总学时: 64 学时(讲课 48 学时,实验 16 学时)
总学分: 4 课程类别:学科基础课 适用专业 : 计算机科学与技术(专业) 预修要求: C 语言程序设计、 C++ 程序设计、数据结构 课程的性质、任务及地位 : 《编译原理》 是计算机科学与技术专业的一门重要基础课。 通过对该课程的学习, 使学 生掌握编译过程中的相关原理和编译技术, 让学生能初步进行编译程序的开发和维护, 同时 促进提高学生开发软件的能力。 教学目的与基本要求: 本课程的目的, 通过向学生讲述编译系统的结构、 工作流程及编译程序各部分的设计原 理和实现技术, 使学生既掌握编译技术理论的基础与基本知识,也具有设计、实现、分析和 维护编译程序等方面的初步能力。 本课程理论性较强。 因授课对象为工科学生, 所以在强调 编译系统的构造原理和实现方法的同时, 为培养学生的实际工作能力, 通过上机实践进一步 加深学生对课堂教学内容的理解。 目的是要使学生牢固掌握相关的基本理论和基本方法, 并 能初步利用上述理论和方法解决简单实际问题。 教学方法和教学手段的建议: 在教学方法上,贯彻理论联系实际、 “精讲、多练”的原则,进行案例式、启发式的教 学,对于一些实际性较强的问题要多采用课堂讨论等方式 ,以提高学生的思辨能力和学习
的主动性;引导学生读书、理解、体悟、运用相结合;提高学生的学习兴趣与热情,培养与发挥学生的提出、分析及解决问题的能力。
教学手段: 运用多媒体教学手段 +黑板 +上机实验的手段。 采取课堂讲授、 课堂讨论、课后练习与自学等形式。 大纲的使用说明 :
大纲对课程性质、目的等作简单说明,同时列出各章节要学习的知识点、重点、难点,便于教学时教授重点的安排和学生自学安排。