In making a decision about which concepts to include, it helps to use your
language for modeling and generate artifacts from it. Here, tools can help you, as
ideally they should allowyou to focus on language de?¬?nition only and provide various
modeling editors for your language instantly and automatically. This makes language
creation agile: you can easily test and learn what the language looks like in practice,
how it allows you to make and reuse models, and so on. This minimizes the risks of
making a bad language, or a good language but for the wrong task, and helps in ?¬?nding
good mappings for code generation. This kind of prototyping is best when language
design is something new for you or the domain is not yet completely de?¬?ned.
Metamodels for the Language De?¬?ner, Models for Others The possibility
of trying out your language speci?¬?cation immediately after you have de?¬?ned some of
the concepts signi?¬?cantly changes the role of metamodels. First, they are formal: you
can run them. Next, they formalize the domain knowledge in such a way that other
developers and stakeholders can understand it too. They may not be able to understand
the metamodel, but they will understand models created using terms they are familiar
with. Concrete example models allow to show the idea to other developers early and
make it easier for them to understand the ideas and contribute to the language.
Pages:
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452