From: billk@HAWK.CS.UKANS.EDU (Bill Kinnersley)
Newsgroups: comp.lang.misc
Subject: The Language List V1.7 - Part 6 of 8
Date: 6 Apr 92 14:19:15 GMT

language has an extremely rich type system, including dependent functions,
products, sets, quotients and universes.  Built on Franz Lisp and Edinburgh
ML.  "Implementing Mathematics in the Nuprl Proof Development System", R.L.
Constable et al, P-H 1986.

NU-Prolog - Naish, U Melbourne.  Successor to MU-Prolog.  

NYAP - Early system on IBM 704.  Listed in CACM 2(5):16 (May 1959).

NYU OMNIFAX - Early system on UNIVAC I or II.  Listed in CACM 2(5):16 (May
1959).

O2 - (as in "Object-Oriented").  Object-oriented database language used in
the Altair project.  Implemented as an interpreter.  GIP Altair,
Versailles, France.  Francois Bancilhon et al, in "Advances in
Object-Oriented Database Systems", K.R. Dittrich ed, LNCS 334, Springer
1988.  (see CO2).

Oaklisp - K. Lang and B. Perlmutter.  A portable object-oriented Scheme. 
Anonymous classes.  "Oaklisp: An Object-Oriented Scheme with First-Class
Types", K. Lang et al, SIGPLAN Notices 21(11):30-37 (Nov 1986) (OOPSLA
'86).
ftp: f.gp.cs.cmu.edu:usr/bap/oak/ftpable
     ux1.cso.uiuc.edu:pub/amiga/fish/ff519 for Amiga

OBE - Office By Example.  Moshe Zloof, IBM, early 1980's.  Sequel to QBE,
descriptions published but apparently never implemented.

Oberon - Wirth, 1988.  A descendant of Modula-2 eliminating many things:
variant records, enumeration types, subranges, lower array indices and
'for' loops.  Additions are extensible record types, multidimensional open
arrays and garbage collection.  "The Programming Language Oberon", N.
Wirth, Soft Prac & Exp 18(7):671-690 (July 1988).
ftp: neptune.inf.ethz.ch for MacII, MS-DOS
     wuarchive.wustl.edu:/mirrors/msdos/pgmutl/oberonm11.zip for MS-DOS
     ux1.cso.uiuc.edu:pub/amiga/fish/ff380 for Amiga

Oberon-2 - H. Moessenboeck, 1991.  A superset of Oberon-1 to include
object-orientation.  A redesign of Object Oberon.  Type-bound procedures
(equivalent to methods), read-only export of variables and record fields,
open array variables, and a 'with' statement with variants.  The 'for'
statement is reintroduced.  Second Intl Modula-2 Conf, Sept 1991.
ftp: neptune.inf.ethz.ch for SPARC, DECstation and RS/6000
doc: neptune.inf.ethz.ch:/Oberon/Docu/Oberon2Report.ps.Z

OBJ - Joseph Goguen 1976.  A family of declarative "ultra high level"
languages.  Abstract types, generic modules, subsorts (subtypes with
multiple inheritance), pattern-matching modulo equations, E-strategies
(user control over laziness), module expressions (for combining modules),
theories and views (for describing module interfaces).  For the massively
parallel RRM (Rewrite Rule Machine).
OBJ0 - Tardo.  Based on unsorted equational logic.
OBJT - Tardo.  Error algebras plus an image construct.
OBJ1 - 

OBJ2 - Clear-like parametrized modules.  A functional system based on
equations.  "Principles of OBJ2", K. Futatsugi et al, 12th POPL, ACM 1985,
pp.52-66.

OBJ3 - Based on order-sorted rewriting.  Agent-oriented.  "Introducing
OBJ3", J. Goguen et al, SRI-CSL-88-9, SRI Intl (1988).

ObjectLOGO - For the Mac.  Paradigm Software <paradigm@applelink.apple.com>
(617)576-7675.

Object Oberon - H. Moessenboeck & J. Templ, 1989.  Adds classes and methods
to Oberon.  "Object Oberon - An Object-Oriented Extension of Oberon", H.
Moessenboeck et al, ETH TR 109 (Apr 1990).  "Object Oberon - A Modest
Object-Oriented Language", H. Moessenboeck & J. Templ, in Structured
Programming 10(4), 1989.  (see Oberon-2).

Object-Oriented Turing - under development.  Adds objects and classes to
Turing Plus.
info: <distrib@turing.toronto.edu>

Object Pascal - Developed jointly by Apple Computer and Niklaus Wirth.  An
object-oriented Pascal.  "Object Pascal Report", Larry Tesler, Structured
Language World 9(3) 1985.

Object Z - U Queensland.

Objective C - Brad Cox, Productivity Products.  An object-oriented superset
of ANSI C, incorporating many ideas from Smalltalk.  Implemented as a
preprocessor for C.  No operator overloading, no multiple inheritance, no
class variables.  Does have run-time binding.  Used as the system
programming language on the NeXT.  "Object-Oriented Programming: An
Evolutionary Approach", Brad Cox, A-W 1986.  Versions for MS-DOS, Macs, VMS
and Unix workstations.  Stepstone Corp, (203) 426-1875.

Objective Turing - 

Objlog - Frame-based language.  "The Inheritance Processes in Prolog", C.
Chouraki et al, GRTC/187bis/Mars 1987 (CNRS).

