Основы языков программирования

Основы языков программирования
АвторДэниел П. Фридман , Митчелл Ванд , Кристофер Т. Хейнс
ПредметЯзыки программирования
ЖанрУчебник
ИздательИздательство Массачусетского технологического института
Дата публикации
Апрель 2008 г. (3-е изд.)
Страницы416
ISBN0-262-06279-8 (3-е изд.)
Класс LCQA76.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 породил по крайней мере два других связанных текста: «Lisp in Small Pieces » Квиннека [ 2] и «Языки программирования: применение и интерпретация» Кришнамурти .

Смотрите также

Ссылки

  1. ^ "Mitchell Wand". MIT Press . Получено 2019-08-05 .
  2. ^ "Домашняя страница Кристиана Квиннека". pages.lip6.fr . Получено 20.05.2020 .
  3. ^ "Книга и код LiSP К. Куиннека". pages.lip6.fr . Получено 2020-05-20 .
  • Домашняя страница авторов книги «Основы языков программирования», третье издание
  • Домашняя страница книги для первого издания
  • Страница EoPL на Schemewiki
Взято с "https://en.wikipedia.org/w/index.php?title=Основы_языков_программирования&oldid=1176821554"