14.3.3 Generators
Section 11.2 already looked at different types of generator facilities and many of the
features that are desirable in such tools and languages. Here we shall brie?¬‚y recap the
maindesirable points of the languages,andconcentrateonthe tool support for theiruse.
High Level of Abstraction The language for de?¬?ning generators should be at a
high level of abstraction. While building a generator, the developer has to cope with
the language of the models, as well as the language he is trying to output. Both of these
take their own slice out of the available brain power, so the less required by the
generator language the better.
If the syntax of the generator language is similar to the syntax of the output, it
becomes dif?¬?cult for the brain to separate ?¬?xed text parts from the generator
language??”even with good syntax highlighting. While there is obviously some bene?¬?t
to using a familiar language, the worst possible case is when the language being
generated is the same as the language used to generate it. Such a situation often leads
to ???metalevel blindness???, or in this case deafness: as we try to understand a program,
we often read it to ourselves, and the lack of verbal cues to separate generator from
generated easily leads to errors.
380 TOOLS FOR DSM
Concise, Powerful Navigation A large part of the task of a generator is to
traverse the models, so the generator language must have concise yet powerful
constructs for model navigation.
Pages:
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729