Write a Compiler

Год выпуска: 2025
Производитель: Dabeaz
Сайт производителя: Для просмотра ссылки Войдиили Зарегистрируйся
Автор: David Beazley
Продолжительность: 35ч 40м 56c
Язык: Английский
Формат видео: MP4
Видео: avc, 1366x654, 2.089, 25.000 к/с, 146 кб/с
Аудио: aac lc, 48.0 кгц, 128 кб/с, 2 аудио
Описание:
Overview
In this course, you'll write a compiler for a new programming language. At first glance, this might not seem it would be related to typical problems faced at work. However, writing a compiler is a practical exercise in managing data and complexity. Compilers have a lot of moving parts, are difficult to test, and challenging to debug. Thus, writing a compiler is a great playground for studying problems that confront all sorts of real-world software projects.
A true story: I once had a former student stop by my office to tell me how he helped save a major coding disaster involving health insurance. I asked "how'd you do that?" He said, "I used something I learned while writing a compiler."
Target Audience
This class is for more experienced programmers who have an interest in software design, data handling, type systems, and related topics. Not many programmers get the opportunity to write a compiler unless they happen to take such a course as a CS undergraduate or they enroll in graduate school. Thus, this course could be a good way to fill in gaps and to challenge yourself.
"If you've seen any of David Beazley's fun and mind blowing talks, you can begin to imagine his week-long, intensive courses, held in his own Chicago office -- or "lair", as he calls it. It's even better than you think: starting with breakfast every day, David is a gracious host, a daredevil coder, and an inspiring teacher. I took his Compiler Course and I hope to attend more of his unique, hands-on workshops." - Luciano Ramalho, author of Fluent Python
Instruction Format
This course is entirely project focused and presented in a conversational live-coding style without PowerPoint style slides. The goal of the course is not just to learn how to write a compiler, but also how to approach the problem of writing a compiler from first principles. Part of the course involves group discussion about problem decomposition, coding techniques, design tradeoffs, testing, and other related topics. The rest of the time is spent working on individual coding.
Coding examples are primarily provided in Python. However, the project involves no third-party libraries, esoteric Python-specific features, or Python-dependent tooling. As such, you're free to implement the project in any programming language that you wish.
Prerequisites
You might not think that you're ready to write a compiler, but if you've been coding for awhile and know the basics of data structures, it's something that you could probably tackle. No prior background in compilers is required although awareness of common programming language concepts (e.g., types, functions, classes, scoping rules, etc.) is strongly advised. Some knowledge of text manipulation, computer architecture (machine instructions, memory, etc.), and prior use of a compiled language is also recommended. Robert Nystrom's Crafting Interpreters book is also an excellent source of background information.
Project Overview:
Are You Nuts?
Writing a compiler in only 5 days? Is it even possible? To be sure, compilers is often regarded as one of the most difficult CS courses that one can take. If you take it at a University, you might get a professor who will drag you through the infamous Dragon Book, spend a lot of time doing mathematical proofs (e.g., deriving the LALR(1) parsing algorithm), and make the focus of the course on preparing graduate students for future research in programming languages. That can be a great class. I have taught that class. This is NOT that class.
Instead, this is a compilers course aimed at working programmers. As such, the main focus is on programming. Yes, you will learn about some important core concepts that underpin compilers. However, instead of doing mathematical proofs involving parsing theory, we'll focus on how you would actually go about implementing a parser and doing things such as writing unit tests for it.
About the Instructor
This class is led by David Beazley. Although most known for his work in the Python community, Dave was formerly a tenure-track assistant professor in the Department of Computer Science at the University of Chicago where he taught a Compilers course along with a variety of other topics in systems and programming languages. In 2023 and 2024, he taught the Programming Language Design and Implementation course with Shriram Krishnamurthi at Brown University. Dave is also the creator of the PLY and SLY parsing tools for Python. He once gave a PyCon talk about these tools. In a previous decade, he also created Swig, a C/C++ compiler for building scripting language extension modules.
Торрент 4.19 GB

