Теория языка программирования

редактировать
Отрасль информатики Строчная греческая буква λ (лямбда ) является неофициальным символом теории языков программирования. Это использование происходит от лямбда-исчисления, модели вычислений, введенной Алонзо Черч в 1930-х годах и широко используемой исследователями языков программирования. Он украшает обложку классического текста Структура и интерпретация компьютерных программ и заголовок так называемых лямбда-документов 1975–1980 годов, написанных Джеральдом Джей Сассманом. и Гай Стил, разработчики языка программирования схем.

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

Содержание

  • 1 История
    • 1.1 1950-е
    • 1.2 1960-е
    • 1.3 1970-е
    • 1.4 1980-е
    • 1.5 1990-е
  • 2 Поддисциплины и связанные области
    • 2.1 Формальная семантика
    • 2.2 Теория типов
    • 2.3 Анализ и преобразование программ
    • 2.4 Сравнительный анализ языков программирования
    • 2.5 Общее и метапрограммирование
    • 2.6 Доменно-ориентированные языки
    • 2.7 Создание компилятора
    • 2.8 Время выполнения систем
  • 3 Журналы, публикации и конференции
  • 4 См. также
  • 5 Ссылки
  • 6 Дополнительная литература
  • 7 Внешние ссылки

История

В некотором смысле история теории языков программирования предшествовали даже развитию самих языков программирования. лямбда-исчисление, разработанное Алонзо Черч и Стивеном Коулом Клини в 1930-х годах, некоторые считают, что это первый язык программирования в мире, хотя он и был предназначен для моделирования вычислений, а не для того, чтобы быть средством для программистов описания алгоритмов для компьютерной системы. Многие современные языки функционального программирования были описаны как обеспечивающие «тонкую оболочку» над лямбда-исчислением, и многие из них легко описываются в терминах этого.

Первым языком программирования, который был изобретен, был Plankalkül, который был разработан Конрадом Цузе в 1940-х годах, но не был широко известен до 1972 года (и не был реализован до 1998 года.). Первым широко известным и успешным языком программирования высокого уровня был Fortran, разработанный с 1954 по 1957 год группой исследователей IBM во главе с Джоном Бэкусом.. Успех FORTRAN привел к формированию комитета ученых для разработки «универсального» компьютерного языка; Результатом их усилий стал АЛГОЛ 58. Отдельно Джон Маккарти из Массачусетского технологического института разработал язык программирования Lisp (на основе лямбда-исчисления), первый язык с академическими корнями, который был успешным. Благодаря успеху этих первоначальных усилий языки программирования стали активной темой исследований в 1960-х годах и позже.

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

1950-е

1960-е

1970-е годы

1980-е годы

1990-е годы

Поддисциплины и связанные поля

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

формальную семантику

Формальная семантика - это формальная спецификация поведения компьютерных программ и языков программирования. Три распространенных подхода к описанию семантики или «значения» компьютерной программы: денотационная семантика, операционная семантика и аксиоматическая семантика.

Теория типов

Теория типов - это изучение систем типов ; которые являются «понятным синтаксическим методом для доказательства отсутствия определенного поведения программы путем классификации фраз по типам вычисляемых ими значений». Многие языки программирования различаются по характеристикам систем типов.

Анализ и преобразование программы

Анализ программы - это общая проблема исследования программы и определения ключевых характеристик (таких как отсутствие классов программных ошибок ). Преобразование программы - это процесс преобразования программы из одной формы (языка) в другую.

Сравнительный анализ языков программирования

Сравнительный анализ языков программирования стремится классифицировать языки программирования на различные типы на основе их характеристик; широкие категории языков программирования часто известны как парадигмы программирования.

Общее и метапрограммирование

Метапрограммирование - это генерация программ высшего порядка, которые при выполнении создают программы (возможно, на другом языке или в подмножестве исходного языка) в результате.

Доменные языки

Доменные языки - это языки, созданные для эффективного решения проблем в определенной части предметной области.

Конструирование компилятора

Компилятор теория - это теория написания компиляторов (или, в более общем смысле, переводчиков); программы, которые переводят программу, написанную на одном языке, в другую форму. Действия компилятора традиционно делятся на синтаксический анализ (сканирование и синтаксический анализ ), семантический анализ (определение того, что программа должна делать), оптимизация (улучшение производительность программы, определяемая некоторой метрикой; обычно скорость выполнения) и генерация кода (генерация и вывод эквивалентной программы на некотором целевом языке; часто набор инструкций ЦП).

Системы времени выполнения

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

Журналы, публикации и конференции

Конференции являются основным местом проведения исследований по языкам программирования. Наиболее известные конференции: Симпозиум по принципам языков программирования (POPL), Разработка и реализация языков программирования (PLDI), Международная конференция по функциональному программированию (ICFP), Международная конференция по объектно-ориентированному программированию, системам, языкам и приложениям (OOPSLA) и Международная конференция по архитектурной поддержке языков программирования и операционных систем (ASPLOS).

Известные журналы, публикующие исследования PLT, включают ACM Transactions on Programming Languages ​​and Systems (TOPLAS), Journal of Functional Programming (JFP), Journal of Функциональное и логическое программирование и Высшие порядковые и символьные вычисления.

См. Также

Ссылки

Дополнительная литература

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

Викискладе есть материалы, связанные с теорией языка программирования.
Последняя правка сделана 2021-06-02 07:49:47
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте