Языковой инструментарий
инструментарий Языковой [1] [2] это инструмент или набор инструментов, который позволяет разрабатывать программное обеспечение в области языково-ориентированного программирования. [2] парадигма разработки программного обеспечения. Языковая среда обычно включает в себя инструменты для поддержки определения, повторного использования и композиции предметно-ориентированных языков вместе с их интегрированной средой разработки . Языковые инструменты были представлены и популяризированы Мартином Фаулером в 2005 году.
Языковые инструментальные средства обычно поддерживают: [1]
- Спецификация языковых концепций или метамодели
- Спецификация сред редактирования для предметно-ориентированного языка
- Спецификация семантики выполнения, например, посредством интерпретации и генерации кода.
Примеры [ править ]
- Racket — это кроссплатформенная среда разработки языков, включающая компилятор, JIT-компилятор, IDE и инструменты командной строки, предназначенные для создания как предметно-ориентированных языков , так и совершенно новых языков с возможностью добавления новых обозначений, ограничений конструкций и создания инструментов IDE. [3] [4] [5]
- JetBrains MPS — это инструмент для разработки предметно-ориентированных языков. Он использует проекционное редактирование, которое позволяет преодолеть ограничения языковых анализаторов, и создавать редакторы DSL, например, с таблицами и диаграммами. Он реализует языково-ориентированное программирование. MPS сочетает в себе среду определения языка, языковую среду и интегрированную среду разработки (IDE) для таких языков. [6]
- Kermeta — это академический языковой инструментарий с открытым исходным кодом. В рабочей среде Kermeta используются три разных мета-языка: один мета-язык для абстрактного синтаксиса (согласованный с Emof ); один для статической семантики (согласованный с OCL ) и один для поведенческой семантики (называемый самим языком Kermeta).
- Melange — это языковая среда, которая обеспечивает модульный подход для настройки, сборки и интеграции нескольких спецификаций и реализаций предметно-ориентированного языка (DSL). [7]
- Спуфакс . [8] — это языковая среда с открытым исходным кодом для создания парсеров, средств проверки типов, компиляторов, интерпретаторов, а также плагинов IDE для Eclipse и IntelliJ . [9] Он использует SDF и без сканирования анализатор GLR для синтаксиса, а также формализмы, полученные из Stratego/XT для семантики.
- Xtext — это программная среда с открытым исходным кодом для разработки языков программирования и предметно-ориентированных языков (DSL). В отличие от стандартных генераторов парсеров, Xtext генерирует не только парсер, но и модель классов для абстрактного синтаксического дерева. Кроме того, он предоставляет полнофункциональную настраиваемую интегрированную среду разработки на базе Eclipse. [10]
- Мед [11] — это платформа на основе EMF, которая позволяет создавать, проверять и анимировать исполняемые предметно-ориентированные языки (xDSL) с использованием метода B. В инструмент встроен ProB, аниматор и средство проверки моделей метода B. [12]
См. также [ править ]
- Языко-ориентированное программирование
- Компилятор-компилятор
- Преднамеренное программирование
- Категория:Языковой верстак
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б Фаулер, Мартин. «Языковой верстак» . Проверено 14 апреля 2015 г.
- ^ Jump up to: Перейти обратно: а б Фаулер, Мартин (12 июня 2005 г.). «Языковые инструменты: приложение-убийца для языков, специфичных для предметной области?» . Проверено 14 апреля 2015 г.
- ^ Фелти, Дэниел; Флоренс, Спенсер П.; Натсон, Тим; Сент-Амур, Винсент; Калпеппер, Райан; Флэтт, Мэтью; Финдлер, Роберт Брюс; Феллизен, Матиас (2016). «Языки как рэкет» (PDF) . Конкурс Language Workbench Challenge 2016 (65) . Проверено 9 июня 2019 г.
- ^ Тобин-Хохштадт, С.; Сент-Амур, В.; Калпеппер, Р.; Флэтт, М.; Феллайзен, М. (2011). «Языки как библиотеки» (PDF) . Проектирование и реализация языков программирования .
- ^ Флэтт, Мэтью (2012). «Создание языков в рэкете» . Коммуникации АКМ . Проверено 8 апреля 2012 г.
- ^ «JetBrains MPS: создатель предметно-ориентированного языка» .
- ^ «Меланж» .
- ^ «Языковая среда Spoofax» .
- ^ Кац, Леннарт CL; Виссер, Eelco (2010). «Языковая рабочая среда Spoofax: правила декларативной спецификации языков и IDE». . Материалы 25-й ежегодной конференции ACM SIGPLAN по объектно-ориентированному программированию, системам, языкам и приложениям, OOPSLA 2010 . дои : 10.1145/1869459.1869497 .
- ^ «Хтекст» .
- ^ Идани, Акрам; Ледрю, Ив; Вега, Германия (декабрь 2020 г.). «Альянс модельного проектирования с формальным подходом, основанным на доказательствах» . Инновации в системах и программной инженерии (ISSE), Журнал НАСА . 6 (3): 289–307. дои : 10.1007/s11334-020-00366-3 .
- ^ «Меедузе» .
Внешние ссылки [ править ]
- Мартин Фаулер, Language Workbench
- Задача языковой рабочей среды