How does a model compiler differ from a programming-language compiler?
Model compilers aren’t significantly different from traditional compilers. It’s just that the level of abstraction in the UML “programming language” is higher, so much so that the UML program is independent of its platform. You don’t even need to make decisions about data structures. A model compiler, is, in fact, exactly analogous to a programming language compiler but at a higher level of abstraction. Why exactly is UML at a “higher level of abstraction?” When we write a statement in C that if a == b then …, the C compiler turns this into assembly language that loads registers, maybe subtracts b from a, and jumps if the result is zero. On a different processor, it may do something altogether different. C has “abstracted away” the details of register allocation and even the concept of if, turning it into GOTOs (jump or branch instructions) we would normally eschew. When we write in UML that two classes have an association between them, we have abstracted away how the association is ma