Основы языков программирования
![]() | |
Автор | Дэниел П. Фридман , Митчелл Ванд , Кристофер Т. Хейнс |
---|---|
Предмет | Языки программирования |
Жанр | Учебник |
Издатель | С Прессой |
Дата публикации | Апрель 2008 г. (3-е изд.) |
Страницы | 416 |
ISBN | 0-262-06279-8 (3-е изд.) |
Класс ЛК | QA76.7 .F73 2008 г. |
Основы языков программирования ( EOPL ) — учебник по языкам программирования Дэниела П. Фридмана , Митчелла Ванда и Кристофера Т. Хейнса .
EOPL исследует принципы языков программирования с практической точки зрения. Все начинается с интерпретатора Scheme лямбда для простого функционального базового языка, похожего на -исчисление , а затем систематически добавляются конструкции. Для каждого дополнения, например назначения переменных или поточного управления, в книге показано увеличение выразительных возможностей языка программирования и потребность в новых конструкциях для формулирования прямого интерпретатора. Книга также демонстрирует, что систематические преобразования, скажем, стиль передачи сохранения или стиль передачи продолжения , могут исключить определенные конструкции из языка, на котором сформулирован интерпретатор.
Вторая часть книги посвящена систематическому переводу интерпретатора(ов) в регистровые машины . Преобразования показывают, как устранить замыкания более высокого порядка; объекты продолжения; рекурсивные вызовы функций; и многое другое. В конце у читателя остается «интерпретатор», который не использует ничего, кроме вызовов функций с хвостовой рекурсией и операторов присваивания плюс условные выражения. Транслировать этот код в программу на языке C или даже в программу на ассемблере становится тривиально. В качестве бонуса в книге показано, как предварительно вычислить определенные части «значения» и как создать представление этих предварительных вычислений. Поскольку в этом заключается суть компиляции, книга также готовит читателя к курсу по принципам компиляции и языковому переводу — смежной, но отдельной теме. Помимо текста, объясняющего ключевые понятия, книга также содержит серию упражнений, позволяющих читателям исследовать альтернативные конструкции и другие вопросы. [1]
Как и SICP , EOPL представляет собой значительный отход от преобладавшего в учебниках подхода 1980-х годов. В то время в книге о принципах языков программирования было представлено четыре-шесть (или даже больше) языков программирования и обсуждались их идиомы программирования и их реализация на высоком уровне. Наиболее успешные книги обычно охватывали ALGOL 60 (и так называемое семейство языков программирования Algol), SNOBOL , Lisp и Prolog . Даже сегодня немалое количество учебников по языкам программирования представляют собой именно такие обзоры, хотя их объем сузился.
EOPL была основана в 1983 году, когда Индиана была одним из ведущих отделов по исследованию языков программирования. Юджин Кольбекер, один из аспирантов Фридмана, записал и собрал его «311 лекций». Другие преподаватели, в том числе Митч Ванд и Кристофер Хейнс, начали вносить свой вклад и превратили «Автостопом по мета-вселенной» — как назвал его Кольбекер — в систематическое исследование, основанное на интерпретации и трансформации, которым оно является сейчас. За 25 лет своего существования книга стала почти классикой; сейчас оно находится в третьем издании, включая дополнительные темы, такие как типы и модули . Его первая часть теперь включает в себя идеи по программированию из HtDP , еще одного нетрадиционного учебника, в котором Scheme используется для обучения принципам проектирования программ. Авторы, а также Мэтью Флэтт недавно предоставили DrRacket плагины и языковые уровни для обучения с помощью EOPL.
EOPL породил как минимум два других родственных текста: [2] Лисп в маленьких кусочках [3] и «Языки программирования Кришнамурти : применение и интерпретация» .
См. также [ править ]
Ссылки [ править ]
- ^ «Митчелл Ванд» . Массачусетский технологический институт Пресс . Проверено 5 августа 2019 г.
- ^ «Домашняя страница Кристиана Кейннека» . страницы.lip6.fr . Проверено 20 мая 2020 г.
- ^ «Книга и код LiSP К. Кейннека» . страницы.lip6.fr . Проверено 20 мая 2020 г.