курсы самообучающихся компиляторов / хорошие вводные книги по компилятору? - PullRequest
8 голосов
/ 13 октября 2009

Кто-нибудь знает об онлайн-курсах / университетских лекциях, которые включают типичный курс по компиляции? У меня была теория вычислений, но, к сожалению, в моей школе не было курса по компиляции.

Я знаю, что там есть лекции; Я надеялся на рекомендации для особенно хороших предложений.

Кроме того, есть книги для новичков в этой области? Что-то кроме книги о драконах, по крайней мере. Уровень начинающих в порядке, я знаю, что на рынке есть много промежуточных текстов.

Спасибо!

Ответы [ 3 ]

8 голосов
/ 13 октября 2009

Редактировать : если эти вопросы SO не закрыты, отметьте дубликат публикации SO , которая отвечает на вопрос гораздо более исчерпывающим образом.

Несколько ресурсов на сайте MIT OpenCourseWare:

6.035 Компьютерный язык
6.827 Многопоточный параллелизм: языки и компиляторы

Первый, вероятно, в соответствии с тем, что вы имели в виду. Он также включает в себя некоторые видео лекций.
Последний ... положительно на уровне магистратуры. Также больше внимания уделяется многопоточности, чем традиционной цепочке компиляции. (Но опять же, чтобы эффективно разделять потоки кода на части, нужно иметь приличное понимание семантики, выраженной в исходной программе ...)

5 голосов
/ 13 октября 2009

Вы можете проверить этот курс: http://ecee.colorado.edu/ecen4553

Информация о курсе

Языки программирования высокого уровня, такие как Python делает программирование на одном дыхании, но как они работают? Там большой разрыв между питоном и машиной инструкция к современным компьютерам. Узнайте, как переводить программы на Python вплоть до сборки Intel x86 язык.

Большинство курсов по компиляции преподают один этап компилятора одновременно, например синтаксический анализ, семантический анализ и Распределение регистров. Проблема с этот подход трудно понять, как подходит весь компилятор вместе и почему каждый этап разработан так, как он есть. Вместо этого каждый неделю мы реализуем последовательно большее подмножество языка Python. Самое первое подмножество является крошечным язык арифметических утверждений и к тому времени, как мы закончили включает в себя объекты, наследование и первоклассные функции.

Пререквизиты: свободное владение хотя бы одним язык программирования (Java, C, C ++, Python и т. Д.). Студенты много сделают программирования на Python, но до знание Python не требуется. Курс начнется с аварии Курс на Python и Python является одним из самые простые языки для изучения. предшествующий знание ассемблера помогает, но не обязательно.

4 голосов
/ 13 октября 2009

Взгляните на это http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf;)

Это очень простое введение, вы знаете, что современные компиляторы несколько действительно сложны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...