专栏首页佳爷的后花媛编译器和解释器的简介|编译原理

编译器和解释器的简介|编译原理

1.1 Introduction to Compilers and interpreters

https://v.qq.com/x/page/u0821wmf4av.html

开头简单的讲了编译器和解释器:

编译器:在一个程序运行之前,首先需要被翻译成一种能够被计算机执行的形式,完成这项翻译工作的软件系统就是编译器。

一个编译器就是一个程序,可以阅读以某一种语言(源语言)编写的程序,并把改程序翻译成一个等价的,用另一种语言(目标语言)编写的程序,编译器的重要任务之一就是报告他在翻译过程中发现的源程序中的错误。

解释器:

解释器是另一种常见的语言处理器,并不通过翻译的方式生成目标程序,从用户的角度看,解释器直接利用用户提供的输入执行源程序中指定的操作。

这门课程讨论在编程语言编译器实现中使用的主要思想,包括词法分析,解析,语法导向翻译,抽象语法树,类型和类型检查,中间语言,数据流分析,程序优化,代码生成,和运行时系统。

因此,将学习如何将以人类设计的高级语言编写的程序系统地转换为以更适合机器的低级程序集编写的程序。在此过程中,还将讨论如何设计编程语言,编程语言语义以及为什么有这么多不同类型的编程语言。

课程讲座将在简短的视频中呈现。为了帮助掌握材料,将有讲座问题回答,测验和两个考试:期中考试和期末考试。还会有练习形式的作业,要求显示导出特定结果所需的一系列逻辑步骤,例如类型检查器执行以键入检查一段代码所执行的步骤序列,或者解析器将执行以解析输入字符串的步骤。这种检查技术是斯坦福大学不断研究开发创新教育工具的结果。

一个可选的课程项目是为COOL(面向课堂面向对象语言)编写一个完整的编译器。 COOL具有现实编程语言的基本特征,但是它小而简单,可以在几千行代码中实现。选择执行项目的学生可以用C ++或Java实现它。

为什么学习编译器?

计算机所做的一切都是某些程序的结果,世界上所有数以百万计的程序都是用过去60年来开发的数千种编程语言中的一种编写的。设计和实现编程语言变得困难;计算机科学中的一些最优秀的思想家已经考虑过所涉及的问题并且贡献了美丽而深刻的结果。学习编译器的东西将向您展示计算机科学中理论与实践的相互作用,特别是强大的一般思想与工程洞察力的结合能够为非常困难的问题提供实用的解决方案。了解编译器的工作原理也将使您成为更好的程序员,并提高您快速学习新编程语言的能力。

年前我也在看龙书,很好奇编译原理,对于编译器的工作,词法的分析,如何解析语言,什么是树。。。。。。都很感兴趣,但是看书时还是有很多疑惑,也在慢慢学习中,偶尔看到这个斯坦福大学关于编译原理的视频感觉还不错,网易云课堂的没有翻译,就自己做了翻译,放在了B站和公众号上,希望给想学习但是英文和我一样不太好的朋友参考一下。

本文分享自微信公众号 - 佳爷的后花媛(zoe1368329355),作者:仇诺伊

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 1.1 编译器和解释器的简介|编译原理

    编译器:在一个程序运行之前,首先需要被翻译成一种能够被计算机执行的形式,完成这项翻译工作的软件系统就是编译器。

    仇诺伊
  • 编译器的结构|编译原理

    今天的内容是冠以编译器的结构。(翻译内容可能不太准确,谅解,凑合看吧)

    仇诺伊
  • 今日推荐:python-small-examples

    今天推荐的适合python学习者,这个仓库里作者收集了几百个很有趣的示例,都是用 python去实现的。

    仇诺伊
  • 1.1 编译器和解释器的简介|编译原理

    编译器:在一个程序运行之前,首先需要被翻译成一种能够被计算机执行的形式,完成这项翻译工作的软件系统就是编译器。

    仇诺伊
  • 小程序如何走向线下?这 5 个案例绝对值得参考

    知晓君
  • MySQL 索引管理与执行计划

      索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索...

    lyb-geek
  • 网易产品经理评价小程序:这是一个「禁欲」的产品

    和了不起的同事们课余时间做了一个小程序「网易灰评」,有幸赶上了微信首批上线的小程序之一。

    知晓君
  • Python爬虫进阶必备 | 关于某监测网站的内容加密分析

    还是上次的那个网站,上一篇分析了关于反爬的绕过,在正文里随口提了一句说这个网站关于正文加密的部分很简单,晚上就收到几位读者的私信,希望能够讲讲关于正文的加密是如...

    咸鱼学Python
  • 干货丨一篇文章读懂H5/App/小程序的区别

    如何让自己的想法通过合适的产品实现更好的落地,前提是要清楚不同工具的特点,关于H5和APP以及小程序的概念介绍已经有了很多,接下来会详细介绍三者之间的开发区别和...

    齿轮易创说互联网
  • SpringCloud微服务实战系列(十四)分布式锁之Zookeeper实现

    分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,...

    品茗IT

扫码关注云+社区

领取腾讯云代金券