This makes writing metaprograms easier, because they can be designed to work with specific metamodels. You can also write metaprograms for other people's models, or give other people your metamodels so they can write metaprograms for your models. In summary, the Prism tool is a general-purpose metaprogramming tool. It has features, such as the global heap, atoms, and metamodels, that make metaprogramming easier. The core of the Prism tool is the global heap, which stores all of your models.
Models are atoms that represent specific concepts, such as programs.
To explain what concept a model represents, you create a metamodel. At this point, you might be wondering what's the use of all this. Specifically, modern languages, IDE's, and CASE tools have all had a positive impact on productivity. Some more than others, but the advantage of C over assembly language is immediately obvious. Lately, we've hit a barrier.