stringtranslate.com

Семантика (информатика)

В теории языков программирования семантика это строгое математическое исследование значения языков программирования . [1] Семантика присваивает вычислительное значение допустимым строкам в синтаксисе языка программирования . Оно тесно связано с семантикой математических доказательств и часто пересекается с ней .

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

История

В 1967 году Роберт Флойд опубликовал статью «Присвоение значения программам» ; его главной целью был «строгий стандарт доказательств компьютерных программ, включая доказательства правильности , эквивалентности и прекращения». [2] [3] Далее Флойд писал: [2]

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

В 1969 году Тони Хоар опубликовал статью о логике Хоара , основанную на идеях Флойда, которую теперь иногда все вместе называют аксиоматической семантикой . [4] [5]

В 1970-х годах появились термины операционная семантика и денотационная семантика . [5]

Обзор

Область формальной семантики охватывает все следующее:

Он имеет тесные связи с другими областями информатики, такими как проектирование языков программирования , теория типов , компиляторы и интерпретаторы , верификация программ и проверка моделей .

Подходы

Существует множество подходов к формальной семантике; они относятся к трем основным классам:

Помимо выбора между денотативным, операционным или аксиоматическим подходами, большинство вариаций формальных семантических систем возникает из-за выбора поддерживающего математического формализма. [ нужна цитата ]

Вариации

Некоторые варианты формальной семантики включают следующее:

Описание отношений

По ряду причин может возникнуть желание описать отношения между различными формальными семантиками. Например:

Также возможно связать множественную семантику через абстракции с помощью теории абстрактной интерпретации . [ нужна цитата ]

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

Рекомендации

  1. ^ Гоген, Джозеф А. (1975). «Семантика вычислений». Теория категорий в применении к вычислениям и управлению . Конспекты лекций по информатике. Том. 25. Спрингер . стр. 151–163. дои : 10.1007/3-540-07142-3_75. ISBN 978-3-540-07142-6.
  2. ^ аб Флойд, Роберт В. (1967). «Придание значения программам» (PDF) . В Шварце, Дж. Т. (ред.). Математические аспекты информатики. Материалы симпозиума по прикладной математике. Том. 19. Американское математическое общество. стр. 19–32. ISBN 0821867288.
  3. ^ Кнут, Дональд Э. «Мемориальная резолюция: Роберт В. Флойд (1936–2001)» (PDF) . Мемориалы факультетов Стэнфордского университета . Стэнфордское историческое общество.
  4. ^ Хоар, ЦАР (октябрь 1969 г.). «Аксиоматическая основа компьютерного программирования». Коммуникации АКМ . 12 (10): 576–580. дои : 10.1145/363235.363259 . S2CID  207726175.
  5. ^ Аб Винскель, Глинн (1993). Формальная семантика языков программирования: введение. Кембридж, Массачусетс: MIT Press. п. хв. ISBN 978-0-262-23169-5.
  6. ^ Шмидт, Дэвид А. (1986). Денотационная семантика: методология развития языка . Издательство Уильяма К. Брауна. ISBN 9780205104505.
  7. ^ Плоткин, Гордон Д. (1981). Структурный подход к операционной семантике (Отчет). Технический отчет DAIMI FN-19. Кафедра компьютерных наук Орхусского университета .
  8. ^ Аб Гоген, Джозеф А .; Тэтчер, Джеймс В.; Вагнер, Эрик Г.; Райт, Джесси Б. (1977). «Начальная семантика алгебры и непрерывные алгебры». Журнал АКМ . 24 (1): 68–95. дои : 10.1145/321992.321997 . S2CID  11060837.
  9. ^ Моссес, Питер Д. (1996). Теория и практика семантики действия (Доклад). Отчет БРИКС RS9653. Орхусский университет .
  10. ^ Дерансар, Пьер; Журдан, Мартен; Лорхо, Бернар (1988). «Грамматики атрибутов: определения, системы и библиография . Конспекты лекций по информатике 323. Springer-Verlag . ISBN» . 9780387500560.
  11. ^ Ловер, Ф. Уильям (1963). «Функториальная семантика алгебраических теорий». Труды Национальной академии наук Соединенных Штатов Америки . 50 (5): 869–872. Бибкод : 1963PNAS...50..869L. дои : 10.1073/pnas.50.5.869 . ПМК 221940 . ПМИД  16591125. 
  12. ^ Анджей Тарлецкий; Род М. Берстолл ; Джозеф А. Гоген (1991). «Некоторые фундаментальные алгебраические инструменты для семантики вычислений: Часть 3. Индексированные категории». Теоретическая информатика . 91 (2): 239–264. дои : 10.1016/0304-3975(91)90085-G .
  13. ^ Бэтти, Марк; Мемариан, Кайван; Ниенхейс, Киндилан; Пишон-Фарабод, Жан; Сьюэлл, Питер (2015). «Проблема семантики параллелизма языка программирования» (PDF) . Труды Европейского симпозиума по языкам и системам программирования . Спрингер . стр. 283–307. дои : 10.1007/978-3-662-46669-8_12 .
  14. ^ Абрамский, Самсон (2009). «Семантика взаимодействия: введение в семантику игры». У Эндрю М. Питтса; П. Дюбьер (ред.). Семантика и логика вычислений. Издательство Кембриджского университета. стр. 1–32. дои : 10.1017/CBO9780511526619.002. ISBN 9780521580571.
  15. ^ Дейкстра, Эдсгер В. (1975). «Защищенные команды, неопределенность и формальный вывод программ». Коммуникации АКМ . 18 (8): 453–457. дои : 10.1145/360933.360975 . S2CID  1679242.

дальнейшее чтение

Учебники
Конспект лекций

Внешние ссылки