stringtranslate.com

Языко-ориентированное программирование

Языко-ориентированное программирование ( LOP ) [1] — это парадигма разработки программного обеспечения, в которой «язык» — это строительный блок программного обеспечения, имеющий тот же статус, что и объекты, модули и компоненты, [2] и а не решение проблем на языках программирования общего назначения. , программист сначала создает один или несколько предметно-ориентированных языков (DSL) для решения проблемы и решает проблему на этих языках. Языко-ориентированное программирование было впервые подробно описано в статье Мартина Уорда « Языково-ориентированное программирование» в 1994 году , [1] , опубликованной в журнале Software – Concepts and Tools , Vol.15, No.4, стр. 147–161, 1994.

Концепция

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

Разработка

Язык программирования Racket и RascalMPL были разработаны для поддержки языково-ориентированного программирования с нуля. [2] Другие языковые инструменты [4] , такие как JetBrains MPS , Kermeta или Xtext , предоставляют инструменты для проектирования и реализации DSL и языково-ориентированного программирования. Эрдвег, Себастьян (2013). «Состояние языковых средств». Языковая инженерия программного обеспечения . Конспекты лекций по информатике. Том. 8225. стр. 197–217. дои : 10.1007/978-3-319-02654-1_11. ISBN 978-3-319-02653-4. S2CID  5234848 . Проверено 4 июля 2023 г.

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

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

  1. ^ аб
    • Уорд, Мартин (1994). «Языко-ориентированное программирование». Программное обеспечение – Концепции и инструменты . 15 (4): 147–161 . Проверено 15 мая 2019 г.
    • Пикеринг, Роберт (2010). «Языко-ориентированное программирование». Начало F# . Беркли: Апресс. стр. 327–349. дои : 10.1007/978-1-4302-2390-0_12. ISBN 978-1-4302-2389-4.
  2. ^ аб Феллейзен, Матиас; Финдлер, Роберт Брюс; Флэтт, Мэтью; Кришнамурти, Шрирам; Барзилай, Эли; Маккарти, Джей; Тобин-Хохштадт, Сэм (март 2018 г.). «Программируемый язык программирования». Коммуникации АКМ . 61 (3): 62–71. дои : 10.1145/3127323. S2CID  3887010 . Проверено 15 мая 2019 г.
  3. ^ Данлави (1994). Создание лучших приложений: теория эффективной разработки программного обеспечения . Международное издательство Томсон . ISBN 0-442-01740-5.
  4. Фаулер, Мартин (12 июня 2005 г.). «Языковые инструменты: приложение-убийца для языков, специфичных для предметной области?» . Проверено 14 апреля 2015 г.

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