- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理第一章编译原理第一章
《编译原理》(Principles of Compiling) 什么是计算机科学的基础?什么是计算机科学的基本问题? 诸如什么是形式语言?什么是计算?什么是能计算的?什么是不能计算的?什么是算法?如何评价算法?什么样的算法是可行的?这些问题能否判定?这又引出什么是可判定的?什么是不可判定的? 这些问题就是计算理论要讨论的问题。 计算理论:就是研究理论计算机的科学。 理论计算机:是研究计算机的理论模型,研究计算机的本质,也就是把计算机看成一个数学系统。(因为计算机科学的基本思想和模型在本质上是数学--离散的。) 计算理论的三个传统核心领域 形式语言与自动机理论:研究计算的数学模型的定义和性质; 正则文法与有限自动机(正则语言) 上下文无关文法与下推自动机(上下文无关语言) 图灵机(递归可枚举语言) 可计算性理论:研究计算和可计算性概念、研究各种计算模型及其等价性、研究不可计算性即不可解性; 计算复杂性理论:研究实际上的不可计算性、研究P和NP问题。时间复杂性 、 空间复杂性。 可计算性理论、计算复杂性理论需要对计算机给出一个准确的定义,而形式语言与自动机理论允许使用计算的形式化定义,所以是学习计算理论的起点 图灵命题: 图灵1936年的传世论文《论可计算数及其在判定问题中的应用》主要是回答德国大数学家希尔伯特在1900年提出的著名的“23个数学难题”之中的第10个,问题涉及逻辑的完备性,即是不是所有的数学问题在逻辑上都是可解的。这篇论文说,有些数学问题是不可解的。 自动计算机的理论模型是在该论文中提出的,这种抽象模型可以把推理化作一系列简单的机械动作,被称作为图灵机的模型,有许多等价描述。歪打正着,图灵机模型到上世纪60年代却转变成用来说明可计算能力的模型。 为纪念该文发表30周年,1966年设立“图灵奖”,以纪念这位计算机科学理论的奠基人。 学时与参考教材 学时:46+10学时 参考教材: 1、陈火旺等,《程序设计语言编译原理》,国防工业出版社,2003.8.印刷 2、 Alfred Aho ect. 《编译原理》,李建中等译,机械工业出版社,2003.8.(原版-邮电出版社) 3、 Kenneth C. Louden,《编译原理及实践》,冯博琴等译,机械工业出版社,2001.2.印刷 4、金成植,《编译程序构造原理和实现技术》,高等教育出版社,2000.7. 学时与参考教材 5、何炎祥等,《编译原理》,华中理工大学出版社,2000.10. 6、P.M.刘易斯,《编译程序设计理论》,科学出版社,1984.5. 7、高仲仪等,《编译技术》,西北工业大学出版社,1985.9 8、杜淑敏等,《编译程序设计原理》,北京大学出版社,1990.11. …… 主要内容 编译系统及其设计概述(总体结构、设计方法——2) 语言与文法(文法、推导、归约、分类、分析树——4) 词法分析(词法分析、正规式与正规文法、DFA状态转移图——6) 语法分析(自顶向下:LL(1)、递归子程序;自底向上:算符优先、 LR——12) 语义分析(属性文法、各种语句的语法制导翻译——12) 代码优化与目标代码生成(基本优化方法介绍、目标代码生成过程——8) 总结 ——2 成绩评定 考试必备条件 必须按照要求完成指定的习题 必须通过实验系统的验收 成绩 平时20%+实验10% 期末70% 教学目的——计算学科本科生专业能力构成 “计算思维能力”——模型化、抽象思维能力、逻辑思维能力 算法设计与分析能力 程序设计与实现能力 计算机系统的认知、分析、设计和应用能力 编译原理的授课涉及上述四种能力的培养 教学目的——《编译原理》是一门非常好的课程 Alfred V.Aho:编写编译器的原理和技术具有十分普遍的意义,以至于在每个计算机科学家的研究生涯中,本书中的原理和技术都会反复用到 涉及的是一个比较适当的抽象层面上的数据变换(既抽象,又实际) 一些具体的表示和变换算法 “自顶向下”和“自底向上”的系统设计方法(思想、方法、实现全方位讨论) 一个相当规模的系统的设计(含总体结构) 结论:计算机专业最恰当、有效的知识载体之一 教学要求 掌握编译程序总体结构 在系统级上认识算法、系统的设计 具有把握系统的能力 学习有关的原理、实现方法和技术,了解计算学科的基本方法、思想 掌握典型方法。 “在每一个计算机科技工作者的职业生涯中,这些原理和技术都被反复用到。” 兼顾语言的描述方法、设计、应用——形式化 进一步培养“计算机思维能力” 程序的非物理性质 学习方法 勤于思考 博览、多思(学而不思则罔、思而不学则怠;书由厚到薄、由薄到厚)、常实践 思考由怀疑和答案组成。怀疑是智慧的大门,知道得越多,就越会发问,而问题就越多。发问使人进步——学问 强化基础 在独立思考之前
文档评论(0)