Языко-ориентированное программирование
Языко-ориентированное программирование ( ЛОП ) [ 1 ] — это парадигма разработки программного обеспечения, в которой «язык» — это строительный блок программного обеспечения, имеющий тот же статус, что и объекты, модули и компоненты, [ 2 ] и вместо того, чтобы решать проблемы на языках программирования общего назначения , программист сначала создает один или несколько предметно-ориентированных языков (DSL) для решения проблемы и решает проблему на этих языках. Языко-ориентированное программирование было впервые подробно описано в статье Мартина Уорда « Языково-ориентированное программирование» в 1994 году . [ 1 ]
Концепция
[ редактировать ]Концепция языково-ориентированного программирования предполагает подход к описанию требований в терминах пользователя, а затем попытку создать язык реализации, максимально изоморфный описаниям пользователя, чтобы сопоставление между требованиями и реализацией было максимально прямым. Мерой близости этого изоморфизма является «избыточность» языка, определяемая как количество операций редактирования, необходимых для реализации отдельного изменения требований. не предполагается, Априори какой язык лучше всего подходит для реализации нового языка. Скорее, разработчик может выбирать среди вариантов, созданных путем анализа информационных потоков — какая информация будет получена, какова ее структура, когда она получена, от кого и что с ней делается. [ 3 ]
Разработка
[ редактировать ]Язык программирования Racket и RascalMPL были разработаны для поддержки языково-ориентированного программирования с нуля. [ 2 ] Другая языковая рабочая среда [ 4 ] такие инструменты, как JetBrains MPS , Kermeta или Xtext, предоставляют инструменты для разработки и реализации DSL и языково-ориентированного программирования. [ 5 ]
См. также
[ редактировать ]- Грамматически-ориентированное программирование
- Диалектирование
- Язык, специфичный для предметной области
- Расширяемое программирование
- Преднамеренное программирование
Ссылки
[ редактировать ]- ^ Jump up to: а б
- Уорд, Мартин (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 .
- ^ Jump up to: а б Феллайзен, Матиас; Финдлер, Роберт Брюс; Флэтт, Мэтью; Кришнамурти, Шрирам; Барзилай, Эли; Маккарти, Джей; Тобин-Хохштадт, Сэм (март 2018 г.). «Программируемый язык программирования» . Коммуникации АКМ . 61 (3): 62–71. дои : 10.1145/3127323 . S2CID 3887010 . Проверено 15 мая 2019 г.
- ^ Данлави (1994). Создание лучших приложений: теория эффективной разработки программного обеспечения . Международное издательство Томсон . ISBN 0-442-01740-5 .
- ^ Фаулер, Мартин (12 июня 2005 г.). «Языковые инструменты: приложение-убийца для языков, специфичных для предметной области?» . Проверено 14 апреля 2015 г.
- ^ Эрдвег, Себастьян (2013). «Современное состояние языковых средств» . Языковая инженерия программного обеспечения . Конспекты лекций по информатике. Том. 8225. стр. 197–217. дои : 10.1007/978-3-319-02654-1_11 . ISBN 978-3-319-02653-4 . S2CID 5234848 . Проверено 4 июля 2023 г.
Внешние ссылки
[ редактировать ]- Языко-ориентированное программирование: следующая парадигма программирования Статья Сергея Дмитриева, в которой более подробно исследуется эта тема.
- Современное состояние языковых инструментов. Выводы по результатам испытания Language Workbench. В: Материалы 6-й Международной конференции по языковой инженерии программного обеспечения (SLE'13). 2013.
- Языко-ориентированное программирование в MetaLisp. Диссертация Дюри Лайоша. 1992 г., Университет Лидса. Система использовала тот же самый алгоритм языка синтаксического анализа сверху вниз, который использовался в Tree-Meta.