Prism Conclusion: Applicability to TUNES

Jim Little
Mon, 11 Jan 1999 20:36:08 -0700

Laurent Martelli wrote:
> >>>>> "Jim" == Jim Little <> writes:
> I would rather say that domain abstraction is the act of programming
> at the _right_ level considering the domain you are dealing with. If
> you are programming the memory management of an OS, you'll do
> low-level things, but that does not prevent you from using using
> domain abstractions, which will be virtual and physical adresses for
> instance.

That's exactly how I feel, too.  For more of my thoughts on the matter,
see my "Prism Rationale, Part 2" essay.  Here's an excerpt:

>* Semantic errors may be reduced by using a programmable system whose
>semantics are as close as possible to the semantics of the problem
>Use SQL.  Or, more simply, "Use the right tool for the job."  If you
>don't, you'll deserve the bugs you'll get.

I also go into this philosophy on my web site
( in "Paradigm-Independence: A
Philosophy of Software Engineering."  The conclusion is that not only
should we use domain abstraction, but we should use MULTIPLE domain

> Domain abstractions have been in my mind for a long time now. But
> belonging to several mailing lists with a rather high traffic
> prevented me from reading with sufficient attention your mails.
> I'll try to have a look at them, but I must say that I am a little
> buusy those days.

Prism is sort of a "language laboratory."  It allows you to define
whatever domain abstractions you want (in the form of metamodels) and
even mix several compatible domain abstractions together while creating
a program.  If domain abstraction has been on your mind and you want to
experiment with creating some new abstractions, I suggest that Prism
would be a good platform for this.  Prism also has the ability to
compile programs written in your domain abstraction, although you have
to tell it how.

If you don't want to slog through the six essays I posted, then drop me
a line and ask questions specific to what you're interested in.  For
example, you might describe a domain abstraction you've been thinking
about, and I could describe how that domain could be formally
represented in Prism.  I'll try to be as brief as possible.  :)

Jim Little  (
Prism is at