[comp.lang.pascal] need modifiable source for clean interpreter written in an HLL

johnl@ima.UUCP (06/29/87)

I am looking for the source code for a nice, clean interpreter, preferably
written in C for UNIX.  Any target language will do, with a preference for
C, or Pascal, or maybe Smalltalk or Scheme (if we can cope with the memory
complexity -- see below).

This interpreter is needed to test a very strange pseudo-memory architecture.
That is, we would like to be able to convert all memory reads and writes to
subroutine calls to a database that "looks like a memory" to the interpreter.
(That is, all of the program variables' values would be stored in the database,
though the program's code can be stored in plain memory.)

Another desideratum is that we would like to be able to associate chunks of
the interpreter's operation with target-language instructions.  We need to
keep track of which "step of the program" each chunk of the interpreter's
operation represents.  (For single-stepping, etc.)

The point of this experiment is to construct a useful interpreter that can
be run backwards.  (We've already got a prototype, but we're going to scrap
it and start over for the real McCoy.)  Our pseudo-memory is really a database
of previous values of memory locations, and can be "backed up" to any
previous state.

The language interpreted doesn't have to be a complete one, but a useful
subset would be nice, so we can test the data-compression algorithms in our
database on some relatively realistic and varied programs.  Something with
an existing body of actual code, like Small-C, would be ideal. 

We also want to be able to examine stack frames, etc.  This combination of
features means that elegant, straightforward design is much more important
than efficiency.  In fact, my guess is that we will have to write our own
from scratch.  But if anybody knows any nice, clean, interpreters written
in a high-level language, please let me know.

Cost IS a factor.  We'd really like to be able to give our system away when
we're finished with it.

(By the way, if anybody has addresses, especially net addresses, for the
people behind Little Smalltalk and Tiny C, please e-mail them to me.)

Please reply directly to me at the address below.  (Don't trust the address
fields in the header.)  If people express interest, I'll summarize to the net.
Thanks,

| Paul R. Wilson       ph.: (312) 947-0740      uucp: ...!ihnp4!uicbert!wilson |
| Electronic Mind Control* Lab     if no answer: ...ihnp4!gargoyle!sphinx!code |
| UIC EECS Dept. (M/C 154)               arpa: uicbert!wilson@uxc.cso.uiuc.edu |
| P.O.Box 4348   Chicago,IL 60680       (*a.k.a. Human-Computer Interaction)   |
--
Send compilers articles to ima!compilers or, in a pinch, to Levine@YALE.ARPA
Plausible paths are { ihnp4 | decvax | cbosgd | harvard | yale | cca}!ima
Please send responses to the originator of the message -- I cannot forward
mail accidentally sent back to compilers.  Meta-mail to ima!compilers-request