Год выпуска: 2025
Производитель: Dabeaz
Сайт производителя: Для просмотра ссылки Войди
Автор: David Beazley
Продолжительность: 35ч 40м 56c
Язык: Английский
Формат видео: MP4
Видео: avc, 1366x654, 2.089, 25.000 к/с, 146 кб/с
Аудио: aac lc, 48.0 кгц, 128 кб/с, 2 аудио
Описание:
Overview
In this course, you'll write a compiler for a new programming language. At first glance, this might not seem it would be related to typical problems faced at work. However, writing a compiler is a practical exercise in managing data and complexity. Compilers have a lot of moving parts, are difficult to test, and challenging to debug. Thus, writing a compiler is a great playground for studying problems that confront all sorts of real-world software projects.
A true story: I once had a former student stop by my office to tell me how he helped save a major coding disaster involving health insurance. I asked "how'd you do that?" He said, "I used something I learned while writing a compiler."
Target Audience
This class is for more experienced programmers who have an interest in software design, data handling, type systems, and related topics. Not many programmers get the opportunity to write a compiler unless they happen to take such a course as a CS undergraduate or they enroll in graduate school. Thus, this course could be a good way to fill in gaps and to challenge yourself.
"If you've seen any of David Beazley's fun and mind blowing talks, you can begin to imagine his week-long, intensive courses, held in his own Chicago office -- or "lair", as he calls it. It's even better than you think: starting with breakfast every day, David is a gracious host, a daredevil coder, and an inspiring teacher. I took his Compiler Course and I hope to attend more of his unique, hands-on workshops." - Luciano Ramalho, author of Fluent Python
Instruction Format
This course is entirely project focused and presented in a conversational live-coding style without PowerPoint style slides. The goal of the course is not just to learn how to write a compiler, but also how to approach the problem of writing a compiler from first principles. Part of the course involves group discussion about problem decomposition, coding techniques, design tradeoffs, testing, and other related topics. The rest of the time is spent working on individual coding.
Coding examples are primarily provided in Python. However, the project involves no third-party libraries, esoteric Python-specific features, or Python-dependent tooling. As such, you're free to implement the project in any programming language that you wish.
Prerequisites
You might not think that you're ready to write a compiler, but if you've been coding for awhile and know the basics of data structures, it's something that you could probably tackle. No prior background in compilers is required although awareness of common programming language concepts (e.g., types, functions, classes, scoping rules, etc.) is strongly advised. Some knowledge of text manipulation, computer architecture (machine instructions, memory, etc.), and prior use of a compiled language is also recommended. Robert Nystrom's Crafting Interpreters book is also an excellent source of background information.
Project Overview:
Are You Nuts?
Writing a compiler in only 5 days? Is it even possible? To be sure, compilers is often regarded as one of the most difficult CS courses that one can take. If you take it at a University, you might get a professor who will drag you through the infamous Dragon Book, spend a lot of time doing mathematical proofs (e.g., deriving the LALR(1) parsing algorithm), and make the focus of the course on preparing graduate students for future research in programming languages. That can be a great class. I have taught that class. This is NOT that class.
Instead, this is a compilers course aimed at working programmers. As such, the main focus is on programming. Yes, you will learn about some important core concepts that underpin compilers. However, instead of doing mathematical proofs involving parsing theory, we'll focus on how you would actually go about implementing a parser and doing things such as writing unit tests for it.
About the Instructor
This class is led by David Beazley. Although most known for his work in the Python community, Dave was formerly a tenure-track assistant professor in the Department of Computer Science at the University of Chicago where he taught a Compilers course along with a variety of other topics in systems and programming languages. In 2023 and 2024, he taught the Programming Language Design and Implementation course with Shriram Krishnamurthi at Brown University. Dave is also the creator of the PLY and SLY parsing tools for Python. He once gave a PyCon talk about these tools. In a previous decade, he also created Swig, a C/C++ compiler for building scripting language extension modules.
Торрент 4.19 GB
Скрытое содержимое могут видеть только пользователи групп(ы): Premium, Местный, Свои