The Language List - Version 2.3 (Part 8 of 11) 
Author Message
 The Language List - Version 2.3 (Part 8 of 11)

(See Strand). Implementations: MacParlog and PC-Parlog from Parallel Logic
Programming Ltd, Box 49 Twickenham TW2 5PH, UK.

Melbourne.  Object orientation plus parallel logic, built on top of
MacParlog.  "Parlog++: A Parlog Object-Oriented Language", A. Davison,
Parlog Group, Imperial College 1988.  Sold by PLP Ltd.  

PARMACS - Argonne Natl Lab.  The "Argonne macros".  A package of macros
written in m4 for portable parallel programming, using monitors on shared
memory machines, and message passing on distributed memory machines.  E.
Lusk et al, "Portable Programs for Parallel Processors", HRW 1987.  (See

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).

Parsley - Barber, Summit Software.  A Pascal extension for construction of
parse trees.  Iterators.  "PARSLEY: A New Compiler-Compiler", in Software
Develelopment Tools, Techniques and Alternatives, Arlington VA, Jul 1983,

PARTS - Digitalk.  Visual language for OS/2 2.0.

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.  Pascal has been
extremely influential in programming language design, and has led to a
great number of variations and descendants.  "The Programming Language
Pascal", N. Wirth, Acta Informatica 1:35-63 (1971).  "PASCAL User Manual
and Report", K. Jensen & N. Wirth, Springer 1975 made significant revisions
to the language.
   ANSI/IEEE770X3.97-1993, very similar to ISO Pascal, but does not include
conformant arrays.
   BS 6192, "Specification for Computer Programming Language Pascal",
British Standards Institute 1982.
   ISO 7185-1983(E).  Level 0 and Level 1.  Changes from Jensen & Wirth's
Pascal include: name equivalence; names must be bound before they are used;
loop index must be local to the procedure; formal procedure parameters must
include their arguments; conformant array schemas.  

Pascal- - Pascal subset used in Brinch Hansen on Pascal Compilers, P.
Brinch Hansen, P-H 1985.

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/L - A SIMD parallel extension of Pascal.  "Implementation of an
Array and Vector Processing Language", C. Fernstrom, Intl Conf Parallel
Proc, IEEE, pp.113-127 (1982)

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 1984, ISBN 0-

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.  June, 1975.  A strict subset of Pascal,
omits scalar types, subranges, sets, files, pointers, packed structures,
'with' and 'goto.  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.

Pascal-SC - ESPRIT DIAMOND Project.  An extension of Pascal for numerical
analysis, with controlled rounding, overloading, dynamic arrays and
modules.  "PASCAL-SC, A Computer Language for Scientific Computation", G.
Bohlender et al, Academic Press 1987.

Pasqual - "Pasqual: A Proposed Generalization of Pascal", R.D. Tennent,
TR75-32, Queen's U, Canada, 1975.

PASSIM - Simulation language based on Pascal.  "PASSIM: A Discrete-Event
Simulation Package for Pascal", D.H Uyeno et al, Simulation 35(6):183-190
(Dec 1980).

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


  1. Personalized Array Translator.  Small subset of APL.  Sammet 1969,


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.  Extensions to C providing a shared memory
SIMD model on message passing machines.

pC++ - Data parallel extension to C++.  Classes and methods for managing
distributed collections.  "Distributed pC++: Basic Ideas for an Object
Parallel Language", F. Bodin et al, Proc Supercomput 91, ACM SIGARCH,

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).


  1. Printer Control Language.  Document description language used by
Hewlett-Packard Laserjet printers, a superset of HP-GL/2.  PCL 5 Printer
Language 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 Conversion Language.  Honeywell.  Command language for file
transfer between I/O devices on the CP-V and CP-6 operating systems.

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

  5. Programmable Controller Language.  Arthur Duncan and John Hutchinson,
GE, 1981.  A partial implementation of Ada for numerical control
applications.  Delivered as part of the GE Mark Century 2000.  Perhaps the
first known example of the use of Ada's features in an embedded system.

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.

PCN - Program Composition Notation.  Specification language for parallelism
between C and fortran modules.  "Productive Parallel Programming: The PCN
Approach", I. Foster et al, Sci Prog 1(1):51-66 (1992).

