Cameron MacKinnon <cmackin+nn@clearspot.net> wrote:
+---------------
| Sashank Varma wrote:
| > After I wrote my initial I reply, I began wondering about
| > why DEC was so supportive of Common Lisp in its early days. ...
|
| I thought that the PDP and VAX instruction sets were considered best for
| implementing Lisp. If your architecture is the best for a language,
| supporting the growth of that language is just smart marketing.
|
| Can anyone confirm, and maybe point to some specifics in the instruction
| set which were big wins?
+---------------
Dunno 'bout the VAX, but the PDP-10 instruction set architecture was
*wonderful* for Lisp:
- 36-bit words with 18-bit addresses, so a cons cell fit in a single word.
- Hardware stack manipulation instructions (*any* register [but 0] could
host a stack, though #o17 was the default convention), including stack-
based subroutine call/return (PUSHJ/POPJ).
- Almost every possible combination of half-word instructions, with
indexing. For example, assuming register "T0" has a Lisp object pointer
in it, here's an instruction sequence for CADDAR (leaves result in T0):
HLRZ T0,(T0)
HRRZ T0,(T0)
HRRZ T0,(T0)
HLRZ T0,(T0)
-Rob
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607