Языковой инструмент - Википедия - Language workbench

А языковой верстак[1][2] это инструмент или набор инструментов, которые позволяют разрабатывать программное обеспечение в языковое программирование[2] парадигма разработки программного обеспечения. Инструментальные средства языка обычно включают инструменты для поддержки определения, повторного использования и композиции предметно-ориентированные языки вместе со своими интегрированная среда развития. Языковые рабочие места были представлены и популяризированы Мартин Фаулер в 2005 году.

Языковые рабочие места обычно поддерживают:[1]

Примеры

  • Ракетка - это инструментальная среда для разработки кроссплатформенных языков, включающая компилятор, JIT-компилятор, IDE и инструменты командной строки, предназначенные для создания как предметно-ориентированные языки и совершенно новые языки с возможностями для добавления новых обозначений, ограничения конструкций и создания инструментов IDE.[3][4][5]
  • JetBrains MPS это инструмент для разработки предметно-ориентированных языков. Он использует проекционное редактирование, которое позволяет преодолеть ограничения языковых парсеров и создавать редакторы DSL, например, с таблицами и диаграммами. Он реализует языково-ориентированное программирование. MPS объединяет среду для определения языка, языковую рабочую среду и интегрированную среду разработки (IDE) для таких языков.[6]
  • Kermeta это рабочая среда академического языка с открытым исходным кодом.[7] Среда Kermeta использует три разных метаязыка: один метаязык для абстрактного синтаксиса (согласованный с Emof ); один для статической семантики (согласован с OCL ) и один для поведенческой семантики (называемый самим языком Kermeta).
  • Melange - это языковая рабочая среда, которая обеспечивает модульный подход для настройки, сборки и интеграции нескольких спецификаций и реализаций предметно-ориентированного языка (DSL).[8]
  • Подделка.[9] это инструментальная среда с открытым исходным кодом для создания парсеров, средств проверки типов, компиляторов, интерпретаторов, а также плагинов IDE для Затмение и IntelliJ.[10] Оно использует SDF и без сканера Парсер GLR для синтаксиса и формализмов, производных от Stratego / XT для семантики.
  • Xtext - это программная среда с открытым исходным кодом для разработки языков программирования и предметно-ориентированных языков (DSL). В отличие от стандартных генераторов парсеров, Xtext генерирует не только парсер, но и модель классов для абстрактного синтаксического дерева. Кроме того, он предоставляет полнофункциональную настраиваемую среду IDE на основе Eclipse.[11]

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

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

  1. ^ а б Фаулер, Мартин. "LanguageWorkbench". Получено 14 апреля 2015.
  2. ^ а б Фаулер, Мартин (12 июня 2005 г.). "Language Workbenches: приложение-убийца для языков, специфичных для предметной области?". Получено 14 апреля 2015.
  3. ^ Фелтей, Дэниел; Флоренс, Спенсер П .; Кнутсон, Тим; Сент-Амур, Винсент; Калпеппер, Райан; Флэтт, Мэтью; Финдлер, Роберт Брюс; Фелляйзен, Маттиас (2016). "Ракетный язык" (PDF). Конкурс Language Workbench 2016 (65). Получено 9 июн 2019.
  4. ^ Tobin-Hochstadt, S .; St-Amour, V .; Culpepper, R .; Flatt, M ​​.; Фелляйзен, М. (2011). «Языки как библиотеки» (PDF). Разработка и реализация языков программирования.
  5. ^ Флатт, Мэтью (2012). «Создание языков в Racket». Коммуникации ACM. Получено 2012-04-08.
  6. ^ "JetBrains MPS: Создатель предметно-ориентированного языка".
  7. ^ Жезекель, Жан-Марк; Combemale, Бенуа; Баре, Оливье; Монперрус, Мартин; Фуке, Франсуа (2013). «Мэшап метаязыков и его реализация в языковой среде Kermeta» (PDF). Программное обеспечение и моделирование систем. 14 (2): 905–920. arXiv:1306.0760. Дои:10.1007 / s10270-013-0354-4.
  8. ^ "Меланж".
  9. ^ "Инструментальные средства Spoofax Language".
  10. ^ Kats, Lennart C.L .; Виссер, Элко (2010). "Инструментальные средства Spoofax: правила декларативной спецификации языков и IDE".. Материалы 25-й ежегодной конференции ACM SIGPLAN по объектно-ориентированному программированию, системам, языкам и приложениям, OOPSLA 2010. Дои:10.1145/1869459.1869497.
  11. ^ "Xtext".

внешняя ссылка