P-code - The intermediate code produced by the Pascal-P compiler.  Assembly
language for a hypothetical stack machine, the P-machine, said to have been
an imitation of the instruction set for the Burroughs Large System.  The
term was first used in Algorithms + Data Structures = Programs, N. Wirth,
P-H 1976.  Byte articles on writing a Pascal Compiler in Northstar BASIC
(ca Aug 1978) also used the term.  Later used in Apple Pascal, and as the
intermediate language in the UCSD P-system.  "A Comparison of PASCAL
Intermediate Languages", P.A. Nelson, SIGPLAN Notices 14(8):208-213 (Aug
1979).  Variants: P2 P-code, P4 P-code, UCSD P-code, LASL P-code.
info: USUS, Box 1148, La Jolla, CA 92038

PC-TILES - A visual language. [?]

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).

PDIL - Agence d'Informatique, France, 1970's.  Language for description of
communication protocols, part of the RHIN project. [?]

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).


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

  2. Process and Experiment Automation Real-Time Language.  A real-time
language for programming process control systems, widely used in Europe.
Size and complexity exceeds Ada.  DIN 66253 Teil 2, "Programmiersprache
PEARL", Beuth-Verlag, Nov 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]).

  4. Brian Randell, ca 1970.  Multilevel language, mentioned in Machine
Oriented Higher Level Languages, W. van der Poel, N-H 1974. [?]

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 - Jul 1978, revised Jan 1979.  DoD requirements that led to APSE.

PECOS - Constraint-based language, built on the object-oriented module of
Le-Lisp.  "Pecos Reference Manual", ILOG, 1990.  ILOG, 12 av Raspail, BP 7,
F94251 Gentilly, France.

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

PEF - PowerPC Executable Format.  Binary object code format used by Apple.

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

printing formatted reports.  Regular expression primitives, dynamically-
scoped variables and functions, extensible runtime libraries, exception
handling, packages.  Version 5 adds nested data structures and object-
oriented features.  "Programming Perl", Larry Wall et al, O'Reilly &
Assocs. for Unix, MS-DOS, Amiga
    // for Sparc
    // for Mac
uucp: osu-cis

PFL - Persistent Functional Language.  A. Poulovasslis, Kings College and
Carol Small, Birkbeck College.  A functional database language.  "A
Functional Programming Approach to Deductive Databases", A. Poulovasslis et
al, Proc VLDB '91.

Pfortran - Parallel Fortran.  U Houston.  Extensions to Fortran providing a
shared memory SIMD model on message passing machines.  Under development.
"Pfortran: A Parallel Dialect of Fortran", L.R. Scott, Fortran Forum
11(3):20-31 (Sep 1992).

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.

pH - Parallel Haskell.  A parallel variant of Haskell incorporating ideas
from Id and Sisal.  Under development.

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.

PICL - Language on Ncube or iPSC machines?

Pictorial Janus - K. Kahn, Xerox.  Visual extension of Janus.  Requires
Strand88 and a postscript interpreter.

