Jerry Avins <firstname.lastname@example.org> wrote:
| I have Forth for the AIM-65 in ROM, SYM-1 on tape, and FOCAL (a sort-of
| Forth) for KIM-1...
Uh... Having ported Doug Wrege's version of PDP-8 FOCAL/F to the PDP-10
Spring 1971, I can say with some confidence that FOCAL isn't even *vaguely*
Forth-like -- it's much closer to JOSS & MUMPS, and in fact, was developed
by Richey Lary following his participation in the first installation of
MUMPS at Mass Gen. While (old, original) MUMPS had "string" as it's only
data type (like Tcl), FOCAL had "floating point" as its only data type.
(In fact, mutable "strings" were emulated with arrays of floating-point
numbers, each array element representing one character.)
Like JOSS & MUMPS & BASIC & FORTRAN -- but unlike Forth -- FOCAL has
traditional infix arithmetic with "the usual" operator priorities,
that is, the assignment "SET A=B+C*4.35-D/2.468" is interpreted as
p.s. My FOCAL-10 port involved some serious rewriting of the internal
FOCAL lexical subroutines SORTC & SORTJ to become two-instruction macros
that made heavy use of the PDP-10 byte pointer stuff and "byte strips"
to encode enumerated character equivalence classes. (Hey, it made it
run 25 times faster!) It used some really hairy "MACRO-10" (the PDP-10
assembler) macros to build those tables at compile time. Imagine my
immense delight when I was exposed to Common Lisp and learned that:
1. The style of table-building I'd been writing in PDP-10 assembler
could be done *much* more naturally -- almost trivially, in fact --
with Lisp macros; and
2. That Common Lisp had preserved at least a little of the flavor of
the PDP-10 variable-sized byte operations... with the same names,
even: LDB, DPB, BYTE, BYTE-SIZE, BYTE-POSITION. Way cool!
I just wish I'd gotten into Lisp 20 years earlier than I did... (*sigh*)
Rob Warnock, 8L-855 email@example.com
Applied Networking http://reality.sgi.com/rpw3/
Silicon Graphics, Inc. Phone: 650-933-1673
1600 Amphitheatre Pkwy. FAX: 650-933-0511
Mountain View, CA 94043 PP-ASEL-IA