Есть ли обзор семантики различных функций языка программирования?

12

Есть ли обзор (из бумаги, главы книги, учебника, ссылок, ...) семантики различных функций языка программирования? Первоначально я был поражен возможностями D здесь http://www.digitalmars.com/d/2.0/comparison.html

Я хотел бы посмотреть, что я мог бы получить отсюда, хотя я задал похожий вопрос по stackoverflow и понимаю, что эти два сайта имеют разные перспективы.

Очень ценю ваш ответ! Спасибо Дэйву Кларку за его предложение о мета

Тим
источник
Я думаю, что этот вопрос поднимает интересную проблему: семантика языков программирования все еще является областью исследований в лаборатории или она готова к дневному свету? Если он готов к дневному свету, то должны быть сборники, в которых указано, как описать семантику каждой функции языка программирования, чтобы будущие разработчики языка могли искать их при разработке своих языков. Я думаю, что стоит задуматься, куда мы хотим идти отсюда.
Удай Редди

Ответы:

17

Я не знаю ни одного обзора семантики различных языковых особенностей, хотя есть много книг, посвященных семантике языков программирования. Вот некоторые из более полных, которые также имеют дело с менее стандартными конструкциями:

  • Концепции дизайна в языках программирования Фрэнклин Турбак, Дэвид Гиффорд и Марк Шелдон. Гигантская книга, полная семантики различных языковых конструкций.

  • Концепции, методы и модели компьютерного программирования Питера Ван Роя и Сейфа Хариди. Эта книга фокусируется в основном на понятиях с точки зрения языка Оз. Каждый пример в книге работает. В конце книги есть глава или две, в которых обсуждается формальная семантика языковых конструкций.

Более классические тексты, в которых больше внимания уделяется семантическим методам, чем разнообразным конструкциям языка программирования, включают:

  • Типы и языки программирования Бенджамина Пирса. Книга о системах типов. Основное внимание уделяется функциональным языковым конструкциям при одновременном повышении сложности системы типов. Он также охватывает Featherweight Java, ядро ​​Java.

  • Переходы и деревья Ганса Хаттеля. Хорошее введение в операционную семантику, охватывающее различные языковые конструкции возрастающей сложности.

  • Семантика с приложениями от Hanne Riis Nielson и Flemming Nielson. Введение в различные стили семантики, включая некоторые неочевидные их применения. Отличное чтение!

  • Структура типизированных языков программирования. Автор David A Schmidt. Твердая основополагающая книга.

  • Семантика языков программирования: структуры и методы. Автор Carl A Gunter. Еще одна основательная книга.

И, наконец, незавершенная, доступная для загрузки, « Практические основы для языков программирования » Боба Харпера, охватывающая множество функций языка программирования, гарантирующих, что все будет формализовано в процессе работы.

Я должен добавить, что если вы зададите более конкретный вопрос, вы получите более конкретный ответ. Многие научные труды дают семантику различным функциям языка программирования. Если вас заинтересовала какая-то особенность, я мог бы найти одну или две статьи по этой функции.

Дэйв Кларк
источник
11

Другая хорошая книга по операционной семантике - « Разработка семантики с помощью PLT Redex», написанная Матиасом Феллайзеном, Робби Финдлером и Мэттью Флаттом. Он начинается с изучения учебника семантики редукции и абстрактных машин, а также охватывает использование инструмента Redex для моделирования семантики языков программирования.

Сэм Тобин-Хохштадт
источник
5
Приятно видеть другого человека PL на борту.
Дейв Кларк