ObjVlisp - 1984.  An object-oriented extension of Vlisp.  Reflective
architecture.  "Metaclasses are First Class: The ObjVlisp Model", P.
Cointe, SIGPLAN Notices 22(121):156-167 (Dec 1987) (OOPSLA '87).

ObjVProlog - Logic programming and object-orientation, an adaptation of the
ObjVlisp model to Prolog.  "ObjVProlog: Metaclasses in Logic", J.
Malenfant, ECOOP '89, Cambridge U Press 1989, pp.257-269.

OBSCURE - "A Formal Description of the Specification Language OBSCURE", J.
Loeckx, TR A85/15, U Saarlandes, Saarbrucken, 1985.

Oc - ("Oh see!")  Parallel logic language.  "Self-Description of Oc and its
Applications", M. Hirata, Proc 2nd Natl Conf Japan Soc Soft Sci Tech,
pp.153-156 (1984).

OCAL - On-Line Cryptanalytic Aid Language.  "OCAS: On-line Cryptanalytic
Aid System", D.J. Edwards, MAC-TR-27, MIT Project MAC, May 1966.  Sammet
1969, p.642.

occam - (named for the English philosopher William of Occam (1300-1349))
Now known as "occam 1".  David May et al, 1982.  Concurrent algorithms,
based on CSP and EPL.  Designed for the INMOS transputer and vice versa. 
Expressions are processes, which may be combined in serial and parallel. 
Processes communicate via named unidirectional channels.  There is no
operator precedence.  "Occam", D. May, SIGPLAN Notices 18(4):69-79 (1983).
ftp: watserv1.waterloo.edu, simulator for VAX, Tahoe
list: occam@sutcase.case.syr.edu

occam 2 - 1987.  An extension of occam1.  Occam 2 adds floating point,
functions and a type system.  "occam 2 Reference Manual", INMOS, P-H 1988,
ISBN 0-13-629312-3.

OCL - Operator Control Language.  Batch language for the IBM System/36, 
used specifically with the RPG II compiler.  (see CL).

OCODE - Intermediate language used by the Cambridge BCPL compiler.  "The
Portability of the BCPL Compiler", M. Richards, Soft Prac & Exp 1(2)
(1971).

OIL - 

  1. "The Architecture of the FAIM-1 Synbolic Multiprocessing System", A.
Davis et al, 9th Intl Joint Conf in Artif Intell, 1985, pp.32-38.

  2. Operator Identification Language.  Used for overload resolution by the
Eli compiler-writing system.  

OLC - On-Line Computer system.  UCSB ca. 1966.  Predecessor of Culler-Fried
System.  Sammet 1969, p.253.

OLDAS - On-line Digital Analog Simulator.  Interactive version of MIMIC,
for IBM 360.  "OLDAS: An On-line Continuous System Simulation Language",
R.P. Cullen, in Interactive Systems for Experimental Applied Mathematics,
A-P 1968.

Omega - Prototype-based object-oriented language.  "Type-Safe Object-
Oriented Programming with Prototypes - The Concept of Omega", G. Blaschek,
Structured Programming 12:217-225 (1991).

OMNICODE - Thompson, 1956.  Ran on IBM 650.  Sammet 1969, p.5.

OMNIFAX - Alternate name for NYU OMNIFAX?  Early system on UNIVAC I or II. 
Listed in CACM 2(5):16 (May 1959).

OMNITAB - Statistical analysis and desk calculator.  "OMNITAB II User's
Reference Manual", NBS Tech Note 552 (Oct 1971).  Sammet 1969, pp.296-299. 
Version: OMNITAB II.

Ondine - "Concurrency Introduction to an Object-Oriented Language System
Ondine", T. Ogihara et al, 3rd Natl Conf Record A-5-1, Japan Soc for Soft
Sci Tech, Japan 1986.

Ontic - Object-oriented language for an inference system.  LISP-like
appearance, but based on set theory.  "Ontic: A Knowledge Representation
System for Mathematics", D.A. McAllester, MIT Press 1989.

OOF - Object-Oriented Fortran.  Data items can be grouped into objects,
which can be instantiated and executed in parallel.  Available now for
Suns, Iris, iPSC, soon for nCUBE.
info: dreese@erc.msstate.edu

OOPS - "OOPS: A Knowledge Representation Language", D. Vermeir, Proc 19th
Intl Hawaii Conf on System Sciences, IEEE (Jan 1986) pp.156-157.

Opal -

  1. DSP language.  "OPAL: A High Level Language and Environment for DSP
boards on PC", J.P. Schwartz et al, Proc ICASSP-89, 1989.

  2. Language of the object-oriented database GemStone.  "Making Smalltalk
a Database System", G. Copeland et al, Proc SIGMOD'84, ACM 1984, pp.316-
325.

  3. Simulation language with provision for stochastic variables.  An
extension of Autostat.  "C-E-I-R OPAL", D. Pilling, Internal Report,
C.E.I.R. Ltd (1963).

  4. Language for compiler testing said to be used internally by DEC.

OPS -

  1. On-line Process Synthesizer.  M. Greenberger, MIT ca. 1964.  Discrete
simulation under CTSS.  Sammet 1969, p.660.  Versions: OPS-3, OPS-4.  "On-
line Computation and Simulation: The OPS-3 System", M. Greenberger et al,
MIT Press 1965.

  2. Official Production System.  CMU, 1970.  The first production-system
(i.e. rule-based) programming language, used for building expert systems. 
Written originally in Franz Lisp, later ported to other LISP dialects.

OPS5 - Charles L. Forgy.  1977 version of OPS[2], publicly available from
the author <forgy@cs.cmu.edu>.  "Programming Expert Systems in OPS5", L.
Brownston et al, A-W 1985.  Other versions: OPS4, OPS5+, OPS83
ftp: wuarchive.wustl.edu:/mirrors/unix-c/languages/ops5 an OPS5 interpreter
in Common LISP.

C5 - An OPS5 implementation in C.  "Rule-Based Programming in the Unix
System", G.T. Vesonder, AT&T Tech J 67(1), 1988.

Orca - Vrije Universiteit, Amsterdam, 1986.  Similar to Modula-2, but with
support for distributed programming using shared data objects, like Linda. 
A 'graph' data type removes the need for pointers.  Version for the Amoeba
OS.  "Orca: A Language for Distributed Processing", H.E. Bal <bal@cs.vu.nl>
et al, SIGPLAN Notices 25(5):17-24 (May 1990).

Orient84/K - Y. Ishikawa, Keio U, Yokohama.  "A Concurrent Object-Oriented
Knowledge Representation Language Orient84/K", Y. Ishikawa et al, SIGPLAN
Notices 21(11):232-241 (OOPSLA '86) (Nov 1986).

ORTHOCARTAN - A. Krasinski, Warsaw, early 80's.  Symbolic math, especially
General Relativity.  

Orwell - Lazy functional language, Miranda-like.  List comprehensions and
pattern matching.  "Introduction to Orwell 5.00", P.L. Wadler et al,
Programming Research Group, Oxford U, 1988.

OSCAR - 

  1. Oregon State Conversational Aid to Research.  Interactive numerical
calculations, vectors, matrices, complex arithmetic, string operations, for
CDC 3300.  "OSCAR: A User's Manual with Examples", J.A. Baughman et al, CC,
Oregon State U.

  2. Object-oriented language used in the COMANDOS Project.  "OSCAR:
Programming Language Manual", TR, COMANDOS Project, Nov 1988.

OSSL - Operating Systems Simulation Language.  "OSSL - A Specialized
Language for Simulating Computer Systems", P.B. Dewan et al, Proc SJCC 40,
AFIPS (Spring 1972).

Ottawa Euclid - Variant of Euclid.

OWHY - Functional?  "A Type-Theoretical Alternative to CUCH, ISWIM, OWHY",
Dana Scott, Oxford U 1969.

Owl - Original name of Trellis.

P+ - "Experience with Remote Procedure Calls in a Real-Time Control
System", B. Carpenter et al, Soft Prac & Exp 14(9):901-907 (Sep 1984).

PACT I - Early system on IBM 701.  Listed in CACM 2(5):16 (May 1959). 
Version: PACT IA for IBM 704.

PACTOLUS - Digital simulation.  Sammet 1969, p.627.

Paddle - Language for transformations leading from specification to
program.  Used in POPART, a grammar-driven programming environment
generator.  "POPART: Producer of Paddles and Related Tools, System
Builders' Manual", D.S. Wile TR RR-82-21, ISI, Marina del Rey, CA 1982.

PAGE - Typesetting language.  "Computer Composition Using PAGE-1", J.L.
Pierson, Wiley 1972.

Pailisp - Parallel Lisp built on Scheme.  1986.  "A Parallel Lisp Language
PaiLisp and its Kernel Specification", T. Ito et al, in Parallel Lisp:
Languages and Systems, T. Ito et al eds, LNCS 441, Springer 1989.

PAISley - Bell Labs.  Operational specification language.  "An Operational
Approach to Requirements Specification for Embedded Systems", P. Zave, IEEE
Trans Soft Eng SE-8(3):250-269 (May 1982).

PAL - 

  1. Paradox Application Language.  Language for Paradox, Borland's
relational database.

  2. For the AVANCE distributed persistent OS.  "PAL Reference Manual", M.
Ahlsen et al, SYSLAB WP-125, Stockholm 1987.  "AVANCE: An Object Management
System", A. Bjornerstedt et al, SIGPLAN Notices 23(11):206-221 (OOPSLA '88)
(Nov 1988).

  3. Object-oriented Prolog-like language.  "Inheritance Hierarchy
Mechanism in Prolog", K. Akama, Proc Logic Prog '86, LNCS 264, Springer
1986, pp.12-21.

  4. PDP Assembly Language.  Assembly language for PDP-8 and PDP-11.

  5. Pedagogic Algorithmic Language.  "PAL - A Language for Teaching
Programming Linguistics", A. Evans Jr, Proc ACM 23rd Natl Conf,
Brandon/Systems Press (1968).

Pam - Toy ALGOL-like language used in "Formal Specification of Programming
Languages:  A Panoramic Primer", F.G. Pagan, P-H 1981.

Pandora - Parlog extended to allow "don't-know" non-determinism.  "Pandora:
Non-Deterministic Parallel Logic Programming", R. Bahgat et al, Proc 6th
Intl Conf Logic Programming, MIT Press 1989 pp.471-486.

Panon - String processing language based on generalized Markov algorithms. 
"String Processing Languages and Generalize Markov Algorithms", A. C.
Forino, Proc IFIP Working Conf on Symb Manip Languages, pp.141-206,
Amsterdam 1968.

Paragon - IEEE Software (Nov 1991). [?]

Paralation Model - Parallel language.  "The Paralation Model: Architecture
Independent Programming", G.W. Sabot <gary@think.com>, MIT Press 1988.

ParAlfl - Hudak, Yale.  Parallel functional language, a superset of Alfl. 
Used by the Alfalfa system on Intel iPSC and Encore Multimax.  "Para-
Functional Programming", P. Hudak, Computer 19(8):60-70 (Aug 1986). 
"Alfalfa: Distributed Graph Reduction on a Hypercube Multiprocessor", B.
Goldberg & P. Hudak, TR, Yale U, Nov 1986.

Parallaxis - U Stuttgart.  Data-parallel (SIMD) language, based on Modula-
2.  "User Manual for Parallaxis Version 2.0", T. Braunl, U Stuttgart. 
Simulator for workstations, Mac and PC.
ftp: ftp.informatik.uni-stuttgart.de:pub/parallaxis
info: engelhar@informatik.uni-stuttgart.de

Parallel C - Never implemented, but influenced the design of C*.

Parallel FORTH - For the MPP.

Parallel Pascal - Data-parallel language, similar to Actus and Glypnir. 
"Parallel Pascal: An Extended Pascal for Parallel Computers", A. Reeves, J
Parallel Dist Computing 1:64-80 (1984).

Parallel SML - "Parallel SML: A Functional Language and its Implementation
in Dactl", Kevin Hammond, Pitman Press 1990.

PARI - Symbolic math, especially number theory.
info: <pari@mizar.greco-prog.fr>
ftp: math.ucla.edu

Paris - PARallel Instruction Set.  Low-level language for the Connection
Machine.

Parlance - Concurrent language.  "Parallel Processing Structures:
Languages, Schedules, and Performance Results", P.F. Reynolds, PhD Thesis,
UT Austin 1979.

Parlog - Clark & Gregory, Imperial College 1983.  An AND-parallel Prolog,
with guards and committed choice [=don't care] nondeterminism.  Shallow
backtracking only.  "Parlog: A Parallel Logic Programming Language", K.L.
Clark and S. Gregory, Imperial College, London, May 1983.  ("Parlog83", in
which the ouput mechanism was assignment).  "Parallel Logic Programming in
PARLOG, The Language and Its Implementation", S. Gregory, A-W 1987. 
("Parlog86", in which the output mechanism was unification, as in GHC). 
(see Strand). Implementations: MacParlog and PC-Parlog from Parallel Logic
Programming Ltd, Box 49 Twickenham TW2 5PH, UK.
ftp: nuri.inria.fr
info: parlog@doc.ic.ac.uk

Parlog++ - Andrew Davison <ad@cs.mu.oz.au>, then Imperial College now U
Melbourne.  Object orientation plus parallel logic, built on top of
MacParlog.  Sold by PLP Ltd.  "Parlog++: A Parlog Object-Oriented
Language", A. Davison, Parlog Group, Imperial College 1988.
info: parlog@doc.ic.ac.uk

ParMod - "Parallel Programming with ParMod", S. Eichholz, Proc 1987 Intl
Conf on Parallel Proc, pp.377-380.

PARSEC - Extensible language with PL/I-like syntax, derived from PROTEUS. 
"PARSEC User's Manual", Bolt Beranek & Newman (Dec 1972).

PARULEL - "The PARULEL Parallel Rule Language", S. Stolfo et al, Proc 1991
Intl Conf Parallel Proc, CRC Press 1991, pp.36-45.

Pascal - (named for the French mathematician Blaise Pascal (1623-1662))  N.
Wirth, ca. 1970.  Designed for simplicity, in reaction to the complexity of
ALGOL 68, and intended as a teaching language.  Innovations: enumeration
types, subranges, sets, variant records, case statement.  Missing from
standard Pascal: strings, adjustable arrays, abstract data types,
random-access files, and separate compilation.  Pascal has been extremely
influential in programming language design, and has led to a great number
of variations and descendants.
"PASCAL User Manual and Report", K. Jensen & N. Wirth, Springer 1975.

Pascal-2 - 

Pascal-80 - A successor of Platon.  Developed at RC International for
systems programming.  Later it was renamed Real-Time Pascal.  "PASCAL80
Report", J. Staunstrup, RC Intl, Denmark Jan 1980.

Pascal+CSP - "Pascal+CSP, Merging Pascal and CSP in a Parallel Processing
Oriented Language", J. Adamo, Proc 3rd Intl Conf Distrib Comp Sys, IEEE
1982, pp.542-547.

Pascal-F - Pascal extended to include fixed-point arithmetic.  E. Nelson,
"Pascal-F: Programming Language for Real-Time Automotive Control", IEEE
ElectroTechnol. Rev. (USA), 2:39, 1968.

Pascal-FC - Derived from Pascal-S, provides several types of concurrency:
semaphores, monitors, both occam/CSP-style and Ada-style rendezvous.  "The
Teaching Language Pascal-FC", G.L. Davies et al, Computer J 33(2):147-154
(Apr 1990).

Pascal-Linda - Ian Flockhart, U Edinburgh, 1991.  Under development.

Pascal-m - "Pascal-m: A Language for Loosely Coupled Distributed Systems",
S. Abramsky et al in Distributed Computing Systems, Y. Paker et al eds,
Academic Press 1986, pp.163-189.

Pascal-P - Variant of Pascal used by the UCSD p-system environment. 
Extended string and array operations, random access files, separate
compilation, etc.  Available from Pecan.

Pascal Plus - Jim Welsh & D. Bustard, Queens U, Belfast.  Pascal with
extensions for object-oriented multiprogramming, uses an 'envelope'
construct for both packages and classes.  "Pascal Plus - Another Language
for Modular Multiprogramming", J. Welsh et al, Soft Prac & Exp 9:947
(1979).  "Sequential Program Structures", J. Welsh et al, P-H ISBN 0-13-
806828-3.

Pascal/R - Pascal with relational database constructs added.  The first
successful integrated database language.  "Pascal/R Report", J.W. Schmidt
et al, U Hamburg, Fachbereich Informatik, Report 66, Jan 1980.

Pascal-S - Simplified Pascal.  Source for a complete Pascal-S compiler is
in "Pascal-S: A Subset and Its Implementation", N. Wirth in Pascal
- The Language and Its Implementation by D.W. Barron, Wiley 1979.

PASRO - PAScal for RObots.  "PASRO - Pascal for Robots", C. Blume et al,
Springer 1985.

PAT - Personalized Array Translator.  Small subset of APL.  Sammet 1969,
p.252.

Path Pascal - Parallel extension of Pascal.  Processes have shared access
to data objects.  Constraints on their synchronization are specified in a
path expression.  "An Overview of Path Pascal's Design", R.H. Campbell,
SIGPLAN Notices 15(9):13-24 (Sep 1980).

pc - Parallel C.  U Houston.
ftp: karazm.math.uh.edu:pub/Parallel/Tools/pc.1.1.1.tar.Z

PCCTS - Purdue Compiler Construction Tool Set.  Essentially like lex + yacc
+ code generation support in a single language.  Since the beta release
last year, over 400 user sites worldwide.  "Purdue Compiler Construction
Tool Set," Terence Parr et al, Purdue U, TR-EE 90-14, Feb 1990.

PCF - Simply typed, functional.  "Fully Abstract Translations Between
Functional Languages", J. Riecke, 18th POPL, pp.245-254 (1991).  "LCF
Considered as a Programming Language", Theor CS 5:223 (1977).

PCL - 

  1. Printer Control Language.  Document description language used by
Hewlett-Packard Laserjet printers, a superset of HP-GL/2.  LaserJet
III/IIID Printer Technical Reference Manual, HP 33459-90903.  Versions: PCL
3, PCL 5.

  2. Portable CommonLoops.  Started out as an implementation of
CommonLoops.  Is now being converted to CLOS, but currently implements only
a subset of the CLOS specification.

  3. Peripheral Control Language.  Command language for I/O on the CP-V OS.

  4. "PCL - A Process Oriented Job Control Language", V. Lesser et al, Proc
1st Intl Conf Distrib Comp Sys, IEEE 1979, pp.315-329.

PCN - Program Composition Notation.  A specification language.
info: <foster@mcs.anl.gov>

P-code - The intermediate code produced by the Pascal-P compiler.  Assembly
language for a hypothetical stack machine, the P-machine.  "A Comparison of
PASCAL Intermediate Languages", P.A. Nelson, SIGPLAN Notices 14(8):208-213
(Aug 1979).  Variants: P-2 P-code, P-4 P-code, UCSD P-code, LASL P-code.

PC-TILES - A visual language.

PCLIPS - Parallel CLIPS - U Lowell.  Concurrent independent CLIPS expert
systems.  They use 'rassert' (remote assert) to enter facts into each
other's database.  "PCLIPS: A Distributed Expert System Environment", R.
Miller, CLIPS Users Group Conf, Aug 1990.
info: dragon.ulowell.edu:pub/PClips

PDEL - Partial Differential Equation Language.  Preprocessor for PL/I. 
"PDEL - A Language for Partial Diferential Equations", A.F. Cardenas, CACM
13(3):184-191 (Mar 1970).

PDELAN - Partial Differential Equation LANguage.  "An Extension of FORTRAN
Containing Finite Difference Operators", J. Gary et al, Soft Prac & Exp
2(4) (Oct 1972).

PDL2 - Process Design Language.  Developed for the TI ASC computer.  "Texas
Instruments Process Design Methodology - Design Specification: Process
Design Language", Volume I (Sep 1976).  Mentioned in "An Overview of Ada"
J.G.P. Barnes, Soft Prac & Exp 10:851-887 (1980).

PDS/MaGen - Problem Descriptor System.  Generation of matrices and reports
for mathematical programming and operations research.  "PDS MaGen User
Information Manual", Haverly Systems (Dec 1977).

Pearl -

  1. Constable, Cornell U, 80's.  Constructive mathematics.

  2. Process and Experiment Automation Real-Time Language.  A language to
program process control systems. Heavily used in Europe ca. 1980.

  3. One of five pedagogical languages based on Markov algorithms, used in
"Nonpareil, a Machine Level Machine Independent Language for the Study of
Semantics", B. Higman, ULICS Intl Report No ICSI 170, U London (1968). 
(cf. Brilliant, Diamond, Nonpareil, Ruby[2]).

Pebble - Polymorphic.  "A Kernel Language for Abstract Data Types and
Modules", R.M. Burstall & B. Lampson, in Semantics of Data Types, LNCS 173,
Springer 1984.

Pebbleman - DoD requirements that led to APSE.

PEEL - Used to implement version of EMACS on PRIME computer. [?]

PENCIL - Pictorial ENCodIng Language.  On-line system to display line
structures.  Sammet 1969, 675.

PEPsy - Prolog extended with parallel modules within which explicit OR-
parallelism can be used.  "PEPsy: A Prolog for Parallel Processing", M.
Ratcliffe et al, ECRC TR CA-17, 1986.

Perl - Practical Extraction and Report Language.  Larry Wall
<lwall@jpl-devvax.jpl.nasa.gov>  An AWK-like scripting language for
scanning text and printing reports.  "Programming Perl", Larry Wall et al,
O'Reilly & Assocs.
ftp: jpl-devvax.jpl.nasa.gov for Unix, MS-DOS, Amiga
uucp: osu-cis

pf - Parallel Fortran. U Houston.  Under development.
info: <scott@uh.edu>

PFL - Holmstrom, Matthews.  A concurrent extension of ML, using CCS.  "PFL:
A Functional Language for Parallel Programming", S. Holmstrom in Proc
Declarative Language Workshop, London 1983.

PHOCUS - Object-oriented Prolog-like language.  "PHOCUS: Production Rules,
Horn Clauses, Objects and Contexts in a Unification Based System", D. Chan
et al, Actes du Sem Prog et Logique, Tregastel (May 1987), pp.77-108.

PIC - Brian Kernighan.  Graphics meta-language for textually describing
pictures, for use with troff.  Featured in Jon Bentley's "More Programming
Pearls."  "PIC - A Language for Typesetting Graphics", B.W. Kernighan, Soft
Prac & Exp 12(1):1-21 (Jan 1982).  "PIC - A Graphics Language for
Typesetting, Revised User Manual", Bell Labs TR 116, Dec 1984.

Pick BASIC - see Data/BASIC.

PIE - CMU.  Similar to Actus.

PIL - Procedure Implementation Language, subsytem of DOCUS.  Sammet 1969,
p.678.

PIL/I - Variant of JOSS.  Sammet 1969, p.217.

PILE - 

  1. Polytechnic's Instructional Language for Educators.  Similar in use to
an enhanced PILOT, but structurally more like Pascal with Awk-like
associative arrays (optionally stored on disk).  Distributed to about 50
sites by Initial Teaching Alphabet Foundation for Apple II and CP/M.  "A
Universal Computer Aided Instruction System," Henry G. Dietz & Ronald J
Juels, Proc Natl Educ Computing Conf '83, pp.279-282.

  2. "PILE _ A Language for Sound Synthesis", P. Berg, Comput Music J 3,1
(1979).

PILOT - Programmed Inquiry Learning Or Teaching.  CAI language, many
versions.  "Guide to 8080 PILOT", J. Starkweather, Dr Dobb's J (Apr 1977).

PINBOL - Decision table language for controlling pinball machines used at
Atari.  Included a multi-tasking executive and an interpreter that worked
on data structures compiled from condition:action lists.

PIRL - Pattern Information retrieval Language.  Language for digraph
manipulation, embeddable in FORTRAN or ALGOL, for IBM 7094.  "PIRL -
Pattern Information Retrieval Language", S. Berkowitz, Naval Ship Res Dev
Ctr, Wash DC.

PIT - Language for IBM 650.  (see IT).

PL-11 - High-level machine-oriented language for the PDP-11.  (May have
been from CERN.)

PL/360 - Assembly language for IBM 360 and 370, with a few high-level
constructs.  "PL/360, A Programming Language for the 360 Computers", N.
Wirth, J ACM 15(1):37-74 (Jan 1968).

PL-6 - PL/I-like system language for the Honeywell OS CP-6.

PL.8 - A systems dialect of PL/I, developed originally for the IBM 801 RISC
mini, later used internally for the IBM RT and other projects.  "An
Overview of the PL.8 Compiler", M. Auslander et al, Proc SIGPLAN '82 Symp
on Compiler Writing.

Pla - High-level music programming language, written in SAIL.  Includes
concurrency based on message passing.  "Pla: A Composer's Idea of a
Language", B. Schottstaedt, Computer Music J 7(1):11-20 (Winter 1983).

PLACE - Programming Language for Automatic Checkout Equipment.  "The
Compiler for the Programming Language for Automatic Chekcout Equipment
(PLACE)", AFAPL TR-68-27, Battelle Inst, Columbus, May 1968.

PLAIN - Programming LAnguage for INteraction.  Pascal-like, with extensions
for database, string handling, exceptions and pattern matching.  "Revised
Report on the Programming Language PLAIN", A. Wasserman, SIGPLAN Notices
6(5):59-80 (May 1981).

PLAN - Assembly language for ICL1900 series machines.

Planet - "An Experiment in Language Design for Distributed Systems", D.
Crookes et al, Soft Prac & Exp 14(10):957-971 (Oct 1984).

PLANIT - Programming LANguage for Interaction and Teaching.  CAI language. 
"PLANIT - A Flexible Language Designed for Computer-Human Interaction",
S.L. Feingold, Proc FJCC 31, AFIPS (Fall 1967)  Sammet 1969, p.706.

Plankalkul - The first programming language, by Konrad Zuse from Nazi
Germany, ca. 1945.  Theoretical, never implemented.  Much of his work may
have been either lost or confiscated in the aftermath of WWII.  "The
Plankalkul of Konrad Zuse", F.L. Bauer et al, CACM 15(7):678-685 (Jul
1972).

PLANNER - C. Hewitt <hewitt@ai.mit.edu> MIT 1967.  A language for writing
theorem provers.  Never fully implemented, see microPLANNER.  "PLANNER: A
Language for Proving Theorems in Robots", Carl Hewitt, Proc IJCAI-69, Wash
DC, May 1969.

PLANS - Programming Language for Allocation and Network Scheduling.  A PL/I
preprocessor, used for developing scheduling algorithms.  "A User's Guide
to the Programming Language for Allocation and Network Scheduling", H.R.
Ramsey et al, TR SAI-77-068-DEN, Science Applications Inc (Jun 1977).

Plasma - Carl Hewitt, 1976.  The first actor language.  "Viewing Control
Structures as Patterns of Passing Messages", C. Hewitt, AI Memo 410, MIT
1976.

Platon - Distributed language based on asynchronous message passing. 
"Message Passing Communication Versus Procedure Call Communication", J.
Staunstrup, Soft Prac & Exp 12(3):223-234 (Mar 1982).  "Platon Reference
Manual", S. Soerensen et al, RECAU, U Aarhus, Denmark.

PLAY - 1977.  Language for real-time music synthesis.  "An Introduction to
the Play Program", J. Chadabe ete al, Computer Music J 2,1 (1978).

Playground - A visual language for children, developed for Apple's Vivarium
Project.  OOPSLA 89 or 90?

PL/C - Subset of PL/I for student use.  "User's Guide to PL/C", S. Worona
et al, Cornell, June 1974.

PL/I - Programming Language I.  George Radin, 1964.  Oriinally named NPL. 
An attempt to combine the best features of FORTRAN, COBOL and ALGOL 60. 
Result is large but elegant.  One of the first languages to have a formal
semantic definition, using the Vienna Definition Language.  A dialec of
PL/I (see EPL) was used to write almost all of the Multics OS.  It has no
reserved words.  Types are fixed, float, complex, character strings with
max length, bit strings, and label variables.  Arrays have lower bounds,
and may be dynamic. Summation, multi-level structures, structure
assignment, untyped pointers, side effects, aliasing.  Control flow goto,
do-end groups, do-to-by-while-end loops, external procedures and internal
nested procedures and blocks, procedures may be declared recursive. 
Generic procedures.  Many implementations support concurrency ('call task'
and 'wait(event)' amount to fork/join) and compile-time statements. 
Exception handling.  "A Structural View of PL/I", D. Beech, Computing
Surveys, 2,1 33-64 (1970).  ANS X3.53-1976, X3.74-1981.
list: PL1-L@UIUCVMD.BITNET
ftp: wuarchive.wustl.edu:/mirrors/msdos/pli/runpli1a.arc, PL/I interpreter
version: LPI for PC's and workstations <rcg@lpi.liant.com>

PL/I SUBSET - Early 70's version of PL/I for minis.

PL/I Subset G - The commercial PL/I subset (i.e., what was actually
implemented by most vendors).

PL/I-FORMAC - Variant of FORMAC.  "The PL/I-FORMAC Interpreter", J.
Xenakis, Proc 2nd Symp Symbolic and Algebraic Manip, ACM (Mar 1971). 
Sammet 1969, p.486.

Plisp - Pattern LISP.  1990.  A pattern-matching rewriting language for
describing syntax translation rules.  (see LISP70).
  
PLITS - Programming Language In The Sky.  A computational model for
concurrency with communication via asynchronous message-passing.  "High
Level Programming for Distributed Computing", J.A. Feldman, CACM 22(6):353-
368 (Jun 1979).

PL/M - Programming Language/Microcomputers.  Intel.  A very low level
language designed to look like PL/I.  "PL/M-80 Programming Manual", Doc 98-
268B, Intel 1976.  "A Guide to PL/M Programming for Microcomputer
Applications", D. McCracken, A-W 1978.  Versions: PL/M-80, PL/M-86, PL/M-
286.

PL/P - Programming Language, Prime.  Russ Barbour, PRIME Computer, late
70's.  Subset of PL/I used internally for implementation of PRIMOS.  (see
SPL[4]).

PL/PROPHET - PL/I-like language for the PROPHET system, used by
pharmacologists.  "The Implementation of the PROPHET System", P.A.
Castleman et al, NCC 43, AFIPS (1974).

PL/S - Programming Language/Systems.  IBM late 60's.  Apparently a hybrid
of PL/I and ASM.  Much of IBM/360 OS/MFT/MVT/SVS/MVS was written in it. 
Documented by various IBM internal ZZ-? publications.  Versions: PLS1,
PLSII.

PL/Seq - Programming Language for Sequences.  A DSP language.  "A General
High Level Language for Signal Processors", J. Skytta & O. Hyvarinen,
Digital Signal Processing 84, Proc Intl Conf, Fiorence, Italy, Sep 1984,
pp.217-221.

PLUSS - Proposition of a Language Useable for Structured Specifications. 
Algebraic specification language, built on top of ASL.  "A First
Introduction to PLUSS", M.C. Gaudel, TR, U Paris Sud, Orsay 1984.

PM - "PM, A System for Polynomial Manipulations", G.E. Collins, CACM
9(8):578-589 (Aug 1966).

PML - Parallel ML.  "Synchronous Operations as First-Class Values", J.H.
Reppy <jhr@research.att.com>, Proc SIGPLAN 88 Conf Prog Lang Design and
Impl, June 1988, pp.250-259.

POGO - Early system on G-15.  Listed in CACM 2(5):16 (May 1959).

Polka - Object orientation plus parallel logic, built on top of Parlog. 
"Polka: A Parlog Object-Oriented Language", Andrew Davison
<ad@mullauna.cs.mu.oz.au>, TR, Parlog Group, Imperial College, London 1988.
info: parlog@doc.ic.ac.uk

Poly - 

  1. D.C.J. Matthews, Cambridge, early 80's.  Polymorphic,
block-structured.  "An Overview of the Poly Programming Language", D.C.J.
Matthews <djcm@cl.cam.ac.uk>, in Data Types and Persistence, M.P. Atkinson
et al eds, Springer 1988.

  2. St Andrews U, Scotland.  Software Prac & Exp, Oct 1986.[?]

  3. Polymorphic language used in "Polymorphic Programming Languages",
David M. Harland, Ellis Horwood 1984.

POLYGOTH - Distributed language integrating classes with a parallel block
structure, including multiprocedures and fragments.  "Operational Semantics
of a Distributed Object-Oriented Language and its Z Formal Specification",
M. Benveniste <mbenveni@irisa.irisa,fr>, TR532, IRISA/INRIA-Rennes.

Ponder - Jon Fairbairn, <jf@cl.cam.ac.uk>.  Polymorphic, non-strict
functional language.  "Ponder and its Type System", J. Fairbairn, TR 31,
Cambridge U Computer Lab, Nov 1982.

POOL2 - Parallel Object-Oriented Language.  Philips Research Labs, 1987. 
Strongly typed, synchronous message passing, designed to run on DOOM (DOOM
= Decentralized Object-Oriented Machine).  "POOL and DOOM: The Object-
Oriented Approach", J.K. Annot, PAM den Haan, in Parallel Computers,
Object-Oriented, Functional and Logic, P. Treleaven ed.  "Issues in the
Design of a Parallel Object-Oriented Language", P. America, Formal Aspects
of Computing 1(4):366-411 (1989).  

POOL-I - Latest in the line of POOL languages.  "A Parallel Object-Oriented
Language with Inheritance and Subtyping", P. America et al, SIGPLAN Notices
25(10):161-168 (OOPSLA/ECOOP '90) (Oct 1990).

POOL-T - Object-oriented, concurrent, synchronous.  Predecessor of POOL2. 
"Definition of the Programming Language POOL-T", Esprit Project 415, Doc.
0091, Philips Research Labs, Eindhoven, Netherlands, June 1985.

POP-2 - Robin POPplestone 1968.  Implemented many of Landin's ideas,
including streams, closures, and functions as first-class citizens.  "POP-2
Papers", R.M. Burstall et al, Oliver & Boyd 1968.  "Programming in POP-2",
R.M. Burstall et al, Edinburgh U Press 1971.  Forerunner of POP-11.

POP-10 - Evolved from POP-2.  "POP-10 User's Manual", D.J.M. Davies, CS
R25, U West Ontario, 1976.

POP-11 - Robin POPplestone, 1970.  It's like FORTH (stack-oriented,
extensible, efficient).  It's like LISP (functional, dynamically typed,
interactive, garbage-collected).  And the syntax is like Pascal. 
"Programming in POP-11", J. Laventhol, Blackwell 1987.  Implementations:
POPLOG (U Sussex), AlphaPop for Mac (Computable Functions Inc, 413-253-
7637).

