Challenge my assumptions!

Jim Little
Fri, 02 Jul 1999 23:03:00 -0600


I'm in the middle of a big research push for Prism.  A lot of groundwork
is being laid for critical issues such as language interoperability. 
Before I get too far, I'd like you to challenge my fundamental Prism
assumptions.  It will soon be too late to change them easily.

Here they are:
1) The basic Prism data types (_Bit, _Stream, _Map) are SUFFICIENT to
represent any concept, particularly programs.

2) The basic Prism data types lend themselves to INTUITIVE metamodels
for representing specific types of concepts, especially programs.  I.e.,
it's EASY to create Prism metamodels (or, at least, they introduce
minimal added difficulty).

3) There is NO LIMIT on the range of metamodels that a person may
create.  Metamodels may be created for any human concept.  (This one
seems obvious to me, since metamodels are defined with natural language,
but hey! that's why it's an assumption...)

Fare, you once criticized my choice of _Bit, _Stream, and _Map for the
Prism meta-metamodel.  That's what I'm asking about now.  Does the
meta-metamodel meet my goals?  (If my assumptions are correct, it
does.)  Should I replace it with something else?  (If so, please explain
how the alternative also meets my goals, and how it is better.) 
Everyone else, please chime in!

Relevent goals:
1) Allow any concept to be modeled within the Prism environment.
2) Make it easy for the user to create metamodels.
3) Allow Prism models to be understood, manipulated, and transformed by
outside observers (humans & programs) if their metamodel is known and


Prism is at