前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编译器和解释器的简介|编译原理

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

作者头像
仇诺伊
发布2020-04-24 11:55:21
1.3K0
发布2020-04-24 11:55:21
举报
文章被收录于专栏:佳爷的后花媛佳爷的后花媛

1.1 Introduction to Compilers and interpreters

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

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

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

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

解释器:

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

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

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

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

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

为什么学习编译器?

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 佳爷的后花媛 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云课堂
云课堂聚焦教培机构 OMO 转型,为机构提供在线及混合式课堂解决方案,极速开课、多向互动、智能沉淀、一键分发,是教培课堂便捷、稳定的教学助手。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档