[net.works] Choice of Programming Language

sas@BBN-VAX.ARPA (08/09/85)

From: Seth Steinberg <sas@BBN-VAX.ARPA>

Don't let the mystics get you down.  Porting a programming language to
port an application is an excellent idea.  We used it to get TK!Solver
working on a number of machines.  When IBM announced their PC in mid
effort we just spent a week redoing the interpreter.  In addition we
had a very "strict" interpreter running on a mainframe which did
massive error checking (e.g. Is there anything still allocated which
is not being referenced?  We didn't want a PC based garbage collector).

The original language IL was internally very Forth-like but we slapped
a LISP syntax with compile time type checking on top of it.  As time
went by it became less Forth-right internally and more p-code-ish and
finally we just generated in-line code for the 8088 version when the
IBM PC became a bit of a standard.

The main thing to remember is to keep the nucleus of your language
small and simple w.r.t implementation. If you choose PL/I (as we did
back at MIT) choose a minimal subset which you already understand how
to implement.  I would recommend a LISP-like syntax since you can
provide a simple compile time pseudo-LISP interpreter to do macro
transformations (punt garbage collecting, allocate everything for a
compilation in a big bag and throw it out at the end of the
compilation) which can off load a lot of work from the compiler
developers. 

As far as certain detractors of this methodology go, remember that 10
years ago they would have given you a hard time for choosing to use a
higher level language at all and 10 years before that for using an
operating system.  The "real world" had to come from somewhere.

					Seth Steinberg
					SAS @ BBN-VAX