pidgen+ - For Apple ][.  Published in DDJ?*

PIE - CMU.  Similar to Actus.

PIL - Procedure Implementation Language, subsystem of DOCUS.  Sammet 1969,

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


  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 ][ 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

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 - R.D. Russell, CERN, Nov 1971.  High-level machine-oriented language
for the PDP-11.  Similar to PL360.  Written in Fortran IV and cross-
compiled on other machines.

PL360 - Structured assembly language for IBM 360 and 370, with a few high-
level constructs, syntactically resembles ALGOL 60.  Its grammar is defined
entirely by operator precedence.  "PL/360, A Programming Language for the
360 Computers", N. Wirth, J ACM 15(1):37-74 (Jan 1968).

PL516 - Similar to PL360.  "PL 516, An ALGOL-like Assembly Language for the
DDP-516", B.A. Wichmann, Natl Phys Lab UK, Report CCU 9, 1970

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 IBM RT and R/6000 development.  "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.

PLAGO - A translator-interpreter for a PL/I subset.  "PLAGO/360 User's
Manual, Poly Inst Brooklyn.

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 - Konrad Zuse, ca. 1945.  The first programming language,
implemented for the Z3 computer.  Included arrays and records.  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

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 - PLAnner-like System Modeled on Actors.  Carl Hewitt, 1975.  The
first actor language.  Originally called Planner-73, and implemented in
MacLisp.  Lisp-like syntax, but with several kinds of parentheses and
brackets.  "A PLASMA Primer", B. Smith et al, AI Lab Working Paper 92, MIT
Oct 1975.  "Viewing Control Structures as Patterns of Passing Messages", C.
Hewitt, AI Lab 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/C - A High Performance Compiler" H.L.
Morgan et al, Proc SJCC, AFIPS 38:503-510 (1971).

PL/I - Programming Language I.  George Radin, 1964.  Originally 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.  EPL, a dialect
of PL/I, was used to write almost all of the Multics OS.  PL/I 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.  PL/I is still widely used, at
IBM and elsewhere.  The CFS file system used at Argonne to manage terabytes
of data is written in PL/I., PL/I interpreter

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

PL/I Subset G - ("General Purpose")  The commercial PL/I subset (i.e., what
was actually implemented by most vendors).  ANS X3.74-1981.

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 rewrite-rule language,
optimized 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.  Gary Kildall, MAA (later
Digital Research) for Intel, 1972.  A very low level language incorporating
ideas from PL/I, ALGOL and XPL.  Integrated macro processor.  CP/M was
written to support development of the PL/M compiler (not the other way
around!).  "PL/M-80 Programming Manual", Doc 98-268B, Intel 1976.  "PL/M
Programmer's Guide", Doc 452161-003, Intel.  "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/M-386.  parser for PL/M-386

PL/MP - C.J. Tan, IBM TJWRC, 1978.  A microprogramming language resembling
a subset of PL/I.  "Code Optimization for Microcode Compilers", C.J. Tan,
AFIPS Conf Proc 47:649-655 (1978).

PL/P - Programming Language, Prime.  Russ Barbour, PRIME Computer, late
70's.  Subset of PL/I used internally for implementation of PRIMOS.  (See

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, for the IBM 360 and
370.  A machine-oriented language derived from PL/I, permiting inline
assembly code and control over register usage.  Much of IBM 360
OS/MFT/MVT/SVS/MVS was written in it.  Used internally, never released to
the public.  Documented by various IBM internal ZZ-? publications.  "PL/S,
Programming Language/Systems", W.R. Brittenham, Proc GUIDE Intl, GUIDE 34,
May 14, 1972, pp.540-556.  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,

PLUM - U. Maryland.  Compiler for a substantial subset of PL/I for the
Univac 1100.  "PL/I Programming with PLUM", M.V. Zelkowitz, Paladin House,

Plural EuLisp - EuLisp with parallel extensions.  "Collections and Garbage
Collection", S.C. Merall et al, in Memory Management - IWMM92, Springer
1992, pp.473-489.

PLUS - Late 60's.  Machine-oriented systems language used internally by

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.

PLZ - [?]

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.

Impl, June 1988, pp.250-259.

PNU-Prolog - A parallel extension of NU-Prolog, implemented as a

POCAL - PETRA Operator's CommAnd Language.

POFAC - A subset of Fortran.  Mentioned in Machine Oriented Higher Level
Languages, W. van der Poel, N-H 1974, p.273.  "POFAC Description", R.
Haentjens, Report 19, Cenre d'Information, Ecole Royale Militaire,
Brussels, 1973.

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

Poly -

  1. D.C.J. Matthews, Cambridge, early 80's.  Polymorphic,
block-structured.  "An Overview of the Poly Programming Language", D.C.J.

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",

functional language.  Has a type system similar to Girard's System F
("Proofs and Types", J-Y. Girard, Cambridge U Press 1989), also known as
Lambda-2 or the polymorphic lambda calculus.  Ponder adds extra recursive
'mu' types to those of F, allowing more general recursion.  "Ponder and its
Type System", J. Fairbairn, TR 31, Cambridge U Computer Lab, Nov 1982.
"Subtyping in Ponder", V. Paiva, TR 203, Aug 1990.

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-1 - Package for Online Programming.  Edinburgh, 1966.  First of the POP
family of languages.  Used reverse Polish notation.  Implemented as a
threaded interpreter.  EPU-R-17, U Edinburgh (Jul 1966).  "POP-1: An Online
Language", R. Popplestone, Mach Intell 2, E. Dale et al eds, Oliver and
Boyd, Edinburgh 1968.

POP-2 - Robin POPplestone, Edinburgh, 1967.  An innovative language
incorporating many of Landin's ideas, including streams, closures, and
functions as first-class citizens.  Algol-like syntax.  The first
implementation was named Multi-POP, based on a REVPOL function written in
POP-1, producing the reverse-polish form as output.  "POP-2 Papers", R.M.
Burstall et al, Oliver & Boyd 1968.  "Programming in POP-2", R.M. Burstall
et al, Edinburgh U Press 1971.  "POP-2 User's Manual", R. Popplestone, Mach
Intell 2, E. Dale et al eds, Oliver and Boyd, Edinburgh 1968.

POP-10 - Julian Davies, 1973.  Descendant of POP-2, for the PDP-10.  "POP-
10 User's Manual", D.J.M. Davies, CS R25, U West Ontario, 1976.

Pop-11 - Robin POPplestone, 1975.  Originally for the PDP-11.  In some
ways, Pop-11 is like FORTH (stack-oriented, extensible, efficient).  It's
also like LISP (functional, dynamically typed, interactive, garbage-
collected).  And the syntax is like Pascal (block-structured).

Implementations: AlphaPop for Mac (Computable Functions Inc, 413-253-7637).
PopTalk [?]  POPLOG (U Sussex) available for VAX/VMS and most workstations.

POP-9X - Proposed BSI standard for Pop-11.

POP++ - An object-oriented extension of POPLOG.  Available from Integral

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

POPLOG - U Sussex.  Language for the two-stack virtual machine (PVM) which
underlies the POPLOG interactive environment.  POPLOG supports POP-11,
LISP, Prolog and ML via shared data structures and incremental compilation.
"POPLOG's Two-Level Virtual Machine Support for Interactive Languages", R.
Smith et al, in Research Directions in Cognitive Science, v.5 (1992).

PopTalk - A commercial object-oriented derivative of POP, used in the
Expert System MUSE.  Cambridge Consultants.

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 - "The Portable Standard LISP Users Manual", TR-10,
CS Dept, U Utah, Jan 1982.  "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 - POSTGRES QUERy Language.  Language used by the database system
POSTGRES.  "The Design of POSTGRES", M. Stonebraker et al, Proc ACM SIGMOD
Conf, June 1986.    Version 4.0

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

POSYBL - PrOgramming SYstem for distriButed appLications.  Ioannis
Schoinas.  A Linda implementation for Unix networks.

PowerFuL - Combines functional and logic programming, using "angelic

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

PPLambda - Essentially the first-order predicate calculus superposed upon
the simply-typed polymorphic lambda-calculus.  The object language for LCF.
"Logic and Computation: Interactive Proof with Cambridge LCF", L. Paulson,
Cambridge U Press, 1987.

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.

PRA - PRAgmatics.  Language used by COPS for specification of code
generators.  "Metalanguages of the Compiler Production System COPS", J.
Borowiec, in GI Fachgesprach "Compiler-Compiler", ed W. Henhapl, Tech Hochs
Darmstadt 1978, pp.122-159.

pre-cc - PREttier Compiler Compiler.

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.

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

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,

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.  A concurrent object-
oriented language with protocols, delegation, persistence and constraints.
"PROCOL - A Concurrent Object Language with Protocols, Delegation and
Constraints", J. van den Bos et al, Acta Informatica 28:511-538 (1991).

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 - Programming in Graphics.  Tomasz Pietrzykowski, Technical U,
Halifax.  A visual dataflow language.  Operation icons are connected by
datalinks through which information flows.  Supports object orientation.
First implemented in Pascal, Acadia U, 1982, later in Prolog at Tech U.
Current versions are in C and Prograph.  Available for Mac, soon for
Windows and Unix.  TGS Systems (902) 429-5642.

PROGRES - PROgrammed Graph REwriting Systems.  A. Scheurr, Aachen 1991.  A
very high level language based on graph grammars.  Supports multiple
inheritance and types of types, declarative specification of graphical
attributes, visual specification of graph rewrite rules, builtin
backtracking of graph modifications, Used for implementing abstract data
types with graph-like internal structure, as a visual language for the
graph-oriented database GRAS, and as a rule-oriented language for
prototyping nondeterministically specified data/rule base transformations.
A. Scheurr, "Introduction to PROGRES, an Attribute Graph Grammar Based
Specification Language", in Proc WG'89 Workshop on Graphtheoretic Concepts
in Computer Science", LNCS 411, Springer 1991.* for Sun4

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

Prolog - PROgrammation en LOGique.  Alain Colmerauer and Phillipe Roussel,
U Aix-Marseille 1971.  First implemented 1972 in ALGOL-W.  Designed
originally for natural-language processing.  LUSH (or SLD) resolution
theorem proving based on the unification algorithm.  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.

implementation of Prolog in C.  No garbage collection.  Not PD.
  SB-Prolog - Stony Brook Prolog.  PD Prolog implementation for Unix.
    // and ff141  Amiga version 2.3.2
  LM-Prolog - Lisp Machine Prolog.  K. Kahn et al, 1983.  "LM-Prolog User
Manual", M. Carlsson et al, Uppsala Dec 1983. - Prolog interpreter in Zetalisp
  Other implementations: - Prolog interpreter in Scheme
    // - ESL Prolog for MS-DOS
    // - Open Prolog for Mac
        // - Prolog interpreter in Common LISP.
    // - Draft ISO standard
        // -
                Prolog to C translator via the WAM

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).  Version 1.2 for MS-