POP++ - An extension of POPLOG.  Available from Integral Solutions.

POPCORN - AI system built on POP-2.  "The POPCORN Reference Manual", S.
Hardy, Essex U, Colchester, 1973.

Poplar - Morris, 1978.  A blend of LISP with SNOBOL4 pattern matching and
APL-like postfix syntax.  Implicit iteration over lists, sorting primitive.
"Experience with an Applicative String-Processing Language", J.H. Morris et
al, 7th POPL, ACM 1980, pp.32-46.

POPLER - A PLANNER-type language for the POP-2 environment.  "Popler 1.6
Reference Manual", D. Davies et al, U Edinburgh, TPU Report No 1 (May
1973).

POPLOG - U Sussex.  Language for the two-stack virtual machine which
underlies the POPLOG interactive environment.  POPLOG supports POP-11,
LISP, Prolog and SML via shared data structures and incremental
compilation, and is available for most workstations.
info: Robin Popplestone <pop@cs.umass.edu> (413)253-7637

Port - Waterloo Microsystems (now Hayes Canada) ca. 1979.  Imperative
language descended from Zed.  "Port Language" document in the Waterloo Port
Development System.

Portable Standard Lisp - "A Portable Lisp System", M.L. Griss et al, Proc
1982 ACM Symp on Lisp and Functional Prog, Aug 1982.

