Knowledge

Language workbench

Source 📝

471: 83:
is a tool for designing domain-specific languages. It uses projectional editing which allows overcoming the limits of language parsers, and building DSL editors, such as ones with tables and diagrams. It implements language-oriented programming. MPS combines an environment for language definition, a
138:
is an open-source software framework for developing programming languages and domain-specific languages (DSLs). Unlike standard parser generators, Xtext generates not only a parser, but also a class model for the abstract syntax tree. In addition, it provides a fully featured, customizable
144:
Meeduse is an EMF-based framework that allows one to build, prove and animate executable domain-specific languages (xDSLs) using the B Method. The tool embeds ProB, and animator and model-checker of the B
101:
Melange is a language workbench that provides a modular approach for customizing, assembling and integrating multiple domain-specific language (DSL) specifications and implementations.
90:
is an open-source academic language workbench. The Kermeta workbench uses three different meta-languages: one meta-language for the abstract syntax (aligned with
240:
Feltey, Daniel; Florence, Spencer P.; Knutson, Tim; St-Amour, Vincent; Culpepper, Ryan; Flatt, Matthew; Findler, Robert Bruce; Felleisen, Matthias (2016).
71:
is a cross-platform language development workbench including compiler, JIT compiler, IDE and command-line tools designed to accommodate creating both
508: 365:
Proceedings of the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2010
29: 24:
software development paradigm. A language workbench will typically include tools to support the definition, reuse and composition of
33: 107:. is an open-source language workbench for generating parsers, type checkers, compilers, interpreters, as well as IDE plugins for 537: 155: 68: 21: 532: 527: 170: 116: 95: 542: 501: 72: 50: 25: 75:
and completely new languages with facilities to add new notation, constrain constructs, and create IDE tools.
165: 293: 56: 494: 120: 360: 127: 108: 160: 104: 413: 368: 361:"The Spoofax language workbench: rules for declarative specification of languages and IDEs." 241: 219: 478: 451: 271: 194: 84:
language workbench, and an Integrated Development Environment (IDE) for such languages.
521: 80: 270:
Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M. (2011).
418: 401: 123: 372: 98:) and one for the behavioral semantics (called the Kermeta Language itself). 44: 470: 55:
Specification of the execution semantics, e.g. through interpretation and
402:"Alliance of Model Driven Engineering with a proof-based Formal Approach" 112: 87: 456: 433: 220:"Language Workbenches: The Killer-App for Domain Specific Languages?" 406:
Innovations in Systems and Software Engineering (ISSE), NASA Journal
20:
is a tool or set of tools that enables software development in the
135: 317: 91: 386: 345: 32:. Language workbenches were introduced and popularized by 331: 400:
Idani, Akram; Ledru, Yves; Vega, German (December 2020).
482: 49:Specification of the editing environments for the 318:"JetBrains MPS: Domain-Specific Language Creator" 279:Programming Language Design and Implementation 94:); one for the static semantics (aligned with 502: 8: 359:Kats, Lennart C. L.; Visser, Eelco (2010). 213: 211: 188: 186: 509: 495: 43:Specification of the language concepts or 417: 126:for syntax, and formalisms derived from 182: 39:Language workbenches usually support: 7: 467: 465: 30:integrated development environment 14: 249:2016 Language Workbench Challenge 469: 346:"The Spoofax Language Workbench" 218:Fowler, Martin (12 June 2005). 294:"Creating Languages in Racket" 1: 156:Language-oriented programming 22:language-oriented programming 481:. You can help Knowledge by 477:This computing article is a 457:Language Workbench Challenge 171:Category:Language workbench 559: 464: 419:10.1007/s11334-020-00366-3 242:"Languages the Racket Way" 298:Communications of the ACM 73:domain-specific languages 26:domain-specific languages 272:"Languages as Libraries" 51:domain-specific language 373:10.1145/1869459.1869497 292:Flatt, Matthew (2012). 166:Intentional programming 538:Software development 28:together with their 195:"LanguageWorkbench" 533:2005 introductions 528:Language workbench 452:Language Workbench 139:Eclipse-based IDE. 18:language workbench 490: 489: 161:Compiler-compiler 550: 511: 504: 497: 473: 466: 438: 437: 430: 424: 423: 421: 397: 391: 390: 383: 377: 376: 356: 350: 349: 342: 336: 335: 328: 322: 321: 314: 308: 307: 305: 304: 289: 283: 282: 276: 267: 261: 260: 258: 256: 246: 237: 231: 230: 228: 226: 215: 206: 205: 203: 201: 193:Fowler, Martin. 190: 558: 557: 553: 552: 551: 549: 548: 547: 543:Computing stubs 518: 517: 516: 515: 462: 450:Martin Fowler, 447: 442: 441: 432: 431: 427: 399: 398: 394: 385: 384: 380: 358: 357: 353: 344: 343: 339: 330: 329: 325: 316: 315: 311: 302: 300: 291: 290: 286: 274: 269: 268: 264: 254: 252: 244: 239: 238: 234: 224: 222: 217: 216: 209: 199: 197: 192: 191: 184: 179: 152: 65: 57:code generation 12: 11: 5: 556: 554: 546: 545: 540: 535: 530: 520: 519: 514: 513: 506: 499: 491: 488: 487: 474: 460: 459: 454: 446: 445:External links 443: 440: 439: 425: 412:(3): 289–307. 392: 378: 351: 337: 323: 309: 284: 262: 232: 207: 181: 180: 178: 175: 174: 173: 168: 163: 158: 151: 148: 147: 146: 141: 140: 132: 131: 130:for semantics. 102: 99: 85: 77: 76: 64: 61: 60: 59: 53: 47: 13: 10: 9: 6: 4: 3: 2: 555: 544: 541: 539: 536: 534: 531: 529: 526: 525: 523: 512: 507: 505: 500: 498: 493: 492: 486: 484: 480: 475: 472: 468: 463: 458: 455: 453: 449: 448: 444: 435: 429: 426: 420: 415: 411: 407: 403: 396: 393: 388: 382: 379: 374: 370: 366: 362: 355: 352: 347: 341: 338: 333: 327: 324: 319: 313: 310: 299: 295: 288: 285: 280: 273: 266: 263: 250: 243: 236: 233: 221: 214: 212: 208: 196: 189: 187: 183: 176: 172: 169: 167: 164: 162: 159: 157: 154: 153: 149: 143: 142: 137: 134: 133: 129: 125: 122: 118: 114: 110: 106: 103: 100: 97: 93: 89: 86: 82: 81:JetBrains MPS 79: 78: 74: 70: 67: 66: 62: 58: 54: 52: 48: 46: 42: 41: 40: 37: 35: 34:Martin Fowler 31: 27: 23: 19: 483:expanding it 476: 461: 428: 409: 405: 395: 381: 364: 354: 340: 326: 312: 301:. Retrieved 297: 287: 278: 265: 253:. Retrieved 248: 235: 223:. Retrieved 198:. Retrieved 38: 17: 15: 128:Stratego/XT 121:scannerless 522:Categories 303:2012-04-08 177:References 124:GLR parser 115:. It uses 434:"Meeduse" 332:"Melange" 45:metamodel 36:in 2005. 225:14 April 200:14 April 150:See also 113:IntelliJ 63:Examples 387:"Xtext" 145:Method. 109:Eclipse 105:Spoofax 88:Kermeta 255:9 June 119:and a 69:Racket 275:(PDF) 245:(PDF) 136:Xtext 479:stub 257:2019 251:(65) 227:2015 202:2015 111:and 92:Emof 414:doi 369:doi 117:SDF 96:OCL 524:: 408:. 404:. 367:. 363:. 296:. 277:. 247:. 210:^ 185:^ 16:A 510:e 503:t 496:v 485:. 436:. 422:. 416:: 410:6 389:. 375:. 371:: 348:. 334:. 320:. 306:. 281:. 259:. 229:. 204:.

Index

language-oriented programming
domain-specific languages
integrated development environment
Martin Fowler
metamodel
domain-specific language
code generation
Racket
domain-specific languages
JetBrains MPS
Kermeta
Emof
OCL
Spoofax
Eclipse
IntelliJ
SDF
scannerless
GLR parser
Stratego/XT
Xtext
Language-oriented programming
Compiler-compiler
Intentional programming
Category:Language workbench


"LanguageWorkbench"

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.