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

1.1 Introduction to Compilers and interpreters

视频封面

上传视频封面

斯坦福大学 编译原理中文字幕

视频传送门

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

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

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

解释器:

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

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

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

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

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

为什么学习编译器?

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券