PORTAL - Process-Oriented Real-Time Algorithmic Language.  "PORTAL - A
Pascal-based Real-Time Programming Language", R. Schild in Algorithmic
Languages, J.W. deBakker et al eds, N-H 1981.

Port Language - "Communicating Parallel Processes", J. Kerridge et al, Soft
Prac & Exp 16(1):63-86 (Jan 1986).

POSE - 1967.  An early query language.  "POSE: A Language for Posing
Problems to Computers", S. Schlesinger et al, CACM 10:279-285 (May 1967).

POSTQUEL - "The Design of POSTGRES", M. Stonebraker et al, Proc ACM SIGMOD
Conf, June 1986.

PostScript - J. Warnock et al, Adobe Systems, ca. 1982.  Interpretive
FORTH-like language used as a page description language by Apple
LaserWriter, and now many laser printers and on-screen graphics systems. 
"PostScript Language Reference Manual" ("The Red Book"), Adobe Systems, A-W
1985.

PPL - Polymorphic Programming Language.  Interactive and extensible, based
on APL.  "Some Features of PPL - A Polymorphic Programming Language", T.A.
Standish, SIGPLAN Notices 4(8) (Aug 1969).

P-Prolog - Parallel logic language.  "P-Prolog: A Parallel Logic Language
Based on Exclusive Relation", R. Yang et al, Third Intl Conf on Logic Prog,
1986, pp.255-269.

