Языко-ориентированное программирование ( LOP ) [1] - это парадигма разработки программного обеспечения, в которой «язык» - это строительный блок программного обеспечения с таким же статусом, что и объекты, модули и компоненты [2], а не решение проблем в языках программирования общего назначения. , программист сначала создает один или несколько предметно-ориентированных языков для задачи и решает ее на этих языках. Язык-ориентированное программирование впервые было описано подробно в 1994 документе Мартина Уорда языково-ориентированного программирования , [1] опубликовано в Программном обеспечении - Концепции и инструментах , vol.15, № 4, стр 147-161, 1994.
Концепция
Концепция ориентированного на язык программирования использует подход, чтобы зафиксировать требования в терминах пользователя, а затем попытаться создать язык реализации, максимально изоморфный пользовательским описаниям, чтобы соответствие между требованиями и реализацией было как можно более прямым. Мерой близости этого изоморфизма является «избыточность» языка, определяемая как количество операций редактирования, необходимых для реализации отдельного изменения требований. Априори не предполагается , какой язык является лучшим для реализации нового языка. Скорее, разработчик может выбирать среди вариантов, созданных путем анализа информационных потоков - какая информация собирается, какова ее структура, когда она получена, от кого и что с ней делается. [3]
Разработка
Ракетка (язык программирования) предназначена для поддержки языка-ориентированного программирования. [2] Инструментальные средства для других языков [4] , такие как JetBrains MPS , Kermeta или Xtext, предоставляют инструменты для разработки и реализации DSL и языково-ориентированного программирования [ необходима ссылка ]
Смотрите также
Рекомендации
- ^ a b Уорд, Мартин (1994). «Языко-ориентированное программирование» (PDF) . Программное обеспечение - концепции и инструменты . 15 (4): 147–161. DOI : 10.1007 / 978-1-4302-2390-0_12 . Дата обращения 15 мая 2019 .
- ^ а б Фелляйзен, Матиас; Финдлер, Роберт Брюс; Флатт, Мэтью; Кришнамурти, Шрирам; Барзилай, Эли; Маккарти, Джей; Тобин-Хохштадт, Сэм (март 2018 г.). «Программируемый язык программирования» . Коммуникации ACM . 61 (3): 62–71. DOI : 10.1145 / 3127323 . Дата обращения 15 мая 2019 .
- ^ Данлавей (1994). Создание лучших приложений: теория эффективной разработки программного обеспечения . International Thomson Publishing . ISBN 0-442-01740-5.
- ^ Фаулер, Мартин (12 июня 2005 г.). "Language Workbenches: приложение-убийца для языков, специфичных для предметной области?" . Проверено 14 апреля 2015 года .
Внешние ссылки
- Языко-ориентированное программирование: следующая парадигма программирования Статья Сергея Дмитриева, в которой эта тема более подробно исследуется.
- Языко-ориентированное программирование в MetaLisp Тезис Гьюри Лайоша 1992 г., Университет Лидса В системе использовался тот же алгоритм языка синтаксического анализа сверху вниз, что и для Tree-Meta.