Pracovní stůl jazyka - Language workbench - Wikipedia
A jazykový pracovní stůl[1][2] je nástroj nebo sada nástrojů, která umožňuje vývoj softwaru v jazykově orientované programování[2] paradigma vývoje softwaru. Jazyková pracovní plocha bude obvykle zahrnovat nástroje na podporu definice, opětovného použití a složení jazyky specifické pro doménu společně s jejich integrované vývojové prostředí. Jazykové pracovní stoly byly představeny a popularizovány Martin Fowler v roce 2005.
Jazykové pracovní stoly obvykle podporují:[1]
- Specifikace jazykových konceptů nebo metamodel
- Specifikace editačních prostředí pro jazyk specifický pro doménu
- Specifikace sémantiky provádění, např. prostřednictvím tlumočení a generování kódu
Příklady
- Raketa je pracovní platforma pro vývoj jazyků mezi platformami, včetně kompilátoru, kompilátoru JIT, IDE a nástrojů příkazového řádku navržených tak, aby vyhovovaly vytváření obou jazyky specifické pro doménu a zcela nové jazyky s vybavením pro přidání nové notace, omezení konstrukcí a vytváření nástrojů IDE.[3][4][5]
- JetBrains MPS je nástroj pro navrhování jazyků specifických pro doménu. Používá projekční úpravy, které umožňují překonat limity jazykových analyzátorů a vytvářet editory DSL, jako jsou například tabulky a diagramy. Implementuje jazykově orientované programování. MPS kombinuje prostředí pro definici jazyka, pracovní plochu jazyka a integrované vývojové prostředí (IDE) pro tyto jazyky.[6]
- Kermeta je open-source akademický jazykový pracovní stůl.[7] Pracovní stůl Kermeta používá tři různé metajazyky: jeden metajazyk pro abstraktní syntaxi (zarovnaný s Emof ); jeden pro statickou sémantiku (zarovnaný s OCL ) a jeden pro behaviorální sémantiku (nazývaný samotný jazyk Kermeta).
- Melange je jazykový pracovní stůl, který poskytuje modulární přístup k přizpůsobení, sestavení a integraci specifikací a implementací více doménových jazyků (DSL).[8]
- Spoofax.[9] je pracovní plocha s otevřeným zdrojovým jazykem pro generování analyzátorů, kontrolerů typu, překladačů, tlumočníků a IDE pluginů pro Zatmění a IntelliJ.[10] Využívá to SDF a a bez skeneru Analyzátor GLR pro syntaxi a formalizmy odvozené z Stratego / XT pro sémantiku.
- Xtext je open-source softwarový rámec pro vývoj programovacích jazyků a jazyků specifických pro doménu (DSL). Na rozdíl od standardních generátorů syntaktických analyzátorů generuje Xtext nejen syntaktický analyzátor, ale také model třídy pro abstraktní syntaxový strom. Kromě toho poskytuje plně vybavené přizpůsobitelné IDE založené na Eclipse.[11]
Viz také
- Jazykově orientované programování
- Překladač-překladač
- Záměrné programování
- Kategorie: Jazyková pracovní plocha
Reference
- ^ A b Fowler, Martin. „LanguageWorkbench“. Citováno 14. dubna 2015.
- ^ A b Fowler, Martin (12. června 2005). „Language Workbenches: The Killer-App for Domain specific languages?“. Citováno 14. dubna 2015.
- ^ Feltey, Daniel; Florence, Spencer P .; Knutson, Tim; St-Amour, Vincent; Culpepper, Ryan; Flatt, Matthew; Findler, Robert Bruce; Felleisen, Matthias (2016). „Jazyky raketovým způsobem“ (PDF). Výzva Language Workbench 2016 (65). Citováno 9. června 2019.
- ^ Tobin-Hochstadt, S .; St-Amour, V .; Culpepper, R .; Flatt, M .; Felleisen, M. (2011). „Jazyky jako knihovny“ (PDF). Návrh a implementace programovacího jazyka.
- ^ Flatt, Matthew (2012). „Vytváření jazyků v raketě“. Komunikace ACM. Citováno 2012-04-08.
- ^ „JetBrains MPS: Domain-Specific Language Creator“.
- ^ Jézéquel, Jean-Marc; Combemale, Benoit; Barais, Olivier; Monperrus, Martin; Fouquet, François (2013). "Mashup metajazyků a jeho implementace na pracovním stole v jazyce Kermeta" (PDF). Software a modelování systémů. 14 (2): 905–920. arXiv:1306.0760. doi:10.1007 / s10270-013-0354-4.
- ^ "Melanž".
- ^ „Pracovní stůl jazyka Spoofax“.
- ^ Kats, Lennart C.L .; Visser, Eelco (2010). „Pracovní stůl jazyka Spoofax: pravidla pro deklarativní specifikaci jazyků a IDE.“. Sborník z 25. výroční konference ACM SIGPLAN o objektově orientovaném programování, systémech, jazycích a aplikacích, OOPSLA 2010. doi:10.1145/1869459.1869497.
- ^ „Xtext“.
externí odkazy
- Martin Fowler, Jazyk Workbench
- Výzva Language Workbench
![]() | Tento počítačový článek je pahýl. Wikipedii můžete pomoci pomocí rozšiřovat to. |