PREP - PRogrammed Electronics Patterns.  Language for designing integrated
circuits.  "Computer Assisted Mask Production", R.L. Rosenfeld, Proc IEEE
57(9) Sep 1969.

PRESTO - Bershad et al, U Washington 1987.  A parallel language for shared-
memory multiprocessors, built on top of C++.  Provides classes for threads
and spinlocks.  Also Mesa-style monitors and condition variables.  "PRESTO:
A Kernel for Parallel Programming Environments", B.N. Bershad et al, U Wash
CS TR, Jan 1987.
info: presto@cs.washington.edu
ftp: cs.washington.edu:pub/presto1.0.tar.Z

PRINT - PRe-edited INTerpreter.  Early math for IBM 705.  Sammet 1969,
p.134.

PRINT I - Early system on IBM 705.  Listed in CACM 2(5):16 (May 1959).

PRISM - Distributed logic language.  "PRISM: A Parallel Inference System
for Problem Solving", S. Kasif et al, Proc 1983 Logic Prog Workshop,
pp.123-152.

PRL - Proof Refinement Logic.  "PRL: Proof Refinement Logic Programmer's
Manual",  CS Dept, Cornell, 1983.  Versions: micro-PRL, lambda-PRL, nu-PRL.
(see NUPRL).

Probe - Object-oriented logic language based on ObjVlisp.  "Proposition
d'une Extension Objet Minimale pour Prolog", Actes du Sem Prog en Logique,
Tregastel (May 1987), pp.483-506.

