Jump to content

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

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

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

История [ править ]

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

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

Хронология [ править ]

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

1950-е годы
  • Ноам Хомский разработал иерархию Хомского в области лингвистики, открытие, которое напрямую повлияло на теорию языков программирования и другие отрасли информатики.
1960-е годы
1970-е годы
1980-е годы
1990-е годы

Субдисциплины и смежные области [ править ]

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

Формальная семантика [ править ]

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

Теория типов [ править ]

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

Анализ и трансформация программы [ править ]

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

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

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

Generic and metaprogramming [ edit ]

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

Языки, специфичные для предметной области [ править ]

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

Конструкция компилятора [ править ]

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

Системы времени выполнения [ править ]

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

Журналы, публикации и конференции [ править ]

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

Известные журналы, публикующие исследования PLT, включают транзакции ACM на языках и системах программирования (TOPLAS), Журнал функционального программирования (JFP), Журнал функционального и логического программирования , а также Вычисления высшего порядка и символические вычисления .

См. также [ править ]

Ссылки [ править ]

  1. ^ Абельсон, Гарольд (1996). Структура и интерпретация компьютерных программ . Джеральд Джей Сассман, Джули Сассман (2-е изд.). Кембридж, Массачусетс: MIT Press. ISBN  0-262-01153-0 . OCLC   34576857 .
  2. ^ «Модели вычислений» . wiki.c2.com . 3 декабря 2014 г. Архивировано из оригинала 30 ноября 2020 г.
  3. ^ К. Бём и В. Гросс (1996). Знакомство с CUCH. В ER Caianiello (ред.), Теория автоматов , стр. 35-64/
  4. ^ Бенджамин К. Пирс. 2002. Типы и языки программирования . MIT Press, Кембридж, Массачусетс, США.

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d0d24760d9ec9dd4a0c8e3c5578d2b39__1711207980
URL1:https://arc.ask3.ru/arc/aa/d0/39/d0d24760d9ec9dd4a0c8e3c5578d2b39.html
Заголовок, (Title) документа по адресу, URL1:
Programming language theory - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)