Prolog+ - [?]

Prolog++ - Phil Vasey, Logic Programming Associates.  Prolog with object-
oriented features added.  For MS-DOS and X-windows.  "Prolog++: The Power
of Object-Oriented and Logic Programming", Christorpher D.S. Moss, A-W
1994, ISBN 0-20-156507-2.  Distributed by AI Intl Ltd in England and
Quintus (800)542-1283.

Prolog-D-Linda - Embeds the Linda parallel paradigm into SISCtus Prolog.

Prolog-Linda -

  1. Prolog extended with Linda-style parallelism.  Proc 4th Australian
Conf on Artif Intell.

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

PROMAL - PROgrammer's Microapplication Language.  Systems Management
Assocs.  Interpreted C-like language for MS-DOS, C=64 and Apple ][.
Computer Language, Mar 1986, pp.128-134.

PROMELA - Language for building finite state machines. [?]

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.

PROOF/L - Language with implicit parallelism.  Functional, object-oriented.
J Parallel Dist Comp 12:202-212 (1991).  Forthcoming TR from RADC. [?]

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


  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.

ProSet - U Essen, 1990.  Formerly SETL/E.  A derivative of SETL with
Ada-like syntax.  "SETL/E, A Prototyping System Based on Sets", E.E.
Doberkat et al, in Tagungsband TOOL90, W. Zorn ed, pp.109-118, U Karlsruhe,
Nov 1990.  "ProSet - A Language for Prototyping with Sets", E.-E. Doberkat
et al, in Proc Third Intl Workshop on Rapid System Prototyping, N.
Kanopoulos ed, IEEE Comp Soc Press, June 1992, pp.235-248.

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

ProTalk - Quintus.  An object-oriented Prolog.


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

2. A language for prototyping parallel languages.  Interpreter based on

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

PS 440 - K. Lagally, ca 1974.  The system implementation language for the
Telefunken TR 440 computer.

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 extension of Sather for clustered shared memory model.
Threads synchronized by monitor objects ("gates").  Locality assertions and
placement operators. "pSather Monitors: Design, Tutorial, Rationale and
Implementation", J.A. Feldman et al, TR-91-031 and TR-93-028, ICSI,
Berkeley, CA.  Implementation on CM-5.

PSETL - Parallel SETL - An extension of SETL for operating specification
and simulation, including process management, I/O and interprocess
communication proimitives.  "Description of Operating Systems Using Very
High Level Diction", Gabriel Leshem, NYU 1984.

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).