PROC - Job control language used in the Pick OS.  "Exploring the Pick
Operating System", J.E. Sisk et al, Hayden 1986.

PROCOL - J. Van Den Bos, Erasmus U, Rotterdam.  Constraints and distributed
delegation.  "PROCOL: A Parallel Object Language with Protocols", J. Van
Den Bos et al, SIGPLAN Notices 24(10):95-102 (OOPSLA '89) (Oct 1989).

PROFILE - Simple language for matching and scoring data.  "User's Manual
for the PROFILE System", Cambridge Computer Assoc (May 1974).

PROGENY - 1961.  Report generator for UNIVAX SS90.

Prograph - Visual object-oriented dataflow language.  Available for Mac. 
TGS Systems (902) 429-5642.

PROJECT - Subsystem of ICES.  Sammet 1969, p.616.

Prolog - PROgrammation en LOGique.  (Original name: SYSTEM Q).  Alain
Colmerauer and Phillipe Roussel, U Aix-Marseille 1971.  First implemented
in ALGOL-W in 1972.  Designed originally for natural-language processing. 
LUSH (or SLD) resolution theorem proving based on the unification alorithm. 
No user-defined functions, and no control structure other than the built-in
depth-first search with backtracking.  "Programming in Prolog", W.F.
Clocksin & C.S. Mellish, Springer 1985.  Early collaboration between
Marseille and R. Kowalski at U Edinburgh continued until about 1975.  (see
LM-Prolog, SB-Prolog).
ftp: cpsc.ucalgary.ca:pub/prolog1.1 - Prolog interpreter in Scheme
     aisun1.ai.uga.edu:ai.prolog/eslpdpro.zip ESL Prolog for MS-DOS
     aisun1.ai.uga.edu:ai.prolog/?  Open Prolog for Mac
    cs.utah.edu:pub/frolic.tar.Z - Prolog interpreter in Common LISP.

Prolog-2 - An implementation of Edinburgh Prolog.  "An Advanced Logic
Programming Language", Anthony Dodd.
info: Nick Henfrey, ESL (Expert Systems Ltd, Magdalen Centre, Oxford
Science Park, Oxford, OX4 4GA, tel 0865 784474).

Prolog-II - Prolog with two new predicates: 'dif' for coroutines and
'freeze' for delayed evaluation.  "Prolog II Reference Manual and
Theoretical Model", A. Colmerauer, Internal Report, GroupeIA, U Aix-
Marseille (Oct 1982).  Available from ExperIntelligence, Santa Barbara CA.

Prolog-III - A. Colmerauer, U Aix-Marseille, ca 1984.  Marseille Prolog,
with unification replaced by constraint resolution.  [deferred goals too?] 
(Not to be confused with Prolog 3, a commercial product.)  "Opening the
Prolog-III Universe", BYTE 12(9):177-182 (Aug 1987).  "An Introduction to
Prolog III", A. Colmerauer, CACM 33(7):69-90 (1990).

Prolog++ - Phil Vasey, Logic Programming Associates.  Prolog with object-
oriented features added.  For MS-DOS and X-windows.  Distributed by AI Intl
Ltd in England and Quintus in the USA.

Prolog-Linda - 

  1. Prolog extended with Linda-style parallelism.  Proc 4th Australian
Conf on Artif Intell.
ftp: bison.cs.uwa.oz.au

  2. Neil MacDonald, U Edinburgh 1989.  Another Prolog extended with Linda,
implemented on a Computing Surface.

PROMAL - Computer Language, Mar 1986, pp.128-134. [?]

Pronet - "The Design of a Programming Language Based on Connectivity
Networks", R. LeBlanc et al, Proc 3rd Intl Conf Distrib Comp Sys, IEEE
1982, pp.532-541.

Proposal Writing - Extension of FORTRAN for proposal writing.  Sammet 1969,
p.170.

PROSE - 

  1. PROblem Solution Engineering.  Numerical problems including
differentiation and integration.  "Computing in Calculus", J. Thames,
Research/Development 26(5) (May 1975).

  2. A constraints-and-sequencing system similar to Kaleidoscope. 
"Reflexive Constraints for Dynamic Knowledge Bases", P. Berlandier et al in
Proc First Intl CS Conf '88: AI: Theory and Appls, Dec 1988.

PROSPER - "PROSPER: A Language for Specification by Prototyping", J.
Leszczylowski, Comp Langs 14(3):165-180 (1989).

ProTalk - Quintus.  An object-oriented Prolog.

PROTEUS - Extensible language, core of PARSEC.  "The Design of a Minimal
Expandable Computer Language", J.R. Bell, PhD Thesis, CS, Stanford U (Dec
1968).

