Prism Metaprogramming Tool released

Jim Little
Sat, 23 Oct 1999 05:08:54 -0600

There's been a some talk lately about systems that 'are' or 'will be'
TUNES.  But if you look at those claims closely, you'll find little more
than some high-level ideas and some unfinished code.

Today, I released the first alpha version of the Prism Metaprogramming
Tool.  (Formerly the Prism Compiler.)  Prism is a metaprogramming
framework that provides the low-level services required for TUNES. 
Prism is not TUNES, but it IS a usable platform for creating TUNES.  And
it works.

I have just released:
* A working, feature-complete, Prism metaprogramming tool.
* Extensive, complete, and understandable documentation.
* A specific plan for moving forward.

Like the others, I need your help.  Unlike the others, I offer a usable
system to build upon and a specific plan.

Interested?  Read on.

Prism development will proceed in four phases:
* The "assembly language" phase.
* The "modern language" phase.
* The "domain-specific language" phase.
* The "TUNES" phase.

During each phase, we shall extend the Prism environment to support new
interoperable languages.  In the first phase, we'll teach Prism how to
add and subtract.  In the second phase, we'll add interoperable
structured and object-oriented languages.  In the third, we'll add
domain-specific languages such as a GUI language, a database language,
etc.  And in the last phase, we'll extend the "language" paradigm to
include "interactive languages" like spreadsheets, word processors, and
other tools.  At that point, there will be no difference between using
and programming the computer, and we will have achieved TUNES' goals as
I understand them.

That's a lot of work, but each phase builds on the previous.  In the
first phase, we'll be using the equivalent of machine language to build
an assembler.  In the second, we'll use an assembler to build a
compiler.  Etc.  Each of these tools shall interoperate, causing the
total power of the system to increase combinatorially as new tools are

Here's the detailed plan for the first phase and the beginning of the
* Create a parser for integers
* Create programs to do integer arithmetic
* Add interoperability to the Prism virtual machine language
* Create an assembly language parser
(Phase 2)
* Create a simple interoperable procedural language
* Create a parser for the procedural language
* Create a compiler for the procedural language
* Use the procedural and assembly languages together to create more
* (etc)

If the idea of WORKING code and a SPECIFIC plan intrigues you, please
join the new list for Prism development:  Subscription
information and other links are listed below.

Jim Little

To subscribe to the Prism development list, visit:

For more information about Prism, visit:

To read about and download the metaprogramming tool, visit: