----- Original Message -----
From: "Bob" <zzzzz at
sbcglobal.net
To: "General Discussion: On-Topic and Off-Topic Posts"
<cctalk at
classiccmp.org
Sent: Monday, October
23, 2006 2:28 PM
Subject: Re: Compilers vs. Interpreters
One can do things in an interpreted enviroment like
LISP with self
modifiable code
and the (eval) statement that can not be easily done
in a compiled
enviroment.
Many years ago, I programmed in a language
called CREDIT, running on Philips
P6000 series. This more-or-less interpreted language had some remarkable
features. It had a kernel handling the (1 byte) opcodes. For data, 16 blocks
(IIRC) were available, but redefinition was allowed. For each data item, max
16 per block, a table was kept specifying the peculiarities of each item.
So, a simple MOVE would demand 3 bytes : 1 for the opcode, 1 for the source
and 1 for the destination. A MOVE between two indexed items would take 5
bytes, as two bytes were needed for the indexes (1 byte each). This would
make it extremely easy to modify the instructions, as you didnt need to know
much about the data.
Also, the resulting code was so compact, that we could accommodate a
back-office routine for entering financial data (30-40 different record
types), plus a routine for transmitting the data via a 3270 connection,
within 32K bytes
Nico