Protosynthex - Query system for English text.  Sammet 1969, p.669.

PS-ALGOL - Persistent Algol.  ca 1981, released 1985.  A derivative of S-
Algol.  Database capability derived from the longevity of data.  "The PS-
Algol Reference Manual", TR PPR-12-85, CS Dept, U Glasgow 1985.  IBM PC
version available from CS Dept, U Strathclyde, Glasgow.

Psather - Parallel version of Sather, under development.

PSML - Processor System Modeling Language.  Simulating computer systems
design.  A preprocessor to SIMSCRIPT.  "Processor System Modeling - A
Language and Simulation System", F. Pfisterer, Proc Symp on Simulation of
Computer Systems (Aug 1976).

P-TAC - Parallel Three Address Code.  "P-TAC: A Parallel Intermediate
Language", Z. Ariola et al, Fourth Intl Conf Func Prog Langs and Comp Arch,
ACM Sept 1989.  (see Kid).

PUB - PUBlishing.  1972.  An early text-formatting language for TOPS-10,
with syntax based on SAIL.  Inluenced TeX and Scribe.  "PUB: The Document
Compiler", Larry Tesler, Stanford AI Proj Op Note, Sept 1972.

PUFFT - "The Purdue University Fast FORTRAN Translator", Saul Rosen et al,
CACM 8(11):661-666 (Nov 1965).