自学编译器课程/好的编译器入门书籍?

发布于 2024-08-07 18:43:18 字数 165 浏览 4 评论 0原文

有谁知道包含典型编译器课程的在线课程/大学讲座?我学过计算理论,但不幸的是我的学校没有提供编译器构建课程。

我知道那里有讲座;我希望得到特别好的产品推荐。

另外,有没有适合新手的书籍?至少是除了龙之书之外的东西。初级水平还可以,我知道市场上有很多中高级的教材。

谢谢!

Does anyone know of online course / university lectures that comprise a typical compiler course? I've had theory of computing but unfortunately my school didn't offer a course in compiler construction.

I know there are lectures out there; I was hoping for recommendations for particularly good offerings.

Also, are there books for newbies to the field? Something besides the dragon book, at least. Beginners level is fine, I know there are a lot of intermediate-advanced texts on the market.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

网名女生简单气质 2024-08-14 18:43:18

编辑:如果这个问题没有关闭,请检查这个重复的SO帖子以更详尽的方式回答了问题。

麻省理工学院 OpenCourseWare 网站上的一些资源:

6.035 计算机语言工程
6.827 多线程并行:语言和编译器

前者可能符合您的想法。它还包括一些讲座视频。
后者……确实是研究生水平的课程。与传统的编译链相比,我们更关注多线程。 (但是,为了有效地分块代码线程,必须对原始程序中表达的语义有一个很好的掌握......)

Edit: in case this SO questions doesn't get closed, do check this duplicate SO posting which answers the question in a much more exhaustive fashion.

A couple of ressources on MIT's OpenCourseWare site:

6.035 Computer Language Engineering
6.827 Multithreaded Parallelism: Languages and Compilers

The former probably along the lines of what you had in mind. It also includes some of the lectures' videos.
The latter... positively a graduate level course. Also focus is more on multi-threading than the traditional compiling chain. (But then again to to chunk code threads efficiently one must have a decent grasp of the semantics expressed in the original program...)

上课铃就是安魂曲 2024-08-14 18:43:18

您可以查看此课程:http://ecee.colorado.edu/ecen4553

课程信息

高级编程语言,例如
Python 让编程变得轻而易举,但是
它们是如何工作的?差距很大
Python 和机器之间
现代计算机的说明。
了解如何翻译 Python 程序
一直到 Intel x86 汇编
语言。

大多数编译器课程只教授一个阶段
编译器一次,例如
语法分析、语义分析和
寄存器分配。问题在于
这种方法很难
了解整个编译器如何适应
在一起以及为什么每个阶段都是
就这样设计的。相反,每个
一周我们陆续实施了
Python 语言的更大子集。
第一个子集很小
算术语句的语言,以及
当我们完成语言的时候
包括对象、继承和
一流的功能。

先决条件:至少精通一门
编程语言(Java、C、C++、
蟒蛇等)。学生会做很多事
使用 Python 编程,但之前
不需要 Python 知识。
课程将从崩溃开始
Python 课程和 Python 是其中之一
最容易学习的语言。事先的
汇编语言知识
有帮助,但不是必需的。

You can check out this course: http://ecee.colorado.edu/ecen4553

Course Information

High-level programming languages like
Python make programming a breeze, but
how do they work? There's a big gap
between Python and machine
instructions for modern computers.
Learn how to translate Python programs
all the way to Intel x86 assembly
language.

Most compiler courses teach one phase
of the compiler at a time, such as
parsing, semantic analysis, and
register allocation. The problem with
that approach is it is difficult to
understand how the whole compiler fits
together and why each phase is
designed the way it is. Instead, each
week we implement a successively
larger subset of the Python language.
The very first subset is a tiny
language of arithmetic statements, and
by the time we are done the language
includes objects, inheritance, and
first-class functions.

Prerequisites: Fluency in at least one
programming language (Java, C, C++,
Python, etc.). Students will do a lot
of programming in Python, but prior
knowledge of Python is not required.
The course will start with a crash
course on Python and Python is one of
the easiest languages to learn. Prior
knowledge of an assembly language
helps, but is not required.

本宫微胖 2024-08-14 18:43:18

看看这个 http://scheme2006.cs.uchicago.edu/11-ghuloum .pdf ;)

这是一个非常基本的介绍,您知道现代编译器确实有些复杂。

Take a look at this http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf ;)

That is a very basic introduction, you know that modern compilers are somewhat really complicated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文