×
您的位置:
编译原理

编译原理

  • 课程主讲:康辉
  • 所属机构:吉林大学
  • 视频数量:67讲
  • 所属分类:理工科学
  • 课程时长:39小时42分钟
  • 课程人气:6594
  • 在线播放
  • 分集下载

编译原理的相关介绍

    长春人戏称:“美丽的长春市坐落在吉林大学之中。” 可见吉林大学的规模有多大!吉林大学是教育部直属的一所综合性全国重点大学。恰巧今天我们为您收录的这部教程也是吉林大学的精品编译原理教程,还在等什么?快快行动观看吧!

    原吉林大学建校于1946年9月24日,当时校名为东北行政学院;几经变迁,1950年3月31日易名为东北人民大学;1958年8月11日,东北人民大学更名为吉林大学,郭沫若为吉林大学题写校名。1960年10月22日,中央正式批准吉林大学为国家重点综合性大学。1984年6月,国务院批准了包括清华大学、北京大学、中山大学、吉林大学中国22所重点大学首批试办研究院,8月8日吉林大学研究生院成立。新的吉林大学于2000年6月12日由原吉林大学、吉林工业大学、白求恩医科大学、长春科技大学、长春邮电学院合并组建而成。2004年8月29日,原中国人民解放军军需大学并入吉林大学。2004年教育部确定包括吉林大学在内的全国34所高校考研自行确定复试录取分数线。吉林大学是具有教授任职资格审批权的高校。

    学校师资力量雄厚,有教师6360人,其中教授1298人 ,博士生指导教师740人。有中国科学院和中国工程院院士20人( 双聘7人) ,国务院学位委员会委员2人,国务院学位委员会学科评议组成员16人,中央马克思主义理论研究和建设工程项目首席专家4人,国家“973”项目首席科学家2人,国家有突出贡献的中青年专家14人,国家杰出青年基金获得者20人,教育部“长江学者奖励计划”特聘教授18人。 学校拥有190个具有现代化研究手段的实验室,其中教育部人文社会科学重点研究基地6个,“985工程”二期建设哲学社会科学创新基地5个,“985工程”二期建设科技创新平台8个,国家重点实验室5个,教育部重点实验室10个,其他部委重点实验室13个。学校承担了大量国家级和省部级科研项目,有一批 产业化前景好、技术含量高的国家攻关项目、“863”项目、“973”项目等高新技术成果。

    编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。 目前各个大学使用的教材机械工业出版社、国防工业出版社出版的《编译原理》。

    编译器是将一种语言翻译为另一种语言的计算机程序。编译器将源程序(source language) 编写的程序作为输入,而产生用目标语言(target language )编写的等价程序。通常地,源程序为高级语言(high-level language ),如C或C + + ,而目标语言则是目标机器的目标代码 (object code,有时也称作机器代码(machine code )),也就是写在计算机机器指令中的用于运行的代码。这一过程可以表示为:源程序→编译器 →目标程序。

    在1954年至1957年期间,IBM的John Backus带领的一个研究小组对FORTRAN语言及其编译器的开发,使得上面的担忧不必要了。但是,由于当时处理中所涉及到的大多数程序设计语言的翻译并不为人所掌握,所以这个项目的成功也伴随着巨大的辛劳。 几乎与此同时,人们也在开发着第一个编译器, Noam Chomsky 开始了他的自然语言结构的研究。他的发现最终使得编译器结构异常简单,甚至还带有了一些自动化。 Chosmky的研究导致了根据语言文法(grammar ,指定其结构的规则)的难易程度以及识别它们所需的算法来为语言分类。正如现在所称的-与乔姆斯基分类结构(Chomsky hierarchy )一样-包括了文法的4个层次:0型、1型、2型和3型文法,且其中的每一个都是其前者的专门化。2型(或上下文无关文法(context-free grammar ))被证明是程序设计语言中最有用的,而且今天它已代表着程序设计语言结构的标准方式。

    分析问题( parsing problem ,用于限定上下文无关语言的识别的有效算法)的研究是在20世纪60年代和70年代,它相当完善地解决了这一问题, 现在它已是编译理论的一个标准部分。它们与乔姆斯基的3型文法相对应。对它们的研究与乔姆斯基的研究几乎同时开始,并且引出了表示程序设计语言的单词(或称为记号)的符号方式。

    人们接着又深化了生成有效的目标代码的方法,这就是最初的编译器,它们被一直使用至今。人们通常将其误称为优化技术(optimization technique ),但因其从未真正地得到过被优化了的目标代码而仅仅改进了它的有效性,因此实际上应称作代码改进技术(code improvement technique )。

    这些程序最初被称为编译程序-编译器,但更确切地应称为分析程序生成器 (parser generator ),这是因为它们仅仅能够自动处理编译的一部分。这些程序中最著名的是 Yacc (yet another compiler- compiler),它是由Steve Johnson在1975年为Unix系统编写的。

    类似地,有穷自动机的研究也发展了另一种称为扫描程序生成器 (scanner generator )的工具,Lex (与Yacc同时,由Mike Lesk为Unix系统开发的)是这其中的佼佼者。 在20世纪70年代后期和80年代早期,大量的项目都关注于编译器其他部分的生成自动化,这其中就包括代码生成。这些尝试并未取得多少成功,这大概是因为操作太复杂而人们又对其不甚了解。