PUMPKIN - "PUMPKIN - (Another) Microprogramming Language", G.R. Lloyd,
SIGMICRO Newsletter 5:15-44 (Apr 1974).

PVM - Parallel Virtual Machine.  Intermediate language used by the Gambit
compiler for Scheme.  [Also by Multilisp?]

Python -

language combining ideas from ABC, C, Modula-3, Icon, etc.  Intended for
prototyping or as an extension language for C applications.  Modules,
classes, user-defined exceptions.  "Linking a Stub Generator (AIL) to a
Prototyping Language (Python)", Guido van Rossum et al, Proc 1991 EurOpen
Spring Conf.  Available for Unix, Amoeba and Mac.  Version 1.0.0.

  2. Compiler for CMU Common LISP.

Q - Very high level language based on generalized (lazy) sequences.
Lexical scope, some support for logical and constraint programming.
Macros.  Implemented in C++.*

QA4 - Question-answering language.  A procedural calculus for intuitive
reasoning.  A LISP-based pattern-matching language for theorem proving.
"QA4, A Language for Writing Problem-Solving Programs", J.F. Rulifson et
al, Proc IFIP Congress 1968.

QBE - Query By Example.  Moshe Zloof, IBM 1975.  A user-friendly query
language.  "QBE: A Language for Office and Business Automation", M.M.
Zloof, Computer pp.13-22 (May 1981).

Qlambda - "Queue-based Multi-processing Lisp", R. Gabriel & J. McCarthy,
Proc 1984 Symp Lisp and Functional Prog, pp.25-44.


  1. SRI 1973.  General problem solving, influenced by PLANNER.  QA4
features merged with INTERLISP.  "QLISP - A Language for the Interactive
Development of Complex Systems", E. Sacerdoti et al, NCC 45:349-356, AFIPS

  2. A parallel LISP.  "Qlisp", R. Gabriel et al in Parallel Computation
and Computers for AI, J. Kowalik ed, 1988, pp.63-89.

QLOG - An integration of logic programming into LISP.  "QLOG - The
Programming Environment for Prolog in LISP", H.J. Komorowski in Logic
Prgramming, K.L. Clark et al eds, Academic Press 1982.

Q'NIAL - Queen's U, Canada.  A portable incremental compiler for NIAL,
written in C.  "The Q'NIAL Reference Manual", M.A. Jenkins, Queen's U
Report, Dec 1983.  Versions for Unix and MS-DOS, from NIAL Systems Ltd,
Ottawa Canada, (613)234-4188.

QPE - Two-dimensional pictorial query language.  "Pictorial Information
Systems", S.K. Chang et al eds, Springer 1980.

Q-systems.  A. Colmerauer, 1969.  A rewrite system with one-way
unification, used for English-French translation.  It led to Prolog.  "The
Birth of Prolog" A. Colmerauer et al, SIGPLAN Notices 28(3):37-52 (March

Quake - Stephen Harrison, DEC SRC, 1993.  A string-oriented language
designed to support the construction of Modula-3 programs from modules,
interfaces and libraries.

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

QUEL - Query language used by the database management system INGRES.

Quest -

  1. A language designed for its simple denotational semantics.  "The
Denotational Semantics of Programming Languages", R. Tennent, CACM
19(8):437-453 (Aug 1976).

  2. QUantifiers and SubTypes.  Language with a sophisticated type system.
Just as types classify values, "kinds" classify types and type operators.
Explicit universal and existential quantification over types, type
operators, and subtypes.  Subtyping is defined inductively on all type
constructions, including higher-order functions and abstract types.  User-
definable higher-order type operators.  "Typeful Programming", Luca

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

Quicksilver - dBASE-like compiler for MS-DOS from WordTech, Orinda, CA.

QUIKSCRIPT - Simulation language derived from SIMSCRIPT, based on 20-GATE.
"Quikscript - A Simpscript-like Language for the G-20", F.M. Tonge et al,
CACM 8(6):350-354 (June 1965).

QUIKTRAN - FORTRAN-like, interactive with debugging facilities.  Sammet
--Bill Kinnersley

226 Transfer complete.

Tue, 18 Feb 1997 20:17:57 GMT  
 [ 1 post ] 

 Relevant Pages 

1. The Language List - Version 2.3 (Part 11 of 11)

2. The Language List - Version 2.3 (Part 6 of 11)

3. The Language List - Version 2.3 (Part 5 of 11)

4. The Language List - Version 2.3 (Part 4 of 11)

5. The Language List - Version 2.3 (Part 3 of 11)

6. The Language List - Version 2.3 (Part 2 of 11)

7. The Language List - Version 2.3 (Part 9 of 11)

8. The Language List - Version 2.3 (Part 1 of 11)

9. The Language List Version 2.2 (Part 11 of 11)

10. The Language List - Version 2.4 (Part 1 of 11)


Powered by phpBB® Forum Software