billk@hawk.cs.ukans.edu (Bill Kinnersley) (04/28/91)
---- The Language List Version 1.1 Collected information on over 900 languages, past and present. Last Modified: April 27, 1991 Bill Kinnersley Computer Science Department University of Kansas Lawrence, KS 66045 billk@hawk.cs.ukans.edu First release: March 7, 1991 Started by: Tom Rombouts Ashton-Tate Product Development 20101 Hamilton Avenue, Torrance, CA 90277 Work: (213)538-7108 Home: 535 Esplanade, #502 Redondo Beach, CA 90277 Ans Svc: (213)543-3811 USENET: tomr@ashtate.A-T.com Introduction: This document is intended to become among the longest lists of computer programming language names ever assembled or compiled. (But not interpreted! HHOJ) It is more for fun than to be any sort of scholarly, definitive list. As of this writing, about 50 netters have contributed to it. Their names and e-mail addresses appear at the end. It is my dream that this can become a living document with at least one definitive reference work included for each entry. Most entries should ultimately contain the following information: Name: An explanation of the language name, which, in perhaps 80% of the cases, is some form of acronym or abbreviation. Date of first implementation: When possible, a year in parentheses indicates when a language first appeared. Since the design, implementation, and wide acceptance of a language can take place over a several year period, such dates should be considered approximate. Definitive reference work or publisher: At least one reference work on the language, in theory as definitive or as official as possible, should be included. In the case of a commercial product, the software publisher and city is often listed. Few people who see a language in this file should ever have to ask: "How can I get more information on that language?" "See also:" Related languages or terms that may also be of interest. Some various comments or criticisms: "YOU LEFT OUT LANGUAGE ___!" - If this is the case, e-mail the relevant information to whoever is maintaining this list. (It may not be me by the time you read this.) A citing of at least one published reference to the language will help determine authenticity. "Clutter" - When in doubt, languages are included. To compensate for this "clutter" effect, more widespread languages such as C or FORTRAN should have longer entries. The "Published" Rule - In order to reduce clutter somewhat, a language should be "published" to be included in this list. There is no precise criterion here. To state a rough example, a language devised solely for a PhD thesis would not necessarily be included. However, if material on that language was published in a technical journal or otherwise distributed, or if it formed the basis for additional research, it should be included. In case it is unclear, a language does NOT have to be implemented (actually running on at least one computer) to be included. Many theoretical languages appearing in the ACM SIGPLAN Notices fall into this category. One gray area, however, is Internet/Usenet or RBBS distribution. In general, when in doubt, an entry will be included. (Future builders of this list may be able to include a wider range of academic "theory" languages. I do not have the research resources for this. At minimum the author's name, university or company, and date should be listed.) For historical completeness, roughly 200 early pre-1959 "automatic programming systems" were included. (Based on a list from CACM 2(5):16, May 1959.) It can be argued that many of these are not really "programming languages" as the term is used today. Languages vs. dialects - Again, when in doubt, a term was included. Thus, languages with many variants or flavors will have many extra entries. This is intended to make the document more useful to beginners, not to make common languages appear more popular or "better." (In defense of this practice, any two implementations of a given language almost invariably have at least a few differences. Some have suggested that if there are various command line arguments, each permutation of command line arguments could also be considered a distinct language! Note also that some names ("ML", "Vulcan") have been used for two or more distinct languages. Languages vs. versions - There has been criticism that there are separate entries for ALGOL 58, ALGOL 60, etc, but not for C++ 1.0, C++ 1.2, C++ 2.0, etc. This was simply an oversight on my part. (I personally feel it is easier to have separate entries for each, however.) Any language that has some sort of ANSI or IEEE standard should include the dates and versions approved. Also, for specific brands such as Turbo Pascal the versions and release dates could be added within that entry. Classification - This document makes no attempt at classification except by name. However, the following broad categories seem to apply: assemblers, general purpose languages, specialized languages, query languages, 4GL's, application sub-languages, specification languages, experimental languages, and theoretical languages. The precise definitions of these categories can be debated elsewhere. Editorial Comments: Warning - as in the many Usenet jargon files, some entries here contain remarks that could be construed as editorial in nature. For instance, if one happened to called Pascal "ALGOL-like," it might manage to offend both some ALGOL and some Pascal users. Also, some historical origin questions are disputed to this day. This document is intended to aid the student or researcher, not to ignite flame wars among old-time hackers. The reader is encouraged to refer to other sources for more definitive discussions of any particular language. When in doubt, "supposedly" or a "(?)" may appear to warn that the material is uncertain. Phrasing like "somewhat" or "roughly" is also used liberally. Brand names - Some entries, such as "Turbo Pascal" have drawn early concern. However, since many packages offer non-standard extensions to the base language, it can be argued that from a BNF grammar point of view, Microsoft C and Turbo C (for example) are two distinct languages. On the other hand, this is not intended to become a catalog of commercial programming products. Material in "[ ]" brackets clearly needs editorial work or research. * * * * * * * 473L Query - English-like query system for Air Force 473L system. Sammet 1969, p.665. 9 PAC - Early report generator, ca. 1961. Sammet 1969, p.314. A0 or A-0 - Possibly the first compiler ever. Grace Hopper's team at Remington Rand, 1952, for the UNIVAC I or II. Later internal versions: A- 1, A-2, A-3, AT-3. AT-3 was released as MATH-MATIC. Sammet 1969, p.12. ABC - Simple interactive language for beginners. Infinite precision arithmetic, multiple workspaces. Indentation is significant. "The ABC Programmer's Manual", Leo Geurts et al, P-H 1989. ftp: hp4nl.nluug.nl UNIX source, MSDOS and Mac executables. list: abc-list@cwi.nl maintained by Steven Pemberton <steven@cwi.nl>. ABCL/+ - Family of languages from Aki Yonesawa, Tokyo. ABLE - Simple language for accountants. "ABLE, The Accounting Language, Programming and Reference Manual," Evansville Data Proc Center, Evansville, IN, Mar 1975. Listed in SIGPLAN Notices 13(11) (Nov 1978) p.56. ACOM - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959). ACT ONE - Specification language. ACTUS - Language for the Illiac IV computer, derived from Glypnir. Descendants include Parallel Pascal, Vector C, and most recently CMU's language PIE. "A Language for Array and Vector Processors," R.H. Perrott, ACM TOPLAS 1(2):177-195, Oct 1979. Ada - Named for Ada Lovelace, arguably the world's first computer programmer. Designed by Jean Ichbiah for the U.S. Department of Defense. Ada is a large, complex block-structured language. Aimed primarily at embedded computer applications, Ada has facilities for real-time response, concurrency, hardware access, and reliable run-time error handling. In support of large-scale software engineering, it emphasizes strong typing, data abstraction and encapsulation. The type system uses name equivalence and includes both subtypes and derived types. Both fixed and floating point numerical types are supported. Control flow is fully bracketed: if-then-elsif-end if, case-is-when-end case, loop-exit-end loop, goto. Subprogram parameters are in, out, or inout. Variables imported from other packages may be hidden or directly visible. Operators may be overloaded, and so may enumeration literals. There are user-defined exceptions and exception handlers. An Ada program consists of a set of packages encapsulating data objects and their related operations. A package has a separately compilable body and interface. Ada permits generic packages and subroutines, possibly parametrized. Ada programming places a heavy emphasis on multitasking. Tasks are synchronized by the rendezvous, in which a task waits for one of its subroutines to be executed by another. The conditional entry makes it possible for a task to test whether an entry is ready. The selective wait waits for either of two entries or waits for a limited time. "Reference Manual for the Ada Programming Language", ANSI/MIL-STD-1815A, U.S. DoD (Jan 1983) repository - wsmr-simtel20.army.mil Ada 9x - Revision of Ada currently under development. ADAM - A DAta Management system. Adaplex - An extension of Ada to incorporate the functional data model for databases. "Adaplex: Rationale and Reference Manual 2nd ed", J.M. Smith et al, Computer Corp America, Cambridge MA, 1983. ADAPT - Subset of APT. Sammet 1969, p.606. ADES - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). Version: ADES II. AED - 1. Automated Engineering Design. Systems implementation language with features similar to PL/I. "The Automated Engineering Design (AED) Approach to Generalized Computer-Aided Design", D.T. Ross, Proc ACM 22nd Natl Conf, 1967. Sammet 1969 and 1978. Versions: AED-0, AED-1. 2. ALGOL Extended for Design. MIT ca. 1965. Mentioned in the "DYNAMO User's Manual". AED-JR - Subset of AED? AESOP - An Evolutionary System for On-line Programming. On-line query system used with light pen. Sammet 1969. AFAC - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). AIMACO - AIr MAterial Command compiler. Modification of FLOW-MATIC. Supplanted by COBOL. Sammet 1969. ALCOR - Subset of ALGOL. Sammet 1969, p.180. Aldat - Based on extended Algebra. Listed by M.P. Atkinson & J.W. Schmidt in a tutorial in Zurich, 1989. ALEPH - A Language Encouraging Proram Hierarchy. "On the Design of ALEPH", D. Grune, CWI, Netherlands 1986. Alfl - Functional, weakly typed. For the Alfalfa system on the Intel iPSC. "Alfl Reference Manual and Programmer's Guide", P. Hudak, Res Report YALEU/DCS/RR-322, Yale U, Oct 1984. ALGEBRAIC - Early system on Whirlwind. Listed in CACM 2(5):16 (May 1959). ALGOL 58 - See IAL. ALGOL 60 - ALGOrithmic Language. Designed for scientific computations, ALGOL 60 was small and elegant. It was the first language to be described in BNF. There were three lexical representations: reference, hardware and publication. Only three basic types: integer, real and boolean. Arrays had lower bounds. Dynamic arrays. Strong typing. Data hiding with 'own' variables. No user-defined types. ALGOL 60 was the first block-structured language, with nested procedures and blocks, nested syntax, compound statement with begin-end. Keywords. Conditional expression. Introduced :=, if-then-else, very general 'for' loops.Switch declaration (an array of statement labels) generalizing FORTRAN's computed goto. Procedures were recursive, and parameters were pass-by-value and pass-by-name. "Report on the Algorithmic Language ALGOL 60", Peter Naur ed, CACM 3(5):299-314 (May 1960). ALGOL 60 Modified - "A Supplement to the ALGOL 60 Revised Report", R.M. DeMorgan et al, Computer J 19(4):364, SIGPLAN Notices 12(1) 1977, with erratum in Computer J 21(3):282 applicable to both. ALGOL 60 Revised - "Revised Report on the Algorithmic Language ALGOL 60", Peter Naur ed, CACM 6(1):1-17 (Jan 1963). ALGOL 68 - The communication and efficient execution of algorithms. A. van Wijngaarden et al. By contrast with ALGOL 60, ALGOL 68 was large and complex, and posed difficulties for both implementors and users. Structural equivalence. Automatic type conversion. Flexible arrays. No abstract data types. if-then-elif-fi, for-from-by-to-while-do-od, integer case statement with 'out' clause, skip statement, generalized loops, goto. Blocks, procedures and user-defined operators. Procedure parameters. No separate compilation. Concurrent execution and semaphores. Generators heap and loc for dynamic allocation. ALGOL 68 Revised - "Revised Report on the Algorithmic Language ALGOL 68," Aad Van Wijngaarden et al, Acta Informatica 5:1-236 (1975), also Springer 1976, and SIGPLAN Notices 12(5):1-70 (May 1977). ALGOL C - Clive Feather, Cambridge U, ca. 1981. Variant of ALGOL 60; added structures and exception handling. Designed for beginning students. ALGOL W - Derivative of ALGOL 60. "A Contribution to the Development of Algol", N. Wirth, CACM 9(6):413-431 (June 1966). ALGOL X, ALGOL Y - General term for several proposed successors to ALGOL 60, Sammet 1969, p.194. ALGY - Early language for formal algebra. Sammet 1969. ALJABR - Symbolic math. Fort Pond Research. ALLOY - "The Design and Implementation of ALLOY, a Parallel Higher Level Programming Language", Thanasis Mitsolides <mitsolid@cs2.nyu.edu>, PhD Thesis NYU 1990. ftp: cs.nyu.edu:pub/local/alloy. ALPAK - Related to ALTRAN? Sammet 1969. Alphard - Pascal-like. "Abstraction and Verification in Alphard: Defining and Specifying Iteration and Generators", M. Shaw, CACM 20(8):553-563 (Aug 1977) ALTAC - An extended FORTRAN II for Philco 2000, built on TAC. Sammet 1969, p.146. ALTRAN - W.S. Brown ca. 1968. An extension of FORTRAN for formal rational- function algebra. "The ALTRAN System for Rational Function Manipulation - A Survey", A.D. Hall, CACM 14(8):517-521 (Aug 1971). Amber - 1. Derived from ML and Galileo. Concurrency, multiple inheritance. Programs must be written in two type faces, roman and italics! Mac implementation. Both static and dynamic types. "Amber", L. Cardelli, TR Bell Labs 1984. 2. An object-oriented distributed programming language based on a subset of C++. U Washington, late 80's. AMBIT - Algebraic Manipulation by Identity Translation. String handling. AMBIT/L - Acronym May Be Ignored Totally. List handling, allows pattern matching rules based on two-dimensional diagrams. "An Introduction to AMBIT/L, A Diagrammatic Language for List Processing", Carlos Christensen, Proc 2nd ACM Symp Symb and Alg Manip (Mar 1971) AMBUSH - Language for linear programming problems in a materials- processing/transportation network. "AMBUSH - An Advanced Model Builder for Linear Programming", T.R. White et al, National Petroleum Refiners Assoc Comp Conf (Nov 1971). AMP - Symbolic math? AMTRAN - Automatic Mathematical TRANslation. System allowing input of equations in seminatural format. ANCP - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). Animated Movie - Preparing animated movies. Anna - ANNotated Ada. ca. 1980. Adds semantic assertions in the form of Ada comments. "ANNA - A Language for Annotating Ada Programs", David Luckham et al, Springer 1987. ftp: anna.stanford.edu ANSI C - Revision of C, adding function prototypes, structure passing and assignment, and a standard set of library functions. ANSI X3.159-1989. ANSI FORTH - Soon-to-be-adopted standard. APL - A Programming Language. Ken Iverson & Adin Falkoff, 1962 for the concise expression of mathematical algorithms. In fact APL programs tend to be too concise. APL is an interacive array-oriented language with many innovative features, and written using a non-standard character set. It is dynamically typed with dynamic scope. All operations are either dyadic infix or monadic prefix, and all expressions are evaluated from right to left. The only control structure is branch. APL introduced several functional forms but is not purely functional. "A Programming Language", Kenneth E. Iverson, Wiley, 1962. Versions: APL/360, APL SV, VS APL, Sharp APL, Sharp APL/PC, APL*PLUS, APL*PLUS/PC, APL*PLUS/PC II, MCM APL, Honeyapple, and DEC APL. Applesoft BASIC - Version of BASIC on Apple computers. APT - Automatically Programmed Tools. For numerically controlled machine tools. "APT Part Programming", McGraw-Hill. Versions: APT II (IBM 704, 1958), APT III (IBM 7090, 1961). Sammet 1969, p.605. APX III - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). Argus - Distributed successor to CLU, under development. LCS, MIT. Ariel - An array-oriented language. "A New Survey of the Ariel Programming Language", P. Deuel, TR 4, Ariel Consortium, UC Berkeley (June 1972). ARITH-MATIC - Alternate name for A-3. ARTSPEAK - Simple language for drawing artistic diagrams on a plotter. "The Art of Programming, ARTSPEAK", Henry Mullish, Courant Inst (Nov 1974). ASHMEDAI - Symbolic manipulation, mentioned as an influence on SMP. ASL - A kernel language for algebraic specifications. "An Introduction to ASL", E. Astesiano et al in Program Specification and Transformation, Elsevier 1987. ASP - Query language? Sammet 1969, p.702. ASPOL - A Simulation Process-Oriented Language. An ALGOL-like language for computer simulation. "Process and Event Control in ASPOL", M.H. MacDougall, Proc Symp on Simulation of Computer Systems, NBS (Aug 1975). ASPEN - Toy language for teaching compiler construction. "ASPEN Language Specifications", T.R. Wilcox SIGPLAN Notices 12(11):70-87 (Nov 1977). ASPIK - Specification language. ASSEMBLY - Early system on IBM 702. Listed in CACM 2(5):16 (May 1959). ASTAP - Advanced STatistical Analysis Program. Analyzing electronic circuits and other networks. "Advanced Statistical Analysis Program (ASTAP) Program Reference Manual", SH-20-1118, IBM, 1973. Astral - Based on Pascal, never implemented. "ASTRAL: A Structured and Unified Approach to Database Design and Manipulation", T. Amble et al, in Proc of the Database Architecure Conf, Venice, June 1979. AT-3 - Original name of MATH-MATIC. Sammet 1969, p.135. ATLAS - Abbreviated Test Language for All Systems. _THE_ mil-spec language for programs to control automatic test equipment. Replaced/upgraded Gaelic and several other test languages. "IEEE Standard ATLAS Test Language", IEEE Std 416-1976. Atlas Autocode - Ferranti Atlas may have been first commercial machine with hardware-paged virtual memory. Aurora - "The Aurora Or-Parallel Prolog System", E. Lusk et al, Intl Conf on 5th Generation Comp Systems. 1988 ICOT, A-W 1988. AUTOCODE - Early system on Ferranti Pegasus. Listed in CACM 2(5):16 (May 1959). AUTOCODER - Assembly languages on IBM 702, IBM 705. Listed in CACM 2(5):16 (May 1959). AUTOCODING - Early system on Ferranti Mercury. Listed in CACM 2(5):16 (May 1959). AUTOGRAF - Describing bar charts. "User's Manual for AUTOGRAF", Cambridge Computer Assoc (Dec 1972). AUTOGRP - AUTOmated GRouPing system. Interactive statistical analysis. An extension of CML. "AUTOGRP: An Interactive Computer System for the Analysis of Health Care Data", R.E. Mills et al, Medical Care 14(7) (Jul 1976). Autolisp - Dialect of LISP used by the Autocad CAD package, Autodesk, Sausalito, CA. AUTOMATH - Eindhoven, Netherlands. "The Mathematical Language AUTOMATH, Its Usage and Some of its Extensions", N.G. deBruijn, in Symp on Automatic Demonstration, LNM v.125, Springer 1970. AUTO-PROMPT - Numerical control language from IBM for 3-D milling. Sammet 1969, p.606. Avalon/C++ - Fault-tolerant distributed systems. AWK - Aho Weinberger Kernigan. Simple yet powerful text processing/macro language. "AWK - A Pattern Scanning and Processing Language," A. Aho, B. Kernigan, P. Weinberger, Bell Labs, Sep 1978. B - Ken Thompson, 1970. Systems language written for UNIX on the PDP-11. Derived from BCPL, and very similar to it except for syntax. B was the predecessor of C. "The Programming Language B", S.C. Johnson & B.W. Kernighan, CS TR 8, Bell Labs (Jan 1973). B-0 - Original name of FLOW-MATIC, Remington Rand. UNIVAC I or II ca. 1958. BABEL - Mentioned in "The Psychology of Computer Programming," Weinberg, 1971 ed, p.241. BACAIC - Boeing Airplane Company Algebraic Interpreter Coding system. Pre-FORTRAN system on the IBM 701, IBM 650. BAL - What most people called IBM 360 assembler. BALGOL - ALGOL on Burroughs 220. Sammet 1969, p.174. BALITAC - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). BALM - Extensible language with LISP-like features but ALGOL-like syntax. "The Balm Programming Language", Malcolm Harrison, Courant Inst (May 1973). BAP - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). BASEBALL - Query system tied to baseball database. bash - UNIX command shell? BASIC - Beginner's All-purpose Symbolic Instruction Code. John G. Kemeny & Thomas E. Kurtz, mid 1960's. Quick and easy programming by students and beginners. BASIC exists in many dialects, and is popular on microcomputers with sound and graphics support. Most micro versions are interactive and interpreted, but others are compiled, including the original Dartmouth BASIC. BASIC AUTOCODER - Early system on IBM 7070. Listed in CACM 2(5):16 (May 1959). Basic COBOL - Subset of COBOL from COBOL-60 standards. Sammet 1969, p.339. Basic FORTRAN - Subset of FORTRAN. Sammet 1969, p.150. Basic JOVIAL - Subset of JOVIAL, ca. 1965. Sammet 1969, p.529. BAWK - Variant of AWK. BC NELIAC - Version of NELIAC, post 1962. Sammet 1969, p.197. BCPL - Basic Combined Programming Language. M. Richards. British systems language, a predecessor of C. BCPL is low-level, block-structured and typeless, and provides only one-dimensional arrays. A variety of flow control: if-then, test-then-else, unless-do, while-do, until-do, repeat, repeatwhile, repeatuntil, for-to-by-do, loop, break and switchon-into. BCPL has conditional expressions, pointers, and manifest constants. Parameters are call-by-value. Program segments communicate via the global vector where system and user variables are stored in fixed numerical locations in a single array. "BCPL - The Language and its Compiler", Martin Richards & Colin Whitby-Stevens, Cambridge U Press 1979. BDL - Block Diagram Compiler. A block-diagram simulation tool, with associated language. "A Software Environment for Digital Signal-Processing Simulations," D.H. Johnson & R.E. Vaughan, Circuits Systems and Signal Processing 6(1):31-43, (1987). BELL - Early system on IBM 650 and Datatron 200 series. [Is Datatron version the same?] Listed in CACM 2(5):16 (May 1959). Versions: BELL L2, BELL L3. BETA - The successor of SIMULA. BIOR - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). Bison - The GNU project's implementation of Yacc. [How different from Yacc?] BLAZE - Single assignment language for parallel processing. "The BLAZE Language: A Parallel Language for Scientific Programming", P. Mehrotra et al, J Parallel Comp 5(3):339-361 (Nov 1987). BLAZE 2 - Object-oriented successor to BLAZE. "Concurrent Object Access in BLAZE 2", P. Mehrotra et al, SIGPLAN Notices 24(4):40-42 (Apr 1989). BLISS - Basic Language for Implementation of System Software. Developed at CMU for the PDP-10. A low-level block-structured language, typeless, expression-oriented, with exception handling facilities. Gained fame from its lack of a goto. "BLISS: A Language for Systems Programming", W.A. Wulf et al, CACM 14(12):780-790 (Dec 1971). Versions: BLISS-11 for PDP-11, BLISS-32 for VAX/VMS. Blosim - Block-Diagram Simulator. A block-diagram simulator. "A Tool for Structured Functional Simulation", D.G. Messerschmitt, "IEEE J on Selected Areas in Comm", SAC-2(1):137-147, 1984. BLUE - A proposed language to meet the DoD Ironman requirements which led to Ada. "On the BLUE Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):10-15 (Oct 1978). BMDP - Statistical language, from UCLA. BNF - Backus Normal Form later renamed Backus-Naur Form. Meta language to define computer languages. BOEING - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). BOSS - Bridgport Operating System Software. Derivative of the ISO 1054 numerical machine control language for milling, etc. BRIDGE - Component of ICES for civil engineers. Sammet 1969, p.616. BSL - Variant of IBM's PL/S systems language. Versions: BSL1, BSL2. BUGSYS - Pattern recognition and preparing animated movies. "BUGSYS: A Programming System for Picture Processing - Not for Debugging", R.A. Ledley et al, CACM 9(2) (Feb 1966). C - Dennis Ritchie, Bell Labs, ca. 1972. Originally the systems language for UNIX on the PDP-11, and briefly named NB. Influenced by BCPL through B. Terse, low-level and permissive. Preprocessor. Has rapidly become the most widely used language for software implementation. "The C Programming Language", Brian Kernighan & Dennis Ritchie, P-H 1978. C* - No details. C++ - Stroustrup. An object-oriented superset of C. In C++ a class is a user-defined type, syntactically a struct with member functions. Constructors and destructors are member functions called to create or destroy instances. A friend is a nonmember function that is allowed to access the private portion of a class. C++ allows implicit type conversion, function inlining, overloading of operators and function names, and default function arguments. It has streams for I/O and references. "The C++ Programming Language", Bjarne Stroustrup, A-W, 1986. C-10 - Improved version of COLINGO. Sammet 1969. C-Linda - No details. C-Scheme - No details. CADET - Computer Aided Design Experimental Translator. Sammet 1969, p.683. CAGE - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). CAL - Dialect of JOSS. Sammet 1969, p.217. CAMAL - CAMbridge ALgebra system. Computer algebra system used in Celestial Mechanics and General Relativity. Implemented in BCPL. "CAMAL User's Manual", John P. Fitch, Cambridge U, England (1975). "The Design of the Cambridge Algebra System", S.R. Bourne et al, Proc 2nd Symp of Symb & Alg Manip, SIGSAM 1971. CAMIL - Computer Assisted/Managed Instructional Language. Used for CAI at Lowry AFB, CO. "The CAMIL Programming Language", David Pflasterer, SIGPLAN Notices 13(11):43 (Nov 1978). CAML - Categorical Abstract Machine Language. Lazy version of ML built on the categorical abstract machine. ftp: nuri.inria.fr CASE SOAP III - Version of SOAP assembler for IBM 650. Listed in CACM 2(5):16 (May 1959). CAYLEY - Computer algebra system for group theory. John Cannon, U Sydney, Australia, 1976. "An Introduction to the Group Theory Language CAYLEY", J. Cannon, Computational Group Theory, M.D. Atkinson ed, Academic Press 1984, pp.148-183. Version: V3.7 info: cayley@maths.su.oz.au CBASIC - A BASIC compiler. CCalc - Symbolic math? CCS - A specification language. [Denmark?] CDL - 1. Computer Definition Language. A language for describing and designing computer architecture. "Computer Organization and Microprogramming", Y. Chu, P-H 1970. 2. Command Defintion Language. Portion of ICES used to implement commands. Sammet 1969, p.618-620. Cedar - A superset of Mesa, adding garbage collection, dynamic types and a universal pointer type (REF ANY). A large complex language designed for custom Xerox hardware and the Cedar OS/environment. Data types: atoms, lists, ropes ("industrial strength" strings), condition. Multiprocessing features include threads, monitors, signals and catch phrases. "A Description of the Cedar Language", Butler Lampson, Xerox PARC, CSL-83-15 (Dec 1983) CELLSIM - Modeling populations of biological cells. "CELLSIM II User's Manual", C.E. Donaghey, U Houston (Sep 1975). CESSL - CEll Space Simulation Language. Simulating cellular space models. "The CESSL Programming Language", D.R. Frantz, 012520-6-T, CS Dept, U Michigan (Sept 1971) CHARYBDIS - LISP program to display math expressions. Related to MATHLAB. Sammet 1969, p.522. CHASM - CHeap ASseMbler. MS-DOS shareware assembler. CHILI - A PL/I-like language for systems proramming. "CHILI, An Algorithmic Language for Systems Programming", CHI-1014, Chi Corp (Sep 1975). CHILL - CCITT HIgh-Level Language. 1988. Standard in the telecomms community, roughly Ada-like in scope but different in almost any detail you might think of. CHIP - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). CIP-L - ? CITRAN - Caltech's answer to MIT's JOSS. Sammet 1969, p.217. CLAM - Computer algebra system specialized in General Relativity. R. d'Inverno & Russell-Clark in the early 70's. Implemented in ATLAS assembler first, LISP later. Clarion - MS-DOS 4GL. CLEAR - A specification language based on initial algebras. "An Informal Introduction to Specification Using CLEAR", R.M. Burstall in The Correctness Problem in Computer Science, R.S. Boyer et al eds, Academic Press 1981, pp.185-213. CLIP - Compiled Language for Information Processing. Based on ALGOL 58. Influenced JOVIAL. Sammet 1969. Clipper - Compiled dialect of MS-DOS dBASE from Nantucket Corp, Los Angeles. Versions: Winter 85, Spring 86, Autumn 86, Summer 87, 4.5 (Japanese Kanji), 5.0. CLIPS - An expert system language, NASA JSC. CLOS - Common LISP Object System. Object-oriented extension to Common LISP. X3J13 Doc 88-002R, D.G. Bobrow et al. SIGPLAN Notices 23 (spec issue) Sep 1988. CLP - Cornell List Processor. Extension of CORC for list processing. Sammet 1969. CLP-R - Constraint Language Programming - Real. Contains a built-in constraint solver over the domain of real numbers. PROLOG-like syntax but quite different semantics. CLU - CLUster. Late 70's. CLU is an object-oriented language of the Pascal family designed to support data abstraction, similar to Alphard. Introduced the iterator: a coroutine yielding the elements of a data object, to be used as the sequence of values in a for loop. A CLU program consists of separately compilable procedures, clusters and iterators, no nesting. A cluster is a module naming an abstract type and its operations, its internal representation and implementation. Clusters and iterators may have parameters. Supplying actual constant values for the parameters instantiates the module. There are no implicit type conversions. In a cluster, the explicit type conversions 'up' and 'down' change between the abstract type and the representation. There is a universal type 'any', and a procedure force[] to check that an object is a certain type. Objects may be mutable or immutable. Exceptions are raised using 'signal' and handled with 'except'. Assignment is by sharing, similar to the sharing of data objects in LISP. Arguments are passed by call-by-sharing, similar to call by value, except that the arguments are objects and can be changed only if they are mutable. CLU has own variables and multiple assignment. --- End of Part 1 -- --Bill Kinnersley billk@hawk.cs.ukans.edu 226 Transfer complete.
billk@hawk.cs.ukans.edu (Bill Kinnersley) (04/28/91)
---- "CLU Reference Manual", Barbara Liskov et al, Springer 1981. ftp: pion.lcs.mit.edu - versions for Sun, VAX. contact: prj@pm-prj.lcs.mit.edu (Paul R. Johnson) CMS-2 - General purpose language used for command and control applications in the US Navy. "CMS-2Y Programmers Reference Manual", M-5049, PDCSSA, San Diego CA (Oct 1976). CoCoA - Symbolic math? COBOL - COmmon Business Oriented Language. Simple computations on large amounts of data. The most widely-used language today. Style is natural language but verbose. "Initial Specifications for a Common Business Oriented Language" DoD, US GPO, Apr 1960. COBOL-1961 Extended - Short-lived separation of COBOL specifications. Sammet 1969, p.339. COGENT - COmpiler and GENeralized Translator. Compiler writing language with element of list processing. Sammet 1969. COGO - Co-ordinate geometry problems in Civil Engineering. A subsystem of ICES. "Engineer's Guide to ICES COGO I", R67-46, CE Dept MIT (Aug 1967) COLASL - Processing input of natural math expressions. Sammet 1969. COLINGO - English-like query system. Sammet 1969. COMAL - Benedict Loefstedt & Borge Christensen, 1973. A language for beginners, Pascal-like structure added to BASIC. Popular in Europe and Scandinavia. COMAL-80 has been adopted as an introductory language in Denmark. "Beginning COMAL", Bjorne Christensen, Ellis Harwood 1982. COMAL User's Group, 5501 Groveland Terr, Madison WI 53716. Version for Amiga. COMIT - String-handling and pattern-matching, a predecessor of SNOBOL, designed for applications in natural language translation. The user had a workspace organized into shelves. Its only data element was the constituent (a word), accessed by subscript. Sammet 1969. Version: COMIT II - "Computer Programming with COMIT II", Victor Yngve, MIT Press. COMMEN - L.J. Cohen. Proc SJCC, 30:671-676 (1967). Commercial Translator - English-like pre-COBOL language for business data processing. Sammet 1969. Common LISP - An attempt to merge the various dialects of LISP into one. The result is a large and complex language. Lexical binding, data structures using defstruct and setf, closures, multiple values, types using declare, a variety of numerical types. Function calls allow optional, keyword and &rest arguments. Generic sequence can either be a list or an array. Formatted printing using escape characters. "Common LISP Reference Manual", Guy L. Steele, Digital Press 1984. list: common-list@mcc.com. Compact COBOL - Subset of COBOL defined, but not published, ca. 1961. Sammet 1969, p.339. Compas Pascal - Brand of Pascal? From Denmark? COMPASS - COMprehensive ASSembler. Assembler on CDC 6500/6600s. COMPREHENSIVE - Early system on Whirlwind. Listed in CACM 2(5):16 (May 1959). COMPROSL - COMpound PROcedural Scientific Language. Language for scientists or engineers. Sammet 1969, p.299-300. Computer Animation Movie Language. "A Computer Animation Movie Language for Educational Motion Pictures", D.D. Weiner et al, Proc AFIPS FJCC, 33(2) (1968) Computer Compiler - Proposed language for compiler design. Sammet 1969. Computer Design - Proposed language for computer design. Sammet 1969. COMTRAN - Early name for Commercial Translator. "Communications Computer Language COMTRAN", D.W. Clark et al, RADC-TR-69-190, Rose Air Development Center, Griffiss AFB, NY (July 1969). Sammet 1969, p.324, 331. Concurrent C - Variant of C with concurrent extensions. Concurrent Euclid - R.C. Holt, U Toronto, 1980. Subset of Euclid ("Simple Euclid") with concurrent extensions. Separate compilation, modules, processes and monitors, signal and wait on condition variables. 'Converters' to defeat strong type checking, absolute addresses. All procedures and functions are re-entrant. The TUNIS OS is written in Concurrent Euclid. "Concurrent Euclid, The Unix System, and Tunis," R.C. Holt, A-W, 1983. Concurrent Pascal - "The Programming Language Concurrent Pascal", Per Brinch Hansen, IEEE Trans. Soft. Eng. 1(2):199-207 (Jun 1975) Concurrent Prolog - Never implemented. "Concurrent Prolog: A Progress Report", E. Shapiro, IEEE Computer, 19(8):45-58 (Aug 1986). Concurrent Smalltalk - Variant of Smalltalk. CONNIVER - AI language for automatic theorem proving. An outgrowth of PLANNER. "The CONNIVER Reference Manual", D. McDermott & G.J. Sussman, AI Memo 259, MIT AI Lab, 1973. CONVERT - 1. Additions to LISP. Sammet 1969, p.388. 2. Language to convert programs and data from one language to another. "CONVERT Manual", OLI Systems Inc (Oct 1976). CORAL - Class Oriented Ring Associated Language. Handled certain ring types of lists on the TX-2. (1964?) Sammet 1969. Another UK invention. Real time system programming language used by the Ministry of Defence and its contractors until Ada arrived on the scene. CORAL 66 - "Official Definition of CORAL 66", P.M. Woodward et al, HMSO, London, 1970. CORBIE - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). CORC - CORnell Compiler. Simple language for student math problems. "The Cornell Computing Language", R.W. Conway et al, CACM 6(6):317-320 (Jun 1963) Sammet 1969. CORREGATE - Based on IT. Sammet 1969, p.139. Coursewriter III - A simple language for preparing CAI lessons. "Coursewriter III, Version 3 Author's Guide", SH20-1009, IBM. CPL - C. Strachey et al CPS - Conversational Programming System. Interactive extended subset of PL/I. "Conversational Programming System under TSO (PBPO), Terminal User's Manual", SH20-1197, IBM. Sammet 1969. CRISP - A LISP-like compiler that ran on IBM 370 hardware. It differed from LISP in a number of interesting ways, one of which is that it generalized the 2-part cons nodes to n-part. Designed by Jeff Barnett, one of the early LISPers. SDC, Santa Monica, CA, early 70's?. CROSSTABS - A simple language for statistical analysis of tabular data. "User's Manual for the CROSSTABS System", Cambridge Computer Assoc (Feb 1977) Crystal - High level functional parallel language. CS-4 - Mentioned in "An Overview of Ada", J.G.P. Barnes. csh - C-Shell command shell interpreter for UNIX. CSL - Computer Structure Language. A computer hardware description language, written in BCPL. "Computer Structure Language (CSL)", Proc 1975 Symp on Comp Hardware Description Languages and their Appl", ACM (Sep 1975). CSMP - Continuous System Modelling Program. Used to simulate the dynamics of continuous systems. A dialect of CSSL? "A Guide to Using CSMP - The Continuous System Modeling Program", Frank H. Speckhart et al, P-H 1976. CSP - Communicating Sequential Processes. Experimental language based on Hoare's theory of multi-processing. "Communicating Sequential Processes", A.R. Hoare, CACM 21(8):666-667 (Aug 1978). [Is there another CSP that is a specification language?] CS/PCode - Used at Microsoft. CSP/k - Concurrent SP/k. A PL/I-like concurrent language. "Structured Concurrent Programming with Operating System Applications", R.C. Holt et al, A-W 1978. CS/QCode - Used at Microsoft. CSSL - Continuous Systems Simulation Language. Versions include ACSL, HYTRAN, SL-I, S/360 and CSMP. "The SCi Continuous System Simulation Language (CSSL)", Simulation, 9(6) (Dec 1967). Culler-Fried - On-line system for mathematics. Sammet 1969. CWIC - Compiler for Writing and Implementing Compilers. One of the early metacompilers. Designed by Val Schorre. He wrote a paper on an earlier version "Meta-II: a Syntax Oriented Compiler Writing Language," Proc 19th ACM Natl Conf 1964. CYBIL - Control Data's answer to system programming languages in the 80's. Major parts of CDC systems written in this. CypherText - Interactive language for text formatting and typesetting. "CypherText: An Extensible Composing and Typesetting Language", C.G. Moore et al, Proc AFIPS FJCC v.37 (1970) D - "The Data Language." MS-DOS 4GL. DACTL - Declarative Alvey Compiler Target Language. An intermediate language. "DACTL - A Computational Model and Compiler Target Language Based on Graph Reduction", J.R.W. Glauert et al, SYS-C87-03, U East Anglia, Norwich, 1987. DAISY 201 - Early system on G-15. Listed in CACM 2(5):16 (May 1959). Daplex - "The Functional Data Model and the Lata Language DAPLEX", D.W. Shipman, ACM Trans Database Sys, 6(1):140-173 (Mar 1981). DARE - Differential Analyzer REplacement. A family of continuous simulation languages. "Digital Continuous System Simulation", G.A. Korn et al, P-H 1978. Dartmouth BASIC - Term for the original BASIC by Kemeny & Kurtz. DAS - Digital Analog Simulator. Represents analog computer design. dataBASIC - Also known as PICK BASIC. A BASIC-like language with database capabilities, the main programming language on the PICK OS. "The dataBASIC Language - A Data Processing Language for Non-Professional Programmers", P.C. Dressen, Proc AFIPS SJCC v.36 (1970) DATA-TEXT - From Harvard. Numerical computations in the Social Sciences. "DATA-TEXT Primer", D.J. Armor, Free Press 1972. DATACODE I - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). dBASE - Language used by the dBASE system. First release was dBASE II. (There never was a "dBASE I") Later versions: dBASE III, dBASE III+, and dBASE IV. dBFAST - dBASE dialect for MS-DOS, MS-Windows. DBPL - Procedural language with relational database constructs. A successor to Pascal/R and Modula/R. "DBPL Report", J.W. Schmidt et al, DBPL-Memo 111-88, Fachbereich Informatik, Johann Wolfgang Goethe-Universitaet, Frankfurt, Germany, 1988. dBXL - dBASE-like interpreter/language for MS-DOS from WordTech, Orinda, CA. DCALGOL - Data Communications ALGOL. A superset of Burroughs Extended ALGOL used for writing Message Control Systems. DCDL - Digital Control Design Language. A language for simulating computer systems. "DCDS Digital Simulating System", H. Potash et al, Proc AFIPS FJCC, v.35 (1969). DCL - DIGITAL Command Language. Equivalent of sh/csh for VAX/VMS. DEACON - Direct English Access and CONtrol. English-like query system. Sammet 1969, p.668. Delta - Expression based, J.C. Cleaveland 1978. DEMON - Program generator for differential equation problems. N.W. Bennett, Australian Atomic Engergy Commission Research Establishment, AAEC/E142, Aug 1965. DETAB - DEcision TABle. Pre-COBOL business aid. Sammet 1969, p.315. Versions: DETAB 65, DETAB X. DETOL - Directly Executable Test Oriented Language. Simple language to control a specific type of test equipment. "Improved DETOL Programming Manual for the Series 5500 Automatic Test System, Pub. 5500-31-0-1, AAI Corp. (Sep 1973). DIALOG - Math computations using light pen. Illinois Inst Tech, ca. 1966. Sammet 1969. DIAMAG - On-line extension of ALGOL. Sammet 1969. DIANA - Descriptive Intermediate Attributed Notation for Ada. "DIANA - An Intermediate Language for Ada", G.T. Goos et al, LNCS No.161, Springer 1983. DIBOL - DIgital Business Oriented Language. DEC for RT-11. Combines the syntax of FORTRAN with the arithmetic capabilities of COBOL (integer BCD). DIMATE - Depot Installed Maintenance Automatic Test Equipment. For automatic equipment tests. Sammet 1969. Disiple - A DSP language. "A Compiler that Easily Retargets High Level Language Programs for Different Signal Processing Architectures", J.E. Peters & S.M. Dunn, Proc ICASSP 89, (May 1989) pp.1103-1106. Distributed Smalltalk - Variant of Smalltalk. DMAD - Diagnostic Machine Aid-Digital. Functional testing of digital devices. "DMAD M/MM Manual", BR-8392, Raytheon Co. (Oct 1973). DMALGOL - Another ALGOL superset: extensions to interface to DMS II, the Burroughs database. DOCUS - Display Oriented Computer Usage System. On-line system using push buttons. DOUGLAS - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). DOL - Display Oriented Language. Subsystem of DOCUS. Sammet 1969. DOW COMPILER - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). draco - Chris Gray, 1987. A blend of Pascal, C and ALGOL 68. Implemented for CP/M-80 and Amiga. DRUCO I - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). DSL - Digital Simulation Language. Extensions to FORTRAN to simulate analog computer functions. "DSL/90 - A Digital Simulation Program for Continuous System Modelling", Proc AFIPS SJCC, vol 28 (1966). DSL/90 was a version that ran on the IBM 7090. Sammet 1969. DSP/C - A numerical extension to the C language, not necessarily DSP specific, but sort of. "DSP/C: A Standard High Level Language for DSP and Numeric Processing", K. Leary & W. Waddington, Proc ICASSP 90, Apr 1990, pp.1065-1068. DSP32 Assembly Language: A `high level' assembly language for the DSP32 Programmable DSP Chip. DSPL: Digital Signal Processing Language. A C-derived DSP language. "The Programming Language DSPL," Albert Schwarte & Herbert Hanselmann, Proc PCIM 90, 1990. DTALGOL - Decision Table Algol. A local (Victoria U, Wellington) superset that added Decision Tables. On Burroughs Large System. DUAL-607 - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). DYANA - DYnamics ANAlyzer. Early specialized language for vibrational and other dynamics systems. Sammet 1969. DYNAMO - DYNamic MOdels. Phyllis Fox & A.L. Pugh, 1959. Continuous simulations including economic, industrial and social systems. Versions: DYNAMO II, DYNAMO II/370, DYANMO II/F, DYNAMO III and Gaming DYNAMO. "DYNAMO User's Manual", A.L. Pugh, MIT Press 1976. DYSAC - Digital Simulated Analog Computer. Sammet 1969. DYSTAL - Package of embeddable subroutines used in other languages. Sammet 1969, p.388. Eagle - dBASE-like dialect bundled with Emerald Bay, sold by Migent from 1986-1988. (Became "Vulcan" when Wayne Ratliff re-acquired the product.) EASE II - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). EASIAC - Early system on Midac computer. Listed in CACM 2(5):16 (May 1959). EASY FOX - Early system on JOHNNIAC computer. Listed in CACM 2(5):16 (May 1959). EBASIC - Form of BASIC that led to CBASIC. ECAP II - Electronic Circuit Analysis Program. Simple language for analyzing electrical networks. "Introduction to Computer Analysis: ECAP for Electronics Technicians and Engineers", H. Levin, P-H 1970. ECL - Extensible CL. "ECL Programmer's Manual", B. Wegbreit, TR 23-74, Harvard U (Dec 1974). ECMA - Subset of ALGOL. Sammet 1969, p.180. ECSS II - Extendable Computer System Simulator. An extension of SIMSCRIPT II. "The ECSS II Language for Simulating Computer Systems", D.W. Kosy, R- 1895-GSA, Rand Corp. ECSSL - Formerly APSE. Equation-oriented specifications for continuous simulation models. The compiler outputs HYTRAN, which must be run on an analog processor. Edison - Further simplification of Pascal. "Edison - A Multiprocessor Language", P. Brinch Hansen, CS Dept, USC, Sep 1980. EDL - Experiment Description Language. "A Programmable System for Acquisition and Reduction of Respiratory Physiological Data", J. Steven Jenkins (language author) et al, Ann Biomed Eng, 17:93-108 (1989). EFL - Extended FORTRAN Language - preprocessor for FORTRAN to allow structured programming. Eiffel - Commercial object-oriented language, Bertrand Meyer, ca. 1986. Classes with multiple and repeated inheritance, assertions. Deferred classes (like Smalltalk's abstract class), and clusters of classes. Objects can have both static and dynamic types. The dynamic type must be a descendant of the static (declared) type. Dynamic binding resolves clashes from the multiple inheritance. Flattened forms of classes, in which all of the inherited features are added at the same level. Generic classes parametrized by type. Persistent objects, garbage collection, exception handling, interface to routines written in other languages. "Eiffel, the Language", Bertrand Meyer, P-H 1990. Interacive Software Eng., Goleta CA. EL 1 - An extensible language, like LISP but with ALGOL-like syntax. Used as the basis for the ECL operating system. "The Treatment of Data Types in EL1", B. Wegbreit CACM 17(5) (May 1974). ELI - Early system on IBM 705, IBM 650. Listed in CACM 2(5):16 (May 1959). ELISP - Nickname for EMACS LISP. Ellie - Object-oriented parallel language for fine-grained distributed computers. Based on BETA, Smalltalk, and others. Birger Andersen (U Copenhagen?) Recent SIGPLAN Notice. EMA - Extended Mercury Autocode. EMACS LISP - Richard Stallman. Variant of LISP used by EMACS editor. (This is the "offical" name, based on the EMAQS FAQ file.) Emerald - The successor of EPL [?]. U Washington, early 80's. An object-oriented distributed programming language/environment. "Distribution and Abstract Types in Emerald", A. Black et al, IEEE Trans Soft Eng SE-13(1):65-76 (Jan 1987). English - Database language used in the PICK OS. EOL-3 - Expression Oriented Language. A low level language for strings. "EOL - A Symbol Manipulation Language", L. Lukaszewicz, Computer J 10(1) (May 1967). EPL - 1. Version of PL/I used by Bell and MIT during MULTICS development. "EPL Reference Manual", Project MAC, April 1966. Sammet 1969, p.542. 2. Experimental Programming Language. David May. Mentioned as having an influence on the design of occam. E-PROLOG - Edinburgh PROLOG, which eventually developed into the standard. Eqlog - OBJ2 plus logic programming. "Eqlog: Equality, Types and Generic Modules for Logic Programming", J. Goguen et al in Functional and Logic Programming, D. DeGroot et al eds, pp.295-363, P-H 1986. ERFPI - Early system on LGP-30 computer. Listed in CACM 2(5):16 (May 1959). ES-1 - Early text editing interpreter. Sammet 1969. ESCAPE - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). ESI - Dialect of JOSS. Sammet 1969, p.217. ESP - 1. Extra Simple Pascal. Subset of Pascal. 2. Econometric Software Package. Staistical analysis of time series. "Econometric Software Package, User's Manual", J.P. Cooper, Graduate School of Business, U Chicago. Sammet 1978. ESPOL - An ALGOL superset used to write the MCP (Master Control Program) on Burroughs Large System. Obsoleted by NEWP. Estelle - A specification language. [Denmark?] Esterel - A synchronous[?] language. "The ESTEREL Programming Language and its Mathematical Semantics", G. Berry & L. Cosserat, INRIA, No. 327, 1984. Euclid - A Pascal descendant for development of verifiable system software. No goto, no side effects, no global assignments, no functional arguments, no nested procedures, no floats, no enumeration types. Pointers are treated as indices of special arrays called collections. To prevent aliasing, Euclid forbids any overlap in the list of actual parameters of a procedure. Each procedure gives an imports list, and the compiler determines the identifiers that are implicitly imported. Iterators. "Report on the Programming Language Euclid", B.W. Lampson et al, SIGPLAN Notices 12(2) (1977). EULER - Revision of ALGOL. A small predecessor of Pascal. N. Wirth, CACM 9:1-2 (1966) Eva - Described in "Formal Specification of Programming Languages: A Panoramic Primer", Frank G. Pagan, P-H. Extended ALGOL - Used to write the ESPOL compiler on Burroughs B5500, B6700. "Burroughs B6700 Extended ALGOL Language Information Manual", No. 5000128 (Jul 1971) Sammet 1969, p.196. FACT - Fully Automated Compiling Technique. Pre-COBOL English-like business DP language, ca. 1959. (Aka Honeywell-800 business compiler.) Sammet 1969, p.327. FAIR - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959). FAP - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). FASE - Fundamentally Analyzable Simplified English. L.E. McMahon, Bell Labs Sammet 1969, p.720. FAST - FORTRAN Automatic Symbol Translator. Early system on IBM 650 by MITRE Corp. Listed in CACM 2(5):16 (May 1959). Sammet 1969, p.526. FEL - Functional. "FEL Programmer's Guide", R. M. Keller, AMPS TR 7, U Utah, March 1982. FFP - Formal FP. "Can Programming be Liberated From the von Neumann Style? A Functional Style and Its Algebra of Programs", John Backus, 1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978). FGRAAL - FORTRAN Extended GRAph Algorithmic Language. A FORTRAN extension for handling sets and graphs. "On a Programming Language for Graph Algorithms", W.C. Rheinboldt et al, BIT 12(2) 1972. File Composition - A typesetting language. "File Composition System Reference Manual", No. 90388, Information International. FL - Function Level. John Backus, ca. 1985? Successor to FP. Allows higher higher-order functions to be defined, adds exceptions, user-defined types, and other features. "FL Language Manual, Parts 1 & 2", J. Backus et al, IBM Research Report RJ 7100 (1989). FLAIR - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). FLAP - Symbolic math. "FLAP Programmer's Manual", A.H. Morris Jr., TR-2558 (1971) U.S. Naval Weapons Lab. Sammet 1969, p.506. Flavors - LISP with object-oriented features. Weinreb & Moon, 1980. "Object-Oriented Programming with Flavors", D.A. Moon, ACM OOPSLA '86 Conf Proc, (Oct 1986) pp.1-8. FLEX - Faster LEX. [Language different from lex?] "The FLEX Scanner Generator" Vern Paxson, Real Time Systems, LBL, CA. FLIC - Functional Language Intermediate Code. "FLIC - A Functional Language Intermediate Code", S. Peyton Jones et al., RR 148, U Warwick, Sep 1989. FLIP - Early system on G-15. Listed in CACM 2(5):16 (May 1959). FLIP-SPUR - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). FLOP - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). FLOW-MATIC or FLOWMATIC - Possibly first (UNIVAC I) English-like DP language. Remington Rand, 1958. Sammet 1969. (Original name was B-0.) FLPL - FORTRAN Compiled List Processing Language. Package of subroutines for FORTRAN, ca. 1960. Sammet 1969, p.388. FOCAL - FOrmula CALculator. BASIC-style interpreter from DEC, designed 1969 for PDP-5/PDP-8's. Versions: FOCAL-69, FOCAL-1971, FOCAL-11 (for PDP- 11 under RT-11). FOCUS - Hierarchical database language. Information Builders Inc. FOIL - File Oriented Interpretive Language. For writing CAI lessons. "FOIL - A File Oriented Interpretive Language", J.C. Hesselbart, Proc ACM 23rd National Conf (1968). foogol - comp.sources.unix/V8 FOOPS - OBJ2 plus object-oriented programming. "Extensions and Foundations for Object-Oriented Programming", J. Goguen et al, in Research Directions in Object-Oriented Programming, B. SHriver et al eds, MIT Press 1987. FORC - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). Force - dBASE dialect for MS-DOS. FORM - Large scale symbolic manipulation. Jos Vermaseren <t68@nikhefh.nikhef.nl> Especially designed for speed in handling very large calculations. A successor to SCHOONSCHIP. Available for many PC's and workstations. ftp: acm.princeton.edu, nikhefh.nikhef.nl FORMAC - FORmula MAnipulation Compiler. Extension of FORTRAN, later PL/I. J. Sammet & Tobey, IBM Boston APD, 1962. Versions: PL/I-FORMAC and FORMAC73. Sammet 1969, p.473. FORMAL - FORmula MAnipulation Language. An extension of FORTRAN for formal algebra. "FORMAL, A Formula Manipulation Language", C.K. Mesztenyi, Computer Note CN-1, CS Dept, U Maryland (Jan 1971) FORMAT-FORTRAN - FORTRAN Matrix Abstraction Technique FORTRAN. Manipulation, printing and plotting of large matrices. "FORMAT-FORTRAN Matrix Abstraction Technique (Vol. V)" AFFDL-TR-66-207, Douglas Aircraft Co (Oct 1968). Formula ALGOL - Extension of ALGOL. Carnegie, CDC G-20, 1962. A.J. Perlis & R. Iturriaga. Sammet 1969, p.583. FORTH - Fourth. Charles H. Moore, 1960's, to increase programmer power. First use was controlling the telescope at NRAO, Kitt Peak. FORTH is an interactive extensible language using postfix syntax and a stack for data. A program is a set of recursive functions ("words") which are compiled by an outer interpreter into bytecodes. FORTH is small and efficient, but programs can be difficult to read. Versions include FORTH 79 and FORTH 83. FORTH Interest Group, Box 1105, San Carlos CA 94070. FORTRAN - FORmula TRANslator. John Backus, IBM 1954 for IBM 704. FORTRAN I - Released 1957. FORTRAN II - 1958. Added subroutines. FORTRAN III - This was only distributed to ca. 20 sites. See Wexelblat. FORTRAN IV - 1962. FORTRAN V - Preliminary work on adding character handling facilities by IBM ca. 1962. This name never really used. FORTRAN VI - Internal IBM name for early PL/I work ca. 1963. Sammet 1969, p.540. FORTRAN 66 - FORTRAN IV standardized. ASA X3.9-1966. FORTRAN 77 - Block IF, PARAMETER, SAVE statements added, still no WHILE. Fixed-length character strings, format-free I/O, arrays with lower bounds. ANSI X3.9-1978. Fortran 8x - Proposed superset of FORTRAN 77. "Fortran 8x Explained", M. Metcalf, Clarendon Press 1989. Fortran 9x - Current name for the proposed FORTRAN revision. FORTRANSIT - FORTRAN Internal Translator. Subset of FORTRAN translated into IT on the IBM 650. Sammet 1969, p.141. FORTRUNCIBLE - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). FoxBASE+ - dBASE III+-like product from Fox Software, Perrysburg, OH. FoxPRO - dBASE IV-like product from Fox Software, Perrysburg, OH. FP - Functional Programming. Combinator based. "Can Programming be Liberated From the von Neumann Style? A Functional Style and Its Algebra of Programs", John Backus, 1977 Turing Award Lecture, CACM 21(8):165-180 (Aug 1978). FP/M - An intermediate language for functional languages. "The Compilation of FP/M Programs into Conventional Machine Code", A.J. Field, Imperial College, London, 1985. FQL - A functional database language. "An Implementation Technique for Database Query Languages", O.P. Buneman et al, ACM Trans Database Sys 7(2):164-186 (June 1982). Franz Lisp - Variant of LISP. FRED - Framework (MS-DOS app) language, Ashton-Tate. Robert Carr. FRINGE - Subcomponent of GE-255 GECOM system. Sorting and merging of data, reports and file maintenance. C. Katz, GE, 1961. FSL - Formal Semantics Language. Used for compiler writing. Feldman ca. 1966. Sammet 1969, p.641. Fun - "On Understanding Types, Data Abstractions and Polymorphism", L. Cardelli et al, ACM Comp Surveys 17(4) (Dec 1985). Funlog - Functional programming plus semantic unification. "FUNLOG: A Computational Model Integrating Logic Programming and Functional Programming", P.A. Subrahmanyam et al, in Logic Programming: Functions, Relations and Equations, D. DeGroot et al eds, P-H 1986. FX-87 - Effects. A polymorphically typed language that allows side effects and first-class functions. Tries to integrate functional and imperative programming. "The FX-87 Reference Manual", G. Gifford et al, MIT/LCS/TR- 407, Oct 1987. Version: FX-89. ftp: brokaw.lcs.mit.edu G++ - Implementation of C++ by Free Software Foundation's Project GNU. Gabriel: A graphical DSP language for simulation and real systems. "A Design Tool for Hardware and Software for Multiprocessor DSP Systems," E.A. Lee, E. Goei, J. Bier & S. Bhattacharyya, DSP Systems, Proc ISCAS-89, 1989. Gaelic - For automated test programs. Used in military, essentially replaced by ATLAS. Galileo - "Galileo: A Strongly Typed Interactive Conceptual Language", A. Albano et al, ACM Trans Database Sys 10(2):230-260 (June 1985). GAMMA - Generating matrices and mathematical programming reports. "GAMMA 3.3 for MPS/MPSX, IBM System /360", Bonnor & Moore Assocs (Mar 1975). GAP - Symbolic math? Gargoyle - For compiler writing. J.V. Garwick, CACM 7(1):16-20, (Jan 1964). GAT - Generalized Algebraic Translator. Improved version of IT. On IBM 650 RAMAC. Sammet 1969, p.142. GATE - Based on IT. Sammet 1969, p.139. GECOM - Somewhat akin to COBOL with some ALGOL features added. Comprised of ALGOL, COBOL, FRINGE and TABSOL. FRINGE and TABSOL may not have actually been implemented. Sammet 1969, p.329. Gedanken - 1970 Reynolds GEPURS - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). GIM-1 - Generalize Information Management Language. Nelson, Pick, Andrews. Proc SJCC, 29:169-73. GIN - Special-purpose macro assembler used to build the GEORGE 3 operating system for ICL1900 series machines. GIRL - Graph Information Retrieval Language. Handling directed graphs. "Graph Information Retrieval Language", S. Berkowitz, Report 76-0085, Naval Ship Research and Development Center, (Feb 1976) GKS - Graphical Kernel System. GLYPNIR - An ALGOL-like language with parallel extensions. Similar to ACTUS. "GLYPNIR - A Proramming Language for the Illiac IV", D.H. Lawrie et al, CACM 18(3) (Mar 1975) GOL - General Operating Language. Subsystem of DOCUS. Sammet 1969, p.678. GP - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). GOSPL - Graphics-Oriented Signal Processing Language. A graphical DSP language for simulation. C.D. Covington, G.E. Carter & D.W. Summers, "Graphic Oriented Signal Processing Language - GOSPL", Proc ICASSP-87, 1987. GPL - Generalized Programming Language. General purpose language in spirit of ALGOL. Sammet 1969, p.195. GPM - General Purpose Macro-generator. C. Strachey, 1965. Similar to TRAC. Sammet 1969, p.450. GPS - Early AI attempt. "Computers and Thought", McGraw-Hill, 1963. [May not have been a language.] Sammet 1969, p.466. GPSS - General Purpose Systems Simulator. Geoffrey Gordon, 1960. Discrete simulation problems. "The Application of GPSS V to Discrete System Simulation", G. Gordon, P-H 1975. Versions include GPSS II (1963), GPSS III (1965), GPS/360 (1967), and GPSS V (1970). GPX - Early system on UNIVAC II. Listed in CACM 2(5):16 (May 1959). GRAF - GRaphic Additions to FORTRAN. Added graphic data-type to FORTRAN. --- End of Part 2 -- --Bill Kinnersley billk@hawk.cs.ukans.edu 226 Transfer complete.
billk@hawk.cs.ukans.edu (Bill Kinnersley) (04/28/91)
---- Sammet 1969, p.674. Graphic ALGOL - Generation of shaded perspective picures in real time. "An Extended ALGOL-60 for Shaded Computer Graphics", B. Jones, Proc ACM Symp on Graphic Languages, Apr 1976. Graphic Language - For specifying graphic operations. Sammet 1969, p.677. GREEN - A proposed language to meet the DoD Ironman requirements which led to Ada. This language was the winner. "On the GREEN Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):16-21 (Oct 1978). GWBASIC - Gee Whiz BASIC. Gypsy - Specification and verification of systems software. A program is made up of separately compilable units: routine (procedure, function, or process), type and constant definition. Each unit is provided with a list of access rights. "Report on the Language Gypsy", A.L. Ambler et al, UT Austin ICSCS-CMP-1 Aug 1976. HAL/S - Real-time language used by NASA for onboard shuttle software. "Two-Dimensional Characteristics of HAL, A Language for Spaceflight Applications", J.S. Miller, SIGPLAN Notices 7(10) (Oct 1972). Haskell - Named after logician Haskell B Curry. Haskell is a modern functional language with static polymorphic typing, lazy evaluation, higher-order functions, non-strict semantics, user-defined algebraic data types, and pattern-matching list comprehensions. It is largely derived from Miranda, with the addition of a class system, operator overloading, an IO system, functional arrays, and separate compilation. Lazy, purely functional, designed by a committee drawn from the functional programming community. Currently one compiler in general circulation, and at least two more available RSN. "Report on the Programming Language Haskell", Paul Hudak & P. Wadler eds, CS Dept, U Glasgow, UK. (Apr 1990). ftp: nebula.systemsz.cs.yale.edu list: haskell-request@cs.yale.edu, HASKLD-L@YALEVM.BITNET. Yale Haskell - implemented in T Glasgow Haskell - implemented in Chalmers LML HASL - SASL plus conditional unification. "A Prological Definitioin of HASL, A Purely Functional Language with Unification Based Conditional Binding Expressions", H. Abramson in Logic Programming: Functions, Relations and Equations, D. DeGroot et al eds, P-H 1986. Hermes - Complex distributed systems. A follow-on effort to NIL[2], developed at TJWRC, IBM. "Hermes: A Language for Distributed Computing", Strom et al, P-H 1991, ISBN 0-13-389537-8. ftp: software.watson.ibm.com Honeywell-800 business compiler - Apparent early name of FACT, ca. 1959. Sammet 1969, p.327. Hope - "springs eternal", and so forth. R.M. Burstall, U Edinburgh 1978. Functional language with polymorphic types, call-by-pattern, and lazy lists. "HOPE, an Experimental Applicative Language", R.M. Burstall et al, Conf Record of the 1980 LISP Conf, p.136-143 (Aug 1980), "A HOPE Tutorial", BYTE Aug 1985, pp.235-258. ftp: brolga.cc.uq.oz.au. Lazy variant for UNIX, Mac and PC. HOS-STPL - Hospital Operating System - STructured Programming Language. A FORTRAN-like language with sructured extensions. "HOS-STPL User Manual", Health Services Research, US Public Health Service (Jan 1975). HPGL - Hewlett-Packard Graphics Language. Document description language used by HP LaserJet printers. HyperTalk - The programming language for Macintosh HyperCard. IAL - International Algebraic Language. Original name of ALGOL 58. "Preliminary report - International Algebraic Language", CACM 1(12):8 (1958). ICE - In Circuit Emulator. Term used for virtual CPU emulators used in embedded systems. ICEBOL - Variant of SNOBOL. [I thought this was the name of a conference?] ICES - Integrated Civil Engineering System. Subsystems include COGO, STRUDL, BRIDGE, LEASE, PROJECT, ROADS and TRANSET. Internal langguages include ICETRAN and CDL. "An Integrated Computer System for Engineering Problem Solving", D. Roos, Proc AFIPS SJCC 27(2) 1965. Sammet 1969. ICETRAN - An extension of FORTRAN IV. Component of ICES. Sammet 1969, p.617. Icon - Griswold, 1970's. A descendant of SNOBOL4 with Pascal-like syntax. Icon is a general-purpose language with special features for string scanning. Dynamic types. The central theme of Icon is the generator: when an expression is evaluated it may be suspended and later resumed, producing a result sequence of values until it fails. This resumption takes place implicitly in two contexts: iteration which is syntactically like a loop (every-do), and goal-directed evaluation in which a conditional expression automatically attempts to produce at least one result. Expressions that fail are used in lieu of Booleans. Data backtracking is supported by a reversible assignment. Icon also has co-expressions, which can be explicitly resumed at any time. "The Icon Programming Language", Ralph & Marge Griswold, P-H 1983. ftp: arizona.edu list: icon-group@arizona.edu IDL - Interface Description Language. J. Nestor et al, CMU 1982. Description of data structures to be passed between the components of an application. "The Interface Description Language", R. Snodgrass, Computer Science Press 1989. list: info-idl@sei.cmu.edu Id Nouveau - (or Id for short). Single assignment language for a dataflow architecture. "Id-Nouveau Reference Manual", R.S. Nikhil, CS TR, MIT, March 1988. I-D-S/I - Integrated Data Store. Extension to COBOL involving ring type lists. Formerly IDS. "A General Purpose Programming System for Random Access Memories", C.W. Bachman et al, Proc AFIPS FJCC 26(1) 1964. Sammet 1969, p.376. IF1 - Intermediate language for dataflow compilers. "The Manchester Prototype Dataflow Computer", J.R. Gurd etal, CACM 28(1):34-52 (Jan 1985). IFIP - Subset of ALGOL. Sammet 1969, p.180. IFP - Illinois FP. Variant of FP with a significantly different syntax. "The Illinois Functional Programming Interpreter", Arch D. Robison, Proc 1987 SIGPLAN Conf on Interpreters and Interpretive Techniques (June 1987). "Illinois Functional Programming: A Tutorial", Arch D. Robison, BYTE Feb 1987. ftp: cs.uiuc.edu IGL - Interactive Graphic Language. Used primarily by Physics researchers at Brooklyn Poly, uses numerical methods on vectors to approximate continuous function problems that don't have closed form solutions. IITRAN - Simple FORTRAN for students. "The IITRAN Programming Language", B. Dewar et al, CACM 12(10):569-575 (Oct 1969). ILLIAC - Early system on ILLIAC computer. Listed in CACM 2(5):16, (May 1959) p.16. IMP - 1. Derivative of BCPL and ALGOL for systems programming. Used in Edinburgh to code the Edinburgh Multi Access System (EMAS), one of the first OS's written in a high level language, apparently predating UNIX. References are in J British Computer Soc. 2. "Experience with an Extensible Language", Edgar T. Irons, CACM 13(1):31-39 (Jan 1970) Info BASIC - Variant of PICK BASIC used with Prime's PRIMOS OS. Information Algebra - Theoretical formalism for DP, never resulted in a language. Language Structure Group of CODASYL, ca. 1962. Sammet 1969, 709. Inglish - English-like language used for Adventure games like "The Hobbit" (could distinguish between "take the rope and axe" and "take the money and run"). INTELLECT - A query language - Larry Harris, 1977. INTERCAL - Compiler Language With No Pronounceable Acronym. Has nothing at all in common with any other major programming language. Developed Princeton U, May 26, 1972. "The INTERCAL Programming Language Reference Manual", Donald R. Woods & James M. Lyon. C-INTERCAL is an implementation by Eric Raymond, distributed on Usenet. ftp: snow.white.toronto.edu, also comp.sources.misc/Volume16 INTERCOM - Early system on G-15. Listed in CACM 2(5):16 (May 1959). Versions: INTERCOM 101, INTERCOM 1000. INTERLISP - A rich environment for LISP. Interpress - The first page description language, predating PostScript. Used on Xerox printers. "Interpress, The Source Book", Steven Harrington et al, P-H 1988. IPL - Information Processing Language. Allen Newell & J.C. Shaw, Carnegie ca. 1956. Said to be the first list-processing language, very low level. Sammet, 69. "Implementation Procesing Language-V Manual", A. Newell ed., P-H 1965. Versions: IPL-I, IPL-II, IPL-III, IPL-IV, IPL-V, IPL-VI. Ironman - Set of DoD requirements that led to Ada. "Department of Defense Requirements for High Order Computer Programming Languages", SIGPLAN Notices 12(12):39-54 (Dec 1977). ISETL - Symbolic math [?] ISIS - Dialect of JOSS. Sammet 1969, p.217. ISO Pascal - Pascal standard, ISO 7185-1982. Changes from Jensen & Wirth 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. ISPL - Instruction Set Processor Language. Description language for computer architecture, written in BLISS. "Computer Structures: Readings and Examples", C.G. Bell et al, McGraw-Hill 1971. ISWIM - If You See What I Mean. ISWIM is a purely functional sugaring of lambda calculus, and has become the ancestor of most modern applicative languages. Syntactically an ISWIM program is a single expression qualified by "where" clauses: auxiliary definitions including equations among variables, conditional expressions and function definitions. ISWIM was the first language to use lazy evaluation. "The Next 700 Programming Languages", P.J. Landin, CACM 9(3):157-166 (Mar 1966). IT - Internal Translator. Used early for math on IBM 650. Sammet, 1969. Version: IT 3. Iverson's Language - APL, which went unnamed for many years. Sammet 1969, p.770. J - The latest successor to APL, from Iverson Software. ftp: watserv1.waterloo.edu J3 - A dialect of JOVIAL. "Military Standard JOVIAL (J3)", MIL-STD-1588 (USAF) (June 1976). J73 - A dialect of JOVIAL. "Military Standard JOVIAL (J73)", MIL-STD-1589 (USAF) (Feb 1977). Jade - A strongly-typed language that is object-oriented but without the usual class hierarchy. A type research language. Implemented as a compiler that produces Smalltalk as the output code. U Washington, late 80's. [The submitter claimed Jade has exactly one user!] Janus - Built on PROLOG. "Programming in Janus", Saraswat, Kahn & Levy. ftp: cs.arizona.edu JAZ - Early system on LGP-30. Listed in CACM 2(5):16 (May 1959). JCL - Job Control Language. Batch language on IBM OS/360 systems. Notoriously difficult to program in. JCS-13 - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). JOSS - JOHNNIAC Open Shop System. Charles L. Baker. An early simple interactive calculator language. "JOSS Users' Reference Manual", R.L. Clark, Report F-1535/9, RAND Corp. (Jan 1975) Sammet 1969, p.217. Versions include JOSS I and JOSS II. JOVE - Johnathan's Own Version of Emacs. Johnathan Payne. JOVIAL - Jule's Own Version of IAL. Jules I. Schwartz 1960. Based on ALGOL 58 but with extensions for large scale real-time programming. Saw extensive use by the US Air Force. The data elements were items, entries (records) and tables. CACM 6(12) (Dec 1960)p.721. Versions include JOVIAL I (IBM 709, 1960), JOVIAL II (IBM 7090, 1961) and JOVIAL 3 (1965). Dialects J3, JOVIAL J73, JS, JTS. Joyce - Language for distributed computers, based on CSP and Pascal. Designed by Per Brinch Hansen, Denmark. JPLDIS - Jet Propulsion Laboratory Display Information System. Query system (based on Tymshare's "Retrieve") for UNIVAC 1108 [or was it PDP's?] written in FORTRAN at JPL, Pasadena, CA by Jack Hatfield, George Masters, W. Van Snyder, Jeb Long et al. Indirectly led to Vulcan which led to dBASE II. JS - Dialect of JOVIAL. Sammet 1969, p.639. JTS - Simple dialect of JOVIAL. Sammet 1969, p.528. K5 - Early system on Larc computer. Listed in CACM 2(5):16 (May 1959). Kaleidoscope - Imperative object-oriented constraint programmming language. U Washington and Universite de Nantes, late 80's. [The submitter claims Kaleidoscope has exactly one user!] KISS - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). Klerer-May - Two dimensional math expressions. Sammet 1969, p.284. KOMPILER - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). Versions: KOMPILER 2 for IBM 701, KOMPILER 3 for IBM 704. K&R C - C as originally described in "The C Programming Language", B. Kernighan and D. Ritchie, in contrast to the proposed ANSI standard C. KRC - Kent Recursive Calculator. Turner 1981. Lazy functional language with pattern-matching, based on SASL. "Functional Programming and its Applications", D.A. Turner, Cambridge U Press 1982. ksh - Korn Shell command shell interpreter for UNIX. KCL - Kyoto Common LISP ftp: rascal.ics.utexas.edu L6 - Bell Telephone Laboratories Low-Level Linked List Language. List processing language. "A Programmer's Description of L6, Bell Telephone Laboratories' Low-Level Linked List Language" CACM 9(8) (Aug 1966). Sammet 1969. Lakota - No details Laning and Zierler - On Whirlwind computer at MIT in 1953. Sammet 1969. LAP - Assembly language embedded into early LISP. Sammet 1969, p.597. Larch - "The Larch Family of Specification Languages", J.V. Guttag et al, IEEE Software 2(5):24-365 (Sep 1985). LaTeX - An extension of TeX. "LaTeX, A Document Preparation System", Leslie Lamport, A-W 1986. LDT - Logic Design Translator. Computer system design analysis. Sammet 1969, p.621. LEAP - Language for the Expression of Associative Procedures. An ALGOL-based formalism for sets and associative retrieval operations. Became part of SAIL. "An ALGOL-based Associative Language", J.A. Feldman et al, CACM 12(8) (Aug 1969) LECOM - Version of COMIT on GE 225 ca. 1966. Sammet 1969, p.419. LEDA - Combined imperative, object-oriented, and logic programming language. Tim Budd, Oregon State U. <budd@cs.orst.edu> Lex - Input language to the Lex scanner generator. "Lex - A Lexical Analyzer Generator", M.E. Lesk, CS TR 39, Bell Labs (Oct 1975). LG - A simple language for analyic geometry, with graphic output. "LG: A Language for Analytic Geometry", J. Reymond, CACM 12(8) (Aug 1969) LIMDEP - Linear programming language used by economists. Linc - The Burroughs/Unisys (it's still very current) 4GL. Designed in New Zealand. LINDA - Language for parallel processing with communication via a shared tuple space (actually, just a subroutine library). Lincoln Reckoner - On-line math system on TX-2, ca. 1965. Sammet 1969, p.245. LIPL - Linear IPL. Dupchak, ca. 1965. Sammet 1969, p.394. LIS - "The System Implementation Language LIS", J.D. Ichbiah, CII, France (Dec 1974). LISP - LISt Processing. John McCarthy et al, MIT late 50's. Symbolic functional recursive language used in many AI applications. Many dialects. Atoms and lists. Programs are themselves represented as list structures. Only numeric type is floating point. Versions include LISP 1 (Original version), LISP 1.5 (MIT, 1959), LISP 1.75, LISP 1.9, and LISP 2 (an ALGOL variant of LISP). Lispkit - Purely functional version of LISP. "Functional Programming, Application and Implementation", P. Henderson, P-H 1980. LITTLE - Typeless language used to produce machine-independent software. LITTLE has been used to implement SETL. "Guide to the LITTLE Language", D. Shields, LITTLE Newsletter 33, Courant Inst (Aug 1977). Little Smalltalk - An almost subset of Smalltalk-80, but line-oriented and written in C. "A Little Smalltalk", Timothy Budd, A-W 1987. Hundreds of users, at least. ftp: cs.orst.edu. LML - Lazy, completely functional variant of ML[2]. Implemented on the G- machine. Chalmers U Tech, Goteborg, Sweden. ftp: piggy.cs.chalmers.se Logo - LISP-like language aimed at children and other programming beginners. Notable for its "turtle graphics" used to draw geometric shapes. Created by Seymour Papert et al, 1966-1968 at Bolt, Beranek & Newman, further development at MIT's AI Lab. LOLITA - Language for the On-Line Investigation and Transformation of Abstractions. Sammet 1969, p.464. LOOK - Specification language. LOOPS - Object-oriented extension to Interlisp. "The LOOPS Manual", D.G. Bobrow & M. Stefik, Xerox Corp 1983. LOTIS - LOgic, TIming, Sequencing. Describes a computer by describing data flow. Sammet 1969, p.620. LPC - A variant of C used to program the LP MUDs, programmable multi-user adventures. Guesstimate: 2-3 000 000 lines of code and growing. Introduced ca. 1988. LPG - "Linguaggio Procedure Grafiche" (Italian for "Graphical Procedures Language") Interpreted and compiled language underlying products of CAD.LAB Spa, Bologna, Italy. Roughly a cross between FORTRAN and APL, with graphical-oriented extensions, and several peculiarities. "Graphical Procedure Language User's Guide and Reference Manual", CAD.LAB, Bologna, Italy, 1989, order code GO89/9. Main author of the language is dott. Gabriele Selmi. LRLTRAN - Lawrence Radiation Laboratory TRANslator. FORTRAN extension with vector arithmetic and dynamic storage, used for scientific work and systems programming, including the LTSS OS. "The LRLTRAN Compiler", S.F. Mendicino, CACM 11(11):747-7752MODEF (Nov 1969) LT-2 - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). LTR - Mentioned in "An Overview of Ada", J.G.P. Barnes. LUCID - 1. Early query language, ca. 1965, System Development Corp, Santa Monica, CA. Sammet 1969, p.701. 2. Ashcroft & Wadge, 1981. A dataflow language, a descendant of ISWIM. Lazy, but first-order. Iteration is simulated with "is current" and "fby" (concatenation of sequences) It has lazy evaluation. Statements are equations which define a network of processors and communication lines. The data is processed as it flows through this network. Every data object is thought of as an infinite stream of simple values, every function as a filter. Lucid has no other data constructors such as arrays or records. It is a first-order language: functions cannot be used as arguments."Lucid, the Dataflow Programming Language", William W. Wadge, Academic Press 1985. Lustre - Synchronous language, a derivative of Lucid. J.L. Bergerand et al, "Outline of a Real-Time Data-Flow Language", Real Time Systems Symp, San Diego, Dec 1985. LYRIC - Language for Your Remote Instruction by Computer. CAI language implemented as a FORTRAN preprocessor. "Computer Assisted Instruction: Specification of Attributes for CAI Programs and Programmers", G.M. Silvern et al, Proc ACM 21st Natl Conf (1966). MAC - Early system on Ferranti Mercury. Listed in CACM 2(5):16 (May 1959). MAC-360 - Solving numerical problems using equation-like input. ca. 1967. "User's Guide to MAC-360", Charles Stark Draper Lab, Cambridge MA (Aug 1973) Sammet 1969, p.264. Macaulay - Mike Stillman <mike@mssun7.msi.cornell.edu> and Dave Bayer <bayer@cunixa.columbia.edu>, late 70's. Symbolic algebra package for commutative algebra, algebraic geometry, cohomology. ftp: zariski.harvard.edu, Mac and Amiga versions, source in C. Machiavelli - Peter Buneman & Atsushi Ohori, U Pennsylvania, 1989. Based on orthogonal persistence. An extension of Standard ML. "Database Programming in Machiavelli: A Polymorphic Language with Static Type Inference", A. Ohori, Proc SIGMOD Conf, ACM, June 1989. MACSYMA - Interactive symbolic math system, Joel Moses MIT 1969, later Symbolics, Inc. "MACSYMA - The Fifth Year", J. Moses, SIGSAM Bulletin 8(3) (Aug 1974). Version: DOE MACSYMA, ANL. info: macsyma-service@symbolics.com MAD - Michigan Algorithm Decoder. Numerical computation. "The MAD Manual", Univ. Michigan Computing Center (1966). Sammet 1969, p.205. MADCAP - Math and set problems. "MADCAP - A Scientific Compiler for a Displayed Formula Texbook Language", M.B. Wells, CACM 4(1):31-36 (Jan 1961). Sammet 1969, p.271. MAGIC - Early system on Midac computer. Listed in CACM 2(5):16 (May 1959). Magic Paper - Early on-line formal algebra system. Sammet 1969, p.510. MAINSAIL - Dialect of SAIL. From XIDAK, Inc. Used to be in Menlo Park, may now be in Palo Alto. Make - Language for the UNIX file maintenance utility Make. Many other implementations. "Make - A Program for Maintaining Computer Programs", A.I. Feldman, TR No 57, Bell Labs Apr 1977. MAP - Mathematical Analysis without Programming. On-line system under CTSS for math. Sammet 1969, p.240. Maple - Language for the Maple symbolic math system. Bruce Char, Keith Geddes, Gaston Gonnet, Michael Monagan & Stephen Watt, U Waterloo (Canada) 1980. Waterloo Maple Software. Version: Maple V. info: wmsi@daisy.waterloo.edu list: glabahn@daisy.waterloo.edu MARSYAS - MARshall SYstem for Aerospace Simulation. Simulation of large physical systems. "MARSYAS, Parts 1 & 2", H. Trauboth et al, IEEE Circuits and Systems Society Newsletter 7(3-4) (June, Aug 1973). MARY - Norwegian research language, somewhat ALGOL68-like. Surprising features include total lack of operator precedence!! The back cover of the manual bears the (well-hidden) fragment: MARY HAD A LITTLE LAMB - COERCION IMPOSSIBLE. MASM - Microsoft Assembler. MS-DOS. Mathcad - Symbolic math environment. Mathematica - Symbolic math and graphics system, Wolfram Research, 1988. The language emphasizes rules and pattern-matching. "Mathematica: A System for Doing Mathematics by Computer", Stephen Wolfram, A-W 1988. ftp: otter.stanford.edu, ftp.ncsa.uiuc.edu list: mathgroup-request@yoda.ncsa.uiuc.edu info: info@wri.com MATHLAB - On-line formal algebra system, MITRE, 1964. Later version: MATHLAB 68 (PDP-6, 1967). "The Legacy of MATHLAB 68", C. Engelman, Proc 2nd Symp on Symbolic and Algebraic Manip, ACM (Mar 1971). Sammet 1969, p.498. MATH-MATIC or MATHMATIC - Alternate name for AT-3. Early, pre- FORTRAN language for UNIVAC I or II. Sammet 1969. Matlab - Matrix manipulation environment. The MathWorks, Inc. (508) 653-1415. Matrix Compiler - Early matrix compuations on UNIVAC. Sammet 1969, p.642. MATRIX MATH - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). MBASIC - Microsoft BASIC. MDL - "Muddle", developed at MIT, was basis for ZIL. me too - Functional language for executable specifications. Peter Henderson. "Functional Programming, Formal Specification and Rapid Prototyping", IEEE Trans Soft Eng, SE-12(2) (Feb 1986). Mercury Autocode - Mercury was another Ferranti machine. Mesa - Xerox PARC. System and application programming for proprietary hardware: Alto, Dolphin, Dorado and Dandelion. Pascal-like syntax. Its notion of modules with separately compilable definition and implementation directly led to Wirth's design for Modula. Threads, coroutines, exceptions, and monitors. Type checking may be disabled. Originally for internal use, Mesa was released to a few universitites in 1985. "Mesa Language Manual", J.G. Mitchell et al, Xerox PARC, CSL-79-3 (Apr 1979). "Early Experience with Mesa", Geschke et al, CACM 20(8):540-552 (Aug 1977). META 5 - Early syntax-directed compiler compiler, used for translating one high-level language to another. "META 5: A Tool to Manipulate Strings of Data", D.K. Oppenheim et al, Proc 21st Natl Conf, ACM 1966. Sammet 1969, p.638. Versions: META II, META-3. METAFONT - A system for the design of raster-based alphabets. Companion to TeX. "The METAFONT Book," Donald Knuth, A-W 1986. MICRO-PLANNER - Subset of PLANNER, implemented in LISP. "MICRO-PLANNER Reference Manual", G.J. Sussman et al, AI Memo 203, MIT AI Lab, 1970. MIDAS - Digital simulaton language. Sammet 1969, p.627. MILITRAN - Discrete simulation for military applications. Sammet 1969, p.657. MIMIC - Solving engineering problems such as differential equations. "MIMIC, An Alternative Programming Language for Industrial Dynamics, N.D. Peterson, Socio-Econ Plan Sci. v.6, Pergamon 1972. MINITAB II - Interactive solution of small statistical problems. "MINITAB Student Handbook", T.A. Ryan et al, Duxbury Press 1976. Miranda - Lazy, purely functional. Turner, 1980's. A commercial descendant of SASL and KRC, with ML's type system. Terse syntax follows the offside rule, type declarations are optional. Nested pattern-matching, list comprehensions, modules. User types are algebraic, may be constrained by laws. Implementation uses SKI reduction. "Miranda: A Non Strict Functional Language with Polymorphic Types", D.A. Turner, in Functional Programming Languages and Computer Architecture, LNCS v.201, Springer 1985. info: Research Software Ltd, or mira-request@ukc.ac.uk MIRFAC - Mathematics in Recognizable Form Automatically Compiled. Math problems. Sammet 1969, p.281. MISHAP - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16, (May 1959). MITILAC - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). MIXAL - MIX Assembly Language. Assembly language for Knuth's hypothetical MIX machine. "The Art of Computer Programming v.1", Donald Knuth, A-W 1969. MJS - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). ML - 1. Manipulator Language. IBM language for handling robots. 2. Meta Language. Polymorphically-typed functional language, Gordon, 1970's. "A Metalanguage for Interactive Proof in LCF", M. Gordon et al, 5th ACM Symp on Princs of Prog Langs, Jan 1978. MLAB - Modeling LABoratory. Interactive mathematical modeling. "MLAB, An On-Line Modeling Laboratory", NIH (Mar 1975). ML/I - Early macro translating system. P.J. Brown, CACM 10(10):618-623, (Oct 1967). MLISP - LISP variant with ALGOL-like syntax. "MLISP", D.C. Smith, Report No. CS-179, CS Dept, Stanford (Oct 1970). Version: MLISP2. MOBSSL-UAF - Merritt and Miller's Own Block-Structured Simulation Language-Unpronounceable Acronym For. Interactive continuous simulations. "MOBSSL - An Augmented Block Structured Continuous System Simulation Language for Digital and Hybrid Computers", M.J. Merritt et al, Proc AFIPS FJCC v.35 (1969). MODEF - Pascal-like language with polymorphism and data abstraction. "Definition of the Programming Language MODEF", J. Steensgard-Madsen et al, SIGPLAN Notices 19(2):92-110 (Feb 1984). Modula - Wirth, 1977. Predecessor of Modula-2, more oriented towards concurrent programming but otherwise quite similar. "Modula - A Language for Modular Multiprogramming", N. Wirth, Soft Prac & Exp 7(1):3-35 (Jan 1977). Modula-2 - Wirth, 1979. Programming dedicated computer systems, including process control on smaller machines. Modula-2 provides limited visibility of the underlying hardware. "Programming in Modula-2", N. Wirth, Springer 1985 Modula-2+ - DEC SRC, Palo Alto CA. Exceptions and threads. "Extending Modula-2 to Build Large, Integrated Systems", P. Rovner, IEEE Soft 3(6) (Nov 1986). Modula-3 - A descendant of Modula-2+ and Cedar, designed for safety. Objects, threads, exceptions and garbage collection. Modules are explicitly safe or unsafe. As in Mesa, any set of variables can be monitored. "Modula-3 Report", Luca Cardelli et al, DEC SRC TR No. 52, and Olivetti Research Center, Aug 1988. ftp: gatekeeper.dec.com Modula/R - Modula with relational database constructs added. LIDAS Group (J. Koch, M. Mall, P. Putfarken, M. Reimer, J.W. Schmidt, C.A. Zehnder) "Modula/R Report", LIDAS Memo 091-83, ETH Zurich, Sep 1983. Modulex - Based on Modula-2. Listed by M.P. Atkinson & J.W. Schmidt presented in a tutorial in Zurich, 1989. MORAL - Mentioned in "An Overview of Ada", J.G.P. Barnes. MORTRAN - public domain FORTRAN pre-processor. MOUSE - Small macro language. Peter Grogono, BYTE article. MPL - Early possible name for PL/I. Sammet 1969, p.542. MPPL - Early possible name for PL/I. Sammet 1969, p.542. M-PROLOG - Marseilles PROLOG, the early version. MPS III - Solving matrices and producing reports. "MPS III DATAFORM User Manual", Management Science Systems (1976). MPSX - Mathematical Programming System Extended. Solution strategy for mathematical programming. "Mathematical Programming System Extended (MPSX) Control Language User's Manual", SH20-0932, IBM. Sammet 1978. Mul-T - Shared memory version of T. Multi-Lisp - A parallel version of LISP. MUMPS - Massachusetts General Hospital Utility Multi-Programming System. A database-oriented OS and the language that goes with it. Used originally for medical records. Current versions for IBM RT and R6000, DSM (Digital Standard Mumps) for DEC, Datatree MUMPS for IBM PC. "MUMPS Language Standard", ANS X11.1-1977. MUMPS User's Group, Box 208, Bedford MA 01730. list: MUMPS-L@UGA.BITNET. MuSimp - Variant of LISP used as the programming language for the PC symbolic math package MuMath. MUSL - Manchester University Systems Language. MYSTIC - Early system on IBM 704, IBM 650, IBM 1103 and 1103A. Listed in CACM 2(5):16 (May 1959). NASTRAN - NAsa STRess Analysis Program. Large stress analysis problems. "The NASTRAN User's Manual", SP-222(C3), NASA. Napier - Based on orthogonal persistence. Redesigned language after 10 years of experience with persistence; developed at St Andrews U; design began ca. 1985, first implementation Napier88, 1988. NAPLPS - North American Presentation-Level-Protocol Syntax. Language for sending text and graphics over communication lines. Used by videotex systems. NAPPS - Numerical Analysis Problem Solving System. 1966. Sammet 1969, p.299. Natural English - Used to mean programming in normal, spoken English. Sammet 1969, p.768. NDL: Network Definition Language. Used to program the DCP (Data Communications Processor) on Burroughs Large System. NDL II - New improved etc version of NDL. NELIAC - Navy Electronics Laboratory International ALGOL Compiler. Numeric and logical computations. CACM 6(7)367 (Jul 1963) Version: BC NELIAC. Neon - An object-oriented extension of FORTH, for the Mac. NEWP - NEW Programming language. Replaced ESPOL on Burroughs Large System. NewsClip - Clarinet article filter language. NGL - A dialect of IGL. Nial - Nested Interactive Array Language. Queen's University, Canada. High level language with arrays as its basic data structure. "Programming Styles in Nial", M.A. Jenkins er al, IEEE Software 3(1):46-55 (1986). NICOL I - Small subset of PL/I by (Massachusetts) Computer Assoc, ca. 1965. Version: NICOL II (1967). Sammet 1969, p.542. NIL - 1. A LISP dialect. "NIL: A Perspective", Jon L. White, MACSYMA Users' Conf Proc, 1979. 2. Implementing complex networking protocols in a modular fashion. TJWRC, IBM. Noddy - A simple (hence the name) language to handle text and interaction on the Memotech home computer. Has died with the machine. NOMAD - Database language. "NOMAD Reference Manual", Form 1004, National CSS Inc (Dec 1976). Version: NOMAD2, Must Software Intl. list: NOMAD2-L@TAMVM1.BITNET NORC COMPILER - Early system on NORC machine. Listed in CACM 2(5):16 (May 1959). NPL - 1. New Programming Language. IBM's original (temporary) name for PL/I - changed due to conflict with England's "National Physical Laboratory." MPL and MPPL were considered before settling on PL/I. Sammet 1969, p.542. 2. Burstall, 1977. A predecessor of HOPE. Pattern matching and set comprehensions. Nroff - Text formating language/interpreter, based on UNIX roff. See also Troff, TBL, EQN, NEQN, PIC, and GRAP. GROFF, also Scribe. --- End of Part 3 -- --Bill Kinnersley billk@hawk.cs.ukans.edu 226 Transfer complete.
billk@hawk.cs.ukans.edu (Bill Kinnersley) (04/28/91)
---- Nuprl - Nearly Ultimate PRL. (pronounced "new pearl"). Interactive creation of formal mathematics, including definitions and proofs. The 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. NYAP - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). NYU, OMNIFAX - [sic] Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). O2 - No details. OBE - Office By Example. Sequel to QBE, Moshe Zloof, IBM, early 1980's. Descriptions published but apparently never implemented. Oberon - Wirth, 1988. A descendant of Modula-2 that eliminates 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 Mac, SPARC, DECstation. OBJ - A declarative "ultra high level" language. 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). "Principles of OBJ2", K. Futatsugi et al in Proc 12th ACM Symp on Princs of Prog Langs, B. Reid ed, ACM 1985, pp.52-66. Object-Oberon - H. Moessenboeck & J. Templ, 1989. An Oberon extension, adding classes and methods. Object Pascal - Apple. "Object Pascal Report", Larry Tesler, Structured Language World 9(3) 1985. Objective C - Brad Cox. An object-oriented extension of C, incorporating many ideas from Smalltalk. Implemented as a front end for the C compiler. Used as the system programming language on the NeXT. Thousands of users. "Object-Oriented Programming: An Evolutionary Approach", Brad Cox, A-W 1986. OBSCURE - "An Introduction to the Specification Language OBSCURE", J. Loeckx, TR A85/15, U Saarlandes, Saarbrucken, 1985. OCAL - On-Line Cryptanalytic Aid Language. That says it all. Sammet 1969, p.642. OCAS - On-line Cryptanalytic Aid System. System that contains OCAL. Sammet 1969, p.642. occam - 1982. (Named for the 14th cent. philosopher William of Occam.) Concurrent algorithms, based on CSP and EPL, David May et al, 1982. Designed for the INMOS transputer and vice versa. Each expression is a process, which may be combined in serial and parallel. Processes communicate via named unidirectional channels. "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 occam (now known as occam 1). Occam 2 has floating point, functions and a type system. There is *no* operator precedence. There are many thousands (probably millions) of lines of code written in it. (occam 1 is really only used as a teaching language, and is more-or-less obsolete). The main compiler for occam 2 targets INMOS transputers, but there may be other experimental compilers in existence. "occam 2 Reference Manual", INMOS, P-H 1988, ISBN 0-13-629312-3. OLC - On-Line Computer system. UCSB ca. 1966. Predecessor of Culler-Fried System. Sammet 1969, p.253. OMNICODE - Early language by Thompson, 1956. 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, p.296. Version: OMNITAB II. 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. OPS - 1. On line Process Synthesizer. Discrete simulation under CTSS. Sammet 1969, p.660. 2. Official Production System. Rule-based language for building expert systems, CMU 1970. OPS/5 - 1977 version of OPS [2]. "Programming Expert Systems in OPS5", L. Brownston et al, A-W 1985. Orca - Shared data objects. One version runs on Tanenbaum's Amoeba distributed OS. "Orca: A Language for Distributed Processing", H.E. Bal et al, SIGPLAN Notices 25(5):17-24 (May 1990). ORTHOCARTAN - Computer algebra system specialized in General Relativity. A. Krasinski, Warsaw, Poland, early 80's. Orwell - Lazy functional language, very similar to Miranda. List comprehensions and pattern matching. "Introduction to Orwell", P. Wadler, Programming Research Group, Oxford U. OSCAR - Oregon State Conversational Aid to Research. Interactive numerical calculations, bvectors, matrices, complex arithmetic, string operations. "OSCAR: A User's Manual with Examples" J.A. Baughman et al, CC, Oregon State U. OSSL - Operating Systems Simulation Language. "OSSL - A Specialized Language for Simulating Computer Systems", P.B. Dewan et al, Proc AFIPS SJCC, v.40 (1972) Owl - Original name of Trellis. PACT I - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). PACT IA - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). PACTOLUS - Digital simulation. Sammet 1969, p.627. Paddle - Language to express the structure of developments. Used in the POPART system. "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. PAL - Paradox Application Language. Language for Paradox, Borland's relational database. Pam - "Formal Specification of Programming Languages: A Panoramic Primer", Frank G. Pagan, P-H. Parallel Pascal - Similar to ACTUS and Glypnir. Parallel SML - "Parallel SML: A Functional Language and its Implementation in Dactl", Kevin Hammond, Pitman Press 1990. Pari - Symbolic math, especially number theory. ftp: math.ucla.edu Paris - Assembly language for the Connection Machine. PARLOG - An and-parallel PROLOG. "PARLOG: Parallel Programming in Logic", K. Clark et al, TOPLAS 8(1):1-49, 1986. PARSEC - Extensible language with PL/I-like syntax, derived from PROTEUS. "PARSEC User's Manual", Bolt Beranek & Newman (Dec 1972) Pascal - Named for 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-80 - A successor of Platon. Developed at RC International, Denmark for systems programming. Later it was renamed Real-Time Pascal. 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. PascalPlus - Denmark? Pascal/R - Pascal with relational database constructs added. The first successful integrated database language. J.W. Schmidt, M. Mall, Pascal/R Report, Universitaet Hamburg, Fachbereich Informatik, Report 66, January 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. PAT - Personalized Array Translator. Small subset of APL. Sammet 1969, p.252. 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. PCL - Hewlett-Packard's Printer Control Language. [Same as HPGL?] 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 - Mentioned in "An Overview of Ada" J.G.P. Barnes. 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. Constructive maths, Constable, Cornell U, 80's. 2. Process and Experiment Automation Real-Time Language. A language to program process control systems. Heavily used in Europe ca. 1980. Pebble - "A Kernel Language for Abstract Datsa Types and Modules", R.M. Burstall et al, in Semantics of Data Types, LNCS v.173, Springer 1984. PENCIL - Pictorial ENCodIng Language. On-line system to display line structures. Sammet 1969, 675. Perl - Practical Extraction and Report Language. Larry Wall <lwall@jpl-devvax.jpl.nasa.gov> AWK-like scripting language for scanning text and printing reports. "Programming Perl", Larry Wall et al, O'Reilly & Assocs. ftp: ftp.uu.net (comp.sources.unix archive) PIC - Graphics meta-language featured in Jon Bentley's "More Programming Pearls." PICK BASIC - Rough superset of BASIC bundled with the PICK operating system. Includes numerous database operations. PIE - From 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 - 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). Was distributed worldwide by the Initial Teaching Alphabet Foundation (about 50 sites?) for Apple II and various CP/M machines. "A Universal Computer Aided Instruction System," Henry G. Dietz & Ronald J Juels, Proc Natl Educ Computing Conf '83, pp.279-282. PILOT - Programmed Inquiry Learning Or Teaching. CAI language, many versions. "Guide to 8080 PILOT", J. Starkweather, DDJ (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. PL-11 - A high level machine-oriented language for the PDP-11. (May have been from CERN.) PL360 - Assembly language for IBM 360 and 370, with a few high-level constructs. "PL360, 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/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. PL/I 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 and compile-time statements. Exception handling. "A Structural View of PL/I", D. Beech, Computing Surveys, 2,1 33-64 (1970). ANS X.3.53-1976. list: PL1-L@UIUCVMD.BITNET 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. PL/M - Programming Language/Microcomputers. Intel's variant of PL/I. "PL/M-80 Programming Manual", Doc 98-268B, Intel (1976) PL/PROPHET - PL/I-like language for the PROPHET system, used by pharmacologists. "The Implementation of the PROPHET System", P.A. Castleman et al, Proc AFIPS NCC v.43 (1974) PL/S - Programming Language/Systems. Apparently a PL/I and ASM hybrid. Created by IBM Systems Development Division in the late 1960's and early 1970's. Much of IBM/360 OS/MFT/MVT/SVS/MVS was done 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. Plain - Based on extended Pascal. "The Data Management Facilities of PLAIN," A.L. Wasserman, ACM-SIGMOD Intl Conf on Management of Data, 1979 pp.60-70. PLAN - Assembler for ICL1900 series machines. PLANIT - Programming Language for Interactive Teaching. Preparing on-line presentations. "PLANIT - A Flexible Language Designed for Computer-Human Interaction", S.L. Feingold, Proc AFIPS FJCC v.31 (1967) Sammet 1969, p.706. [Is there another PLANIT? ca. 1967] 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 - AI language, Hewitt, MIT 1967. "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, ca 1980. The first actor language. Platon - Developed at DAIMI, U Aarhus, Denmark. PLUSS - Specification language, based on ASL. "A First Introduction to PLUSS", M.C. Gaudel, TR, U Paris Sud, Orsay 1984. POGO - Early system on G-15. Listed in CACM 2(5):16 (May 1959). Poly - Polymorphic, block-structured 1980's, "Overview of the Poly Programming Language" D.C.J. Matthews, in Proc Appin Workshop on Data Types and Persistence, Res Report 16, M.P. Atkinson et al eds, U Glasgow. Ponder - Polymorphic, non-strict functional language. "Ponder and its Type System", J. Fairbairn, TR 31, Computer Lab, Cambridge U, Nov 1982. POOL - A family of languages from Philips Research Labs, Netherlands. POP-2 - 1968. Robin POPplestone, 1968. Data objects are numbers (including rationals), strings, words (like LISP atoms), lists, and two special objects: error and end-of-file.First to state the "Bill of Rights for data objects," that all objects including functions should be first class citizens. "Programming in POP-2", R.M. Burstall et al, Edinburgh U Press 1971. POP-11 - Robin POPplestone, 1970. A blend of Pascal syntax, LISP storage allocation and FORTH argument passing. Functional, dynamically typed, interactive, efficient. Compiler-oriented stack machine with extensible data-type facility. "Programming in POP-11", J. Laventhol, Blackwell, 1987. Earlier versions: POP-1, POP-2. Implementations: POPLOG (U Sussex), ALPHA POP-11 for Mac. Poplar - Morris, 1978. A blend of LISP with SNOBOL4 pattern matching and APL-like postfix syntax. Implicit iteration over lists, sorting primitive, POPLER - AI extension of POP-2, influenced by PLANNER. "Popler 1.6 Reference Manual", D. Davies et al, U Edinburgh, TPU Report No 1 (May 1973) POSE - Non-procedural query language, ca. 1967. Sammet 1969, p.299. PostScript - Page description language often used in conjuction with laser printers or on-screen graphic font displays. Adobe Systems. "PostScript Language Reference Manual", ("The Red Book") Adobe Systems Inc, A-W, 1990. PPL - Polymorphic Programming Language. Interactive and extensible. "PPL User's Manual", E.A. Taft, Aiken Comp Lab, Harvard U, (Sep 1974) PRINT - PRe-edited INTerpreter. Early math language on 705. Sammet 1969, 134. PRINT I - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959). PRL - Proof Refinement Logic. "PRL: Proof Refinement Logic Programmer's Manual", CS Dept, Cornell, 1983. Versions: micro-PRL, lambda-PRL, nu-PRL. PROFILE - Simple language for matching and scoring data. "User's Manual for the PROFILE System", Cambridge Computer Assoc (May 1974). PROJECT - subsystem of ICES. Sammet 1969, p.616. PROLOG - PROgramming in LOGic. Alain Colmerauer, U Marseilles 1970. Designed originally for natural-language processing. Resolution theorem proving based on the unification alorithm. Unification is a blend of pattern matching and variable binding. One gives facts about objects and rules of deduction, then asks the system to infer answers to questions. 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. PROMAL - [What does this stand for? "used to be famous" ?] Proposal Writing - Extension of FORTRAN for proposal writing. Sammet 1969, p.170. PROSE - PROblem Solution Engineering. Numerical problems including differentiation and integration. "Computing in Calculus", J. Thames, Research/Development 26(5) (May 1975). 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, a derivative of S-Algol. "The PS-Algol Reference Manual", TR PPR-12-85, CS Dept, U Glasgow 1985. 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) PUFFT - "The Purdue University Fast FORTRAN Translator",Saul Rosen et al, CACM 8(11):661-666 (Nov 1965). Python - Guido van Rossum <guido@cwi.nl> 1991. A high-level interpreted language combining ideas found in a variety of other languages including ABC, C, Modula-3 and Icon. Useful for prototyping or as an extension language for customizable 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. ftp: wuarchive.wustl.edu, gatekeeper.dec.com and hp4nl.nluug.nl. Q'nial - French? A portable interpreter for Nial. QA4 - A question-answering language. "QA4, A Language for Writing Problem-Solving Programs", J.F. Rulifson et al, Proc IFIP Congress 1968. QBE - Query By Example. A query language, Moshe Zloof, IBM, 1975. QLISP - General problem solving, influenced by PLANNER. SRI 1973. QA4 features merged with INTERLISP. "A Language for the Interactive Development of Complex Systems", E. Sacerdoti et al, Proc AFIPS NCC v.45 (1976). QUEASY - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). QUEL - A query language. Quest - No details. 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. QUIKTRAN - On-line FORTRAN with added debugging facilities. Sammet 1969, p.226. QUIN - On-line language, Pyle, 1965. Sammet 1969, p.691. QX - (name from Doc Smith SF books) This language was designed especially for digital signal processing of digitize speech, and was part of SDC's speech understanding project. Designed by Richard Gillmann. SDC, Santa Monica, CA. RAMIS II - Rapid Access Management Information System. Database system. On-Line Software Intl. Rapidwrite - Method for translating set of abbreviations into the much more verbose COBOL code. Sammet 1969, p.338. RATEL - Raytheon Automatic Test Equipment Language. For analog and digital computer controlled test centers. "Automatic Testing via a Distributed Intelligence Processing System", S.J. Ring, IEEE AUTOTESTCON 77 (Nov 1977). RAWOOP-SNAP - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). RATFOR - RATional FORTRAN. FORTRAN preprocessor to allow programming with C-like syntax. "Ratfor - A Preprocessor for a Rational Fortran", B.W. Kernighan, Software - Prac & Exp 5,395-406 (1975). Featured in "Software Tools", B.W. Kernighan & P.J. Plauger, A-W 1976. R:BASE - MS-DOS 4GL from Microrim. Based on Minicomputer DBMS RIM. Was Wayne Erickson the author? Real-Time Pascal - Apparent later name of Pascal-80 by RC Intl, Denmark. Recital - dBASE-like language/DBMS from Recital Corp. Available on VAX/VMS minicomputers among others. RECOL - Retrieval Command Language. CACM 6(3):117-122 (Mar 1963). RED - Proposed language to meet the Ironman requirements which led to Ada. Also known as REDL. "On the RED Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):27 (Oct 1978). REDCODE - Proposed as a language for "battle programs" in corewars. (See Computer Recreations column in Scientific American.) REDUCE - Symbolic math, ALGOL-like syntax. Anthony C. Hearn, 1963. "REDUCE, Software for Algebraic Computation", G. Rayna, Springer 1987. Version: Reduce 2. list: REDUCE-L info: reduce@rand.org server: reduce-netlib@rand.org Refined C (RC) - Extends C to directly specify data access rights so that flow analysis, and hence automatic parallelization, is more effective. Research implementations only. "Refining A Conventional Language For Race-Free Specification Of Parallel Algorithms," Henry G. Dietz & A. David Klappholz, Proc 1984 Intl Conf on Parallel Proc, pp.380-382. Refined Fortran (RF) - Similar to Refined C. Research implementations only. "Refined FORTRAN: Another Sequential Language for Parallel Programming," H.G. Dietz et al, Proc 1986 Intl Conf on Parallel Proc, pp.184-191. REG-SYMBOLIC - Early system on IBM 704. Listed in CACM 2(5):16 (May 1959). RELATIVE - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). RELCODE - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). REL English - Rapidly Extensible Language, English. A formal language based on English. "Practical Natural Language Processing: The REL System as Prototype", Adv in Computers v.13, Academic Press 1975. Report Program Generator - Official name of RPG. Required-COBOL - 1961. Minimal subset of COBOL. Later dropped entirely. Sammet 1969, p.339. Retrieve - Query language by Tymshare Corporation, 1960's. Inspired JPLDIS which lead to Vulcan and then to dBASE II. Revised ALGOL 60 - Alternate name for ALGOL 60 Revised. Sammet 1969, p.773. REXX - Restructured EXtended eXecutor. Scripting language for IBM VM systems, also available on the Amiga. "Modern Programming Using REXX", R.P. O'Hara et al, P-H 1985. list: REXX-L@UIUCVMD.BITNET. Rigel - Based on Pascal. Listed by M.P. Atkinson & J.W. Schmidt presented in a tutorial in Zurich, 1989. ROADS - Subsystem of ICES. Sammet 1969, p.616. Roff - Text formatting language/interpreter. Associated with UNIX. RPG - Report Program Generator. Developed by IBM for easy production of sophisticated large system reports. OS/360, 1965. Version: RPG-II. RPL-1 - A data reduction language. Proc SJCC, 30:571-575, 1967. RPL - RPN Programming Language. The language that HP28 and HP48 calculators use. (RPN - Reverse Polish Notation.) RTL/2 - Barnes 1971. A small real-time language based on Algol 68, with separate compilation. A program is divided into separately compilable bricks (named modules) and may be datablock, procedure, or stack. A stack is a storage area for use as a workspace by a task. The language is block- structured and weakly typed. Simple types are byte, int, frac and real, no Boolean. Compound types may be formed from arrays, records and refs (pointers). There are no user-defined types. Control consists of if-then- elseif-else-end, for-to-by-do-rep, block-endblock, switch, goto, and label variables. "RTL/2: Design and Philosophy", J.G.P. Barnes, Hayden & Son, 1976 RUFL - Rhodes University Functional Language - Miranda-like. Rhodes U, Grahamstown, South Africa. RUNCIBLE - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). RUSH - Interactive dialect of PL/I, related to CPS, ca. 1966. Sammet 1969, p.309. Russell - Demers & Donohue. A compact, polymorphically typed functional language, with bignums and continuations. "Revised Report on Russell", A. Demers et al, TR 79-389, Dept Cornell U 1979. ftp: watserv1.waterloo.edu S-Algol - Orthogonal data structures on Algol-60. "S-Algol Language Reference Manual", R. Morrison, TR CS/79/1, CS Dept U St Andrews, St Andrews, Scotland, 1979. SAC - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). SAD SAM - Query language by Lindsay. Sammet 1969, p.669. SAFARI - ON-line text editing system by MITRE. Sammet 1969, p.685. SAIL - 1. [?] Early system on Larc computer. Listed in CACM 2(5):16 (May 1959). 2. ALGOL-like language with a symbolic data system based upon an associative storage (originally called LEAP), with multitasking facilities. Developed at the Stanford AI Project. "Recent Developments in SAIL - An ALGOL-based Language for Arificial Intelligence", J. Feldman et al, Proc AFIPS FJCC, v.41(2) (1972). SAINT - LISP-like language? Sammet 1969, p.410. SALT - Symbolic Assembly Language Trainer. Assembler-like language implemented in BASIC by Kevin Stock, now at Encore in France. SAP - Symbolic Assember Program. Historic assembler on IBM 704, late 1950's. SAS - Statistical Analysis System. Statistical and matrix language, syntax similar to PL/I. "A User's Guide to SAS", A.J. Barr, SAS Inst 1976. SASL - Saint Andrews Static Language. Turner 1976. A derivative of ISWIM with infinite data structures. Fully lazy and weakly typed. Designed for teaching functional programming, with very simple syntax. "A New Implementation Technique for Applicative Languages", D.A. Turner, Soft Prac & Exp 8, 31-49 (1979) SCEPTRE - Designing and analyzing circuits. "SCEPTRE: A Computer Program for Circuit and Systems Analysis", J.C. Bowers et al, P-H 1971. Scheme - G.L. Steele & G.J. Sussman, 1975. A small uniform LISP dialect. Scheme is applicative-order and lexically scoped, and treats both functions and continuations as first-class objects. "The Revised^3 Report on the Algorithmic Language Scheme", G.L. Steele Jr, SIGPLAN Notices 21(12):37-79 (Dec 1986). list: scheme@mc.lcs.mit.edu Schoonschip - Computer algebra system specialized in High Energy Physics. Developed by Veltman, CERN, late 60's. Originally implemented in CDC-6600 and 7600 assembler, current versions include Atari-ST, SUN 3. Scratchpad - A general-purpose language originally for interactive computer algebra at IBM Research in the 1980s. It features abstract parametrized datatypes, multiple inheritance and polymorphism. Implementations exist under VM/CMS and AIX. Authors include Richard Jenks, Barry Trager, Stephen M. Watt & Robert S. Sutor. "Scratchpad User's Manual", RA 70, IBM (June 1975). Version: Scratchpad II. Scratchpad II Newsletter: Computer Algebra Group, TJWRC, Box 218, Yorktown Hts, NY 10598. SCRIPT - Early system on IBM 702. Listed in CACM 2(5):16 (May 1959). SDL - 1. System Software Development Language. System software for the B1700. "System Software Development Language Reference Manual", 1081346, Burroughs Corp (Dec 1974). 2.A specification language. [?] Sed - The UNIX stream editor. SEESAW - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). Self - Dynamically-typed object-oriented language. "Self: The Power of Simplicity", David Ungar et al, OOPSLA '87 Proc, ACM. ftp: otis.stanford.edu list: self-interest@self.stanford.edu request: self-request@self.stanford.edu SETL - SET Language. Courant Inst, early 70's. A very high level set-oriented language. The first Ada translator was written in SETL. Data types include sets (unordered collections), tuples (ordered collections) and maps (collection of ordered pairs). Statements include predicate calculus formulas ("for each" and "there exists"). "On Programming: An Interim Report on the SETL Project", Jacob T. Schwartz, Courant Inst, 1974. "Software Prototyping Using the SETL Programming Language", P. Krutchen et al, IEEE Software 1(5):66-75 (Oct 1984) SETL2 - Improvements over SETL. Kirk Snyder. SETS - Set Equation Transformation System. Symbolic manipulation of Boolean equations. "Efficient Ordering of Set Expressions for Symbolic Expansion", R.G. Worrell et al, J ACM 20(3) (Jul 1973) SEXI - String EXpression Interpreter. Early name of SNOBOL. SFD-ALGOL - System Function Description-ALGOL. Extension of ALGOL for synchronious systems. Sammet 1969, p.625. SGML - Standard Generalized Markup Language. "SGML - The User's Guide to ISO 8879", J.M. Smith et al, Ellis Harwood, 1988. sh - or "Shellish". Bourne Shell command shell interpreter for UNIX. SHACO - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). SHADOW - Syntax directed compiler. Predecessor to SNOBOL? Barnett & Futrelle, 1962. Sammet 1969, p.448, 605. SHEEP - Computer algebra system specialized in General Relativity. Developed by I. Frick, Stockholm, late 70's to early 80's. Implemented first in DEC-10 assembler, then in several LISP's. SHELL - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). Short Code or SHORTCODE - Possibly first attempt at higher level language for math problems. UNIVAC I or II. Sammet 1969, p.129. SIFT - SHARE Internal FORTRAN Translator. Translation utility designed for converting FORTRAN II to FORTRAN IV. The word "sift" was often used as a verb to describe converting code from one language to another. Sammet 1969, p.153. Sig - Signal Processing, Analysis, and Display program. (Note that this is an environment, with an associated programming language, just like the Mathematica system is.) Jan Carter, Argonne Natl Lab, (312)972-7250. Signal - Synchronous language. Le Guernic et al, "SIGNAL - A Data Flow-Oriented Language for Signal Processing," IEEE Trans Acoustics Speech & Signal Proc, ASSP-34(2):362-374 Apr 1986. Sil/2 - A language for implementation of portable interpreters. "The Design of Transportable Interpreters", Frederick Druseikis, SNOBOL4 Project Document S4D49, U Arizona (Feb 1975). Silage - Synchronous DSP language. D.R. Genin & P.N. Hilfinger, "Silage Reference Manual, Draft 1.0", Silvar-Lisco, Leuven, 1989. Simone - Hoare et al. Simulation language based on Pascal. SIMPLE - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May --- End of Part 4 -- --Bill Kinnersley billk@hawk.cs.ukans.edu 226 Transfer complete.
billk@hawk.cs.ukans.edu (Bill Kinnersley) (04/28/91)
---- 1959). SIMPL-T - Base language for a family of languages and compilers. "SIMPL-T, A Structured Programming Language", V.R. Basili, Paladin House 1976. SIMSCRIPT - Large discrete simulations. "SIMSCRIPT: A Simulation Programming Language", P.J. Kiviat et al, C.A.C.I. 1973. Versions: SIMSCRIPT I.5, SIMSCRIPT II.5 SIMULA - SIMULAtion language. Kristen Nygaard & Ole-Johan Dahl, 1962. Extension to ALGOL for discrete simulation. Sammet 1969, p.659. SIMULA 67 - Introduced the class concept, which led the way to data abstraction and object-oriented programming. Also provided for coroutines. ftp: rascal.ics.utexas.edu, Mac version Simulating Digital Systems - FORTRAN-like for describing computer logic design. Sammet 1969, p.622. SIPLAN - SIte Planning Computer Language. Interactive language for space planning. "Formal Languages for Site Planning", C.I. Yessios in "Spatial Synthesis for Computer-Aided Design", C. Eastman ed, Applied Science Publ 1976. Siprol - Signal Processing Language. A DSP language. "SIPROL: A High Level Language for Digital Signal Processing", H. Gethoffer, Proc ICASSP-80, 1980, pp.1056-1059. SIR - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). Sisal - parallel, data flow, (deterministic CCS/CSP?). May be a single assignment language used in parallel processing. Sketchpad - Computer-aided design. Introduced "ring" list structure. "Sketchpad: A Man-Machine Graphical Communication System", I.E. Sutherland, MIT Lincoln Lab, TR 296 (Jan 1963). Sammet 1969, p.678. SKOL - FORTRAN pre-processor unique to the Cray Operating System (COS). SL5 - A string and list processing language with an expression-oriented syntax. "An Overview of SL5", Ralph E. Griswold, SIGPLAN Notices 12(4):40- 50 (Apr 1977). SLANG - R.A. Sibley. CACM 4(1):75-84 (Jan 1961). SLIP - Early-60's list processing language. Sammet 1969, p.387. SMALGOL - SMall ALGOL. Subset of ALGOL. "SMALGOL-61", G.A. Bachelor et al CACM 4(11):499-502 (Nov 1961). Sammet 1969. Small C - Subset of C often used in educational settings. "A Small C Compiler," James Hendrix. Smalltalk - Xerox PARC. Smalltalk is an object-oriented language. An object is the encapsulation of a data item and its associated operations. Objects are created as instances of classes, which in turn are defined as refinements of other existing classes. Objects communicate by sending messages to each other. Early versions: Smalltalk-72, Smalltalk-74, Smalltalk-76, and Smalltalk-78. Smalltalk-80 - "Smalltalk-80: The Language and Its Implementation", ["The Blue Book"] Adele Goldberg et al, A-W 1983. Smalltalk/V - PC, Mac version of Smalltalk. SML - Standard ML. An atempt to unify many dialects of ML. Environment based, strict. Typed exceptions, modules. Versions: Standard ML of New Jersey. "A Proposal for Standard ML", R. Milner, ACM Symp on LISP and Functional Prog 1984, pp.184-197. Versions: Standard ML of New Jersey (Princeton and AT&T), POPLOG ML (Sussex), Poly/ML, Edinburgh ML 4.0, Edinburgh Kit Compiler. ftp: cs.yale.edu list: sml-request@cs.cmu.edu SMoLCS - Specification metalanguage used for Ada. SMP - Stevre Wolfram's earlier symbol manipulation program. "SMP Handbook", C. Cole, S. Wolfram et al, Caltech 1981. SNOBOL - StriNg Oriented symBOlic Language. David Farber, Ralph Griswold, Bell Labs 1962. Text processing and formula manipulation. "SNOBOL, A String Manipulating Language", R. Griswold et al, J. ACM 11,21 (1964) Versions: SNOBOL1 (1962), SNOBOL3 (1965). SNOBOL4 - Griswold et al, 1968. Quite different from its predecessors, SNOBOL4 emphasizes pattern matching on character strings. A declarative language, with dynamic scope. Success and failure is used to control the flow of execution. Delayed or unevaluated expressions can be used to implement recursion. The table data type provides for associative retrieval. Strings generated at run-time may be treated as programs and executed. "The SNOBOL4 Programming Language", Ralph E. Griswold, P-H 1971. SO 2 - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). SOAP - Symbolic Optimal Assembly Program. IBM 650 Assembler. Listed in CACM 2(5):16 (May 1959). Versions: SOAP I, SOAP II, CASE SOAP III. SOCRATIC - Not a language? Bolt, Beranek & Newman. Early interactive learning system. Sammet 1969, p.702. SODAS - D.L. Parnas & J.A. Darringer. Proc FJCC, 31:449-474 (1967). SOHIO - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959). SOL - Simulation Oriented Language. Discrete simulation. Sammet 1969, p.656. SPAR - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). Speakeasy - Simple array-oriented language aimed at statistical analysis. "Speakeasy", S. Cohen, SIGPLAN Notices 9(4), (Apr 1974). "Speakeasy-3 Reference Manual", S. Cohen et al. 1976. SPECIAL - SRI specification language. SPEED - Early system on LGP-30. Listed in CACM 2(5):16 (May 1959). Speedcode - Same as Speedcoding? Speedcoding - Early attempt at higher level language for math on IBM 701, IBM 650. Sammet 1969, p.130. SPEEDCODING 3 - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). SPEEDEX - Early system on IBM 701. Listed in CACM 2(5):16 (May 1959). SPITBOL - A SNOBOL compiler for the IBM, not a separate language. SP/k - Subset PL/I, k=1..8. A series of PL/I subsets, simplified for student use. "SP/k: A System for Teaching Computer Programming", R.C. Holt, CACM 20(5):301-309 (May 1977) SPL - 1. Synchronous Programming Language. A DSP language. "Introduction to the SPL Compiler", Computalker Consultants, 1986. 2. Space Programming Language. For spaceflight and aerospace software. Similar to JOVIAL. Aka SPL/J6. A subset is known as CLASP. "Space Programming Language Development", SAMSO TP 70-325, System Development Corp (Sep 1970). SPL/I - Signal Processing Language I. General language designed for acoustic signal processing. Graphics and multiprocessing features. "SPL/I Language Reference Manual", M.S. Kosinski, Intermetrics Report 172-1 (July 1976) SPLINTER - PL/I interpreter with debugging features. Sammet 1969, p.600. SPRINT - List processing involving direct action on operand stack. Sammet 1969, p 462. SPSS - Statistical Programs for the Social Sciences. "SPSS X User's Guide", SPSS Inc. 1986. SPUR - Early system on IBM 650. Listed in CACM 2(5):16 (May 1959). SQL - Structured Query Language. IBM, 1970's. The de facto standard relational database language often embedded into other programming languages. "A Guide to the SQL Standard," C.J. Date. SR - Synchronizing Resources. A language for programming distributed systems. A resource is the encapsulation of a process and its variables, in two parts: the specification and the body. "An Overview of the SR Language and Implementation", G. Andrews, ACM TOPLAS 10:51-86 (Jan 1988) ftp: cs.arizona.edu, watserv1.waterloo.edu. SRC Modula-3 - From DEC/SRC, Palo Alto, CA. "Modula-3 Report (revised)" Luca Cardelli et al. ftp: gatekeeper.dec.com STAR 0 - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). StarLisp - LISP for the Connection Machine. Steelman - Final DoD requirements that led to Ada. "Requirements for High Order Programming Languages, 'Steelman'", June 1978. STENSOR - Computer algebra system specialized in General Relativity. Developed by L. H\"ornfeldt, from Stockholm, mid-80s. Implemented on top of SHEEP and MACSYMA. STIL - STatistical Interpretive Language. "STIL User's Manual", C.F. Donaghey et al, Indust Eng Dept, U Houston (Aug 1969) STOBES - Shared Time Repair of Big Electronic Systems. Computer testing. Sammet 1969. STOIC - STring Oriented Interactive Compiler. It's like FORTH for strings, including all sorts of stuff that is in hardware on VAXen. Written by someone at the Smithsonian Astrophysical Observatory. Stoneman - DoD requirements that led to APSE. DoD Feb 1980. STP4 - Statistical language. Strawman - One of the DoD requirements that led to Ada. STRESS - STRuctual Engineering Systems Solver. Structural analysis problems in Civil Engineering. Superceded by STRUDL. "STRESS: A User's Manual", S.J. Fenves et al, MIT Press 1964. Sammet 1969, p.612. STRUDL - STRUctured Design Language. Dynamic and finite-element analysis, steel and concrete structures. Subsystem of ICES. "ICES STRYDL-II Engineering User's Manual", R68-91, CE Dept MIT (Nov 1968) Sammet 1969, p.613 STSC APL - Implementation of APL? STUDENT - Early query system. Bobrow, 1964. Sammet 1969, p.664. Sugar - A language Paul Hudak is developing? 1991. Microsoft? SUMMER SESSION - Early system on Whirlwind. Listed in CACM 2(5):16 (May 1959). SURGE - Early rudimentary system. Sammet 1969, p.8. SweetLambda - Some kind of Microsoft in-joke? SYMBAL - Computer algebra language with ALGOL-like syntax by Max Engeli, implemented in the late 60's on the CDC6000. SYMBOLIC ASSEMBLY - Early system on IBM 705. Listed in CACM 2(5):16 (May 1959). Symbolic Mathematical Laboratory - On-line system under CTSS for formal algebra. Used display screen and light pen. Sammet 1969, p.514. SYMPL - 1. Control Data's answer to system programming languages in the '70s Major parts of CDC systems written in this. 2. A a non-reentrant block structured language with extensive bit manipulation facilities and linkable with FORTRAN. [Same as 1?] T - True. Rees, 1982. A dialect of LISP with static scoping, derived from Scheme, mostly a superset. "The T Manual", Johnathan A. Rees et al, Yale U, 1984. TABSOL - Early system oriented language. T.F. Kavanagh. Proc FJCC 18:117-136 (1960). TAC - Translator Assembler-Compiler. For Philco 2000. TACPOL - PL/I-like language used by US Army for command and control. TAL - Tandem Application Language. A cross between C and Pascal. Primary language for system level programming on the Tandem. (Tandem has no Assembler and until recently did not have C or Pascal.) May be derived from system language at Hewlett- Packard. TALL - TAC List Language. "TALL - A List Processor for the Philco 2000", J. Feldman, CACM 5(9):484-485 (Sep 1962). TARTAN - A simpler proposed language to meet the IRONMAN requirements. "TARTAN - Language Design for the Ironman Requirement", Mary Shaw et al, SIGPLAN Notices 13(9):36 (Sep 1978). TASM - Turbo Assembler. MS-DOS assembler from Borland. TAWK - Tiny AWK. Taxis - "A Language Facility for Designing Database-Intensive Applications", J. Mylopoulos et al, ACM Trans Database Sys 5(2):185-207 (June 1980). TBIL - Tiny Basic Interpreter Language. Inner interpreter of Tom Pittman's set of Tiny Basics in DDJ. Tcsim - Time (Complex) Simulator. Complex arithmetic version of Tsim. ZOLA Technologies, ZOLA@Applelink.Apple.com. TECO - Text Editor and COrrector. Macro language for text editing, also screen handling and keyboard management. Has a reputation for being cryptic and hard to learn. The first EMACS editor was written in TECO. ftp: usc.edu versions for VAX/VMS, Unix, MSDOS, Mac, Amiga. TELCOMP - Variant of JOSS. Sammet 1969, p.217. TELSIM - Digital simulation, Busch, ca. 1966. Sammet 1969, p.627. TeX - The text formatting language developed by Donald Knuth. ftp: june.cs.washington.edu TeX-78 - The original version of TeX. TeX-82 - The version of TeX decscribed in "The TeXbook", Donald Knuth, A-W 1984. TGS-II - Translator Generator System. Contained TRANDIR. Sammet 1969, p.640. Theseus - Based on Euclid, never implemented. "Theseus - A Programming Language for Relational Databases", J.E. Shopiro, ACM Trans Database Sys 4(4):493-517 (Mar 1979). Tinman - 1976. One of the DoD requirements that led to Ada. TINT - Interpreted version of JOVIAL. Sammet 1969, p.528. TIPL 1. Teach IPL. Interpretive IPL teaching system. Sammet 1969, p.393. 2. Dialect of IGL. TMG - Syntax-directed compiling language. "TMG - A Syntax-Directed Compiler", R.M. McClure, Proc ACM 20th Natl Conf (1965). Sammet 1969, p.636. TOK - Referred to in Ursula K. LeGuin's "Always Coming Home." Seems to be similar to the original BASIC. TPL - Table Producing Language. "The Bureau of Labor Statistics Table Producing Language (TPL)", R.C. Mendelssohn, Proc ACM Annual Conf (1974). TRAC - Text Reckoning And Compiling. Interactive string handling language. It was developed by XXX and Peter Deutsch (of ST-80 fame). Thousands of users, historically, though probably few today. "TRAC: A Procedure-Describing Language for the Reactive Typewriter", Calvin N. Mooers, CACM 9(3):215-219 (Mar 1966). TRANDIR - TRANslation DIRector. A syntax-directed compiling language. Sammet 1969, p.640. TRANGEN - System containing TRANDIR. Sammet 1969, p.640. TRANS-USE - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). TRANSCODE - Early system on Ferut computer. Listed in CACM 2(5):16 (May 1959). TRANSIT - Subsystem of ICES. Sammet 1969, p.616. TREET - List processing, akin to LISP. "The TREET Time-Sharing System", H.A. Bayard et al, Proc 2nd Symp Symbolic and Algebraic Manip, ACM (Mar 1971). Sammet 1969, p.457. Trellis - Object-oriented, formerly named Owl. DEC. Static type-checking and encapsulation. "Persistent and Shared Objects in trellis/owl", P. O'Brien et al, Proc of the 1986 IEEE Workshop on Object-Oriented Database Systems", IEEE, NY 1986. TRIGMAN - Computer algebra system specialized in Celestial Mechanics. Troff - Text formatting language/interpreter. Variant of UNIX roff. TROLL - Array language for continuous simulation, econometric modeling, statistical analysis. "TROLL Refernce Manual", D0062, Info Proc Services, MIT (1973-76) True BASIC - John Kemeny & Thomas E. Kurtz. Compiled BASIC requiring no line numbers. Tsim - Time Simulator. Stack-based simulation language. ZOLA Technologies, ZOLA@Applelink.Apple.com. Turbo Pascal - Brand of Pascal by Borland International. Perhaps the first integrated development environment for MS-DOS. Versions 3, 4, 5: Close to Modula-2. 6: Object-oriented facilities. Turbo Prolog - Differs markedly [how?] from standard PROLOG. Turing - R.C. Holt & J.R. Cordy, U Toronto, 1983. Descendant of Concurrent Euclid. "Turing Language Report", J.R. Cordy et al, Report CSRI-153, CSRI, U Toronto, Dec 1983. Turing Plus - Concurrent descendant of Turing. "Turing Plus: A Comparison with C and Pascal", S. Perelgut et al, SIGPLAN Notices 23(1):137-143 (Jan 1988). "The Turing Plus Report", R.C. Holt et al, prelim version, CSRI, U Toronto, Feb 1987. Turtle - Nickname for Logo. TUTOR - Scripting language on PLATO systems from CDC. "The TUTOR Language", Bruce Sherwood, Control Data, 1977. TWIG - Tree-Walking Instruction Generator. [you gotta' love that acronym!] A code-generator language. "Twig Language Manual", S.W.K. Tjiang, CS TR 120, Bell Labs, 1986. UCSD Pascal - Variant of Pascal for the UCSD p-system environment. Extended string and array operations, random access files, separate compilation, etc. UHELP - Linear programming. "UHELP User's Manual", D. Singh, Indus Eng Dept, U Houston (Oct 1969) UGLIAC - Early system on Datatron 200 series. Listed in CACM 2(5):16 (May 1959). ULP - Small structured language for use in microprocessors. "User's Guide to the ULP Language for the PDP-11", CS TR 536, U Md (May 1977) UNCOL - UNiversal Computer Oriented Language. A universal intermediate language, discussed but never implemented. "A First Version of UNCOL", T.B. Steel, Proc WJCC 19:371-378 (1961). Sammet 1969, p.708. UNICODE - Pre-FORTRAN on the 1103, similar to MATH-MATIC. Sammet 1969, p.137. UNISAP - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). USE - Early system on IBM 1103 or 1103A. Listed in CACM 2(5):16 (May 1959). utility-coder - Data manipulation and report generation. "User's Manual for utility-coder", Cambridge Computer Assoc (Jul 1977) VAL - Single assignment language used in parallel processing. "The VAL Language: Desciption and Analysis", J.R. McGraw, TOPLAS 4(1):44-82 (Jan 1982). VDM - "The Vienna Development Method": The Meta-Language", D. Bjorner et al eds, LNCS v.61, Springer 1978. Vector C - Variant of C similar to ACTUS. CMU? VECTRAN - FORTRAN with array extensions. "The VECTRAN Language: An Experimental Language for Vector/Matrix Array Processing, Report G320- 3334, IBM (Aug 1975) VHDL - VHSIC Hardware Description Language. "VHSIC Hardware Description Language", M.R. Shahdad et al, IEEE Computer 18(2):94-103 (Feb 1985). Vienna Definition Language - A language for formal definitions via operational semantics. Developed by the IBM Vienna Laboratories, and used to specify the semantics of PL/I. "The Vienna Definition Language", P. Wegner, ACM Comp Surveys 4(1):5-63 (Mar 1972). VITAL - Semantics language using FSL. Mondshein, 1967. Sammet 1969, p.641. VULCAN - 1. CP/M port of JPLDIS by Wayne Ratliff which evolved into dBASE II. ca. 1980. 2. The dBASE-like interpreter and compiler sold by RSPI with their Emerald Bay product. 3. String handling language ca. 1970. "VULCAN - A String Handling Language with Dynamic Storage Control", E.P. Storm et al, Proc AFIPS FJCC v.37 (1970) WAFL - WArwick Functional Language. Lisp-type language developed at Warwick U, England. WATBOL - Waterloo SNOBOL? WATFIV - WATerloo Fortran IV. Student-friendly variant of FORTRAN IV from U Waterloo, Canada. WATFOR - WATerloo FORtran. Student-friendly variant of FORTRAN from U Waterloo, Canada. Sammet 1969, p.303. WEB - Knuth's self-documenting brand of programming, with comments in TeX. "Literate Programming", D.E. Knuth, Computer J 27(2):97-111 (May 1984). WFL - Work Flow Language. Burroughs' answer to IBM JCL. Yet another ALGOL variant. Woodenman - One of the DoD requirements that led to Ada. WSL - Waterloo Systems Language. A C-like systems programming language. "Waterloo Systems Language: Tutorial and Language Reference", F.D. Boswell, WATFAC Publications Ltd, Waterloo, Ontario, Canada. ISBN 0-919884-00-8. X-1 - Early system on UNIVAC I or II. Listed in CACM 2(5):16 (May 1959). Xbase - Term used to refer generically to the "dBASE" family of languages. Coined in response to threatened litigation over use of the copyrighted trademark "dBASE." XLISP - Experimental LISP. David Best. Variant of LISP with object- oriented extensions, source available in C. Versions exist for most PC's. ftp: gatekeeper.dec.com (comp.sources.misc/Vol10) XPL - Stanford, 1967-69. Dialect of PL/I used for compiler-writing. "A Compiler Generator," W.M. McKeeman et al, P-H 1970. Also 1968 AFIPS Conf. XPOP - Early language. Halpern, 1964. Sammet 1969, p.8. XScheme - Extended Scheme? Y - Arizona (?) [Similar to Yacc?? Details sought.] YACC - Yet Another Compiler Compiler. Language used by the YACC LALR parser generator. "YACC - Yet Another Compiler Compiler", S.C. Johnson, CS TR 32, Bell Labs (Jul 1975) YELLOW - A proposed language to meet the Ironman requirements which led to Ada. "On the YELLOW Language Submitted to the DoD", E.W. Dijkstra, SIGPLAN Notices 13(10):22-26 (Oct 1978). Z - 1. ca 1980. A specification language based on axiomatic set theory. "Understanding Z", J.M. Spivey, Cambridge U Press 1988. 2. A stack-based, complex arithmetic simulation language. ZOLA Technologies, ZOLA@Applelink.Apple.com. ZAP - Language for expressing transformational developments. "A System for Assisting Program Transformation", M.S. Feather, ACM Trans on Prog Langs and Syst 4(1):1-20 (Jan 1982). Zetalisp - ZIL - Zork Interpretive Language. Designed for creating customized adventure-like games. Used by Infocom to write their games. XPC - EXplicitly-Parallel C dialect which is efficiently compilable to both SIMD and MIMD architectures (is mode independent). First described in Michael J. Phillip & Henry G. Dietz, "Toward Semantic Self-Consistency in Explicitly Parallel Languages," in proceedings of the Fourth International Conference on Supercomputing, Santa Clara, CA, May 1989, v.1, pp.398-407. Research implementations only. Greatly improved on Parallel C, which was never implemented (but had significant impact on the design of C*). Zuse - PhD language by Chris Collberg <collberg@dna.lth.se>. 1991. QUESTIONABLE ENTRIES: ALGOL "machine language" ALGOL "publication language" [ unnamed ] - Dijkstra never names the language he describes and uses in "A Discipline of Programming". APPENDIX A Some selected works on computer language history and design: ============================================================ Bal, H.E. Comprehensive list: "Programming Languages for Distributed Systems", Comp Surveys 21(3):261-322 (Sep 1989). Bobrow, D.G. & Raphael, "New Programming Languages for Arificial Intelligence Research", Comp Surveys 6:155 (Nov 1974). MacLennan, B.J. "Principles of Programming Languages" 2nd Ed, Holt, Rinehart & Winston 1987. Often cited on The Net. Sammet, Jean E. "Programming Languages: History and Fundamentals", P-H 1969. LC: 68-28110. The absolutely definitive work on early computer language development, by an IBM language technology manager. Almost 800 pages of meticulous detail. Sammet, Jean E., "Roster of Programming Languages for 1976-77", SIGPLAN Notices 13(11):56 (Nov 1978). Shapiro, E. "The Family of Concurrent Logic Programming Languages", Comp Surveys, 21(3):413-510 (Sep 1989). Weinberg, Gerald "The Psychology of Computer Programming", 1971. Wexelblat, R.L. ed, "Proceedings: ACM SIGPLAN History of Programming Languages Conference" (Los Angeles, July 1978) Perhaps the most entertaining account of the history of roughly 15 major programming languages. 310 pp. Jean Sammet apparently co-ordinated the conference. Academic Press, 1981. ACM Item No 548780. ACM Order Dept is (800)342-6626. Wilson, L.B. & Clark, R.G. "Comparative Programming Languages", A-W 1988. ISBN: 0-201-18483-4. Languages compared on a feature-by-feature (rather than language-by-language) basis. APPENDIX B Selected Issues in Computer Language Design: =========================================== A "core" versus "complete" language Should a language provide a small, minimal core that is extensible (FORTH, ALGOL, C) or should it try to have syntax for almost everything already included? (PL/I, Ada, dBASE IV) How much structure should automatically be imposed? Some languages, such as C, give a great latitude to the layout of statements on the page. Others, such as COBOL, are more verbose and structured in an attempt to force "self-documenting code." Features are added but never removed APPENDIX C A chronology of influential computer languages: ============================================== (Note: It has been suggested that K. Zuse in Nazi Germany may have had first real computer programming language, "Plankalkul" ca. 1945. This is alluded to in the 1978 ACM History of Programming Languages FORTRAN session.) FORTRAN: 1957 ALGOL: 1958 LISP: 1960 COBOL: 1960 APL 1962 PL/I: 1964 BASIC: 1964 PROLOG: 1970 C: 1972 Pascal: 1975 Modula-2: 1979 Smalltalk: 1980 dBASE II: ca. 1980 Ada: 1983 C++: 1986 Eiffel: ? Oberon: 1988 APPENDIX D Who will gather some interesting rough statistics relating to computer language usage? Things such as: [Nine (?) billion lines of COBOL code written?] [75% of world's software spending by DOD?] [80% of all paid programming maintenance programming?] [ n million people have programmed in BASIC? ] Net contributors to the language list so far: ============================================= Mike Albaugh <albaugh@dms.UUCP> LLoyd Allison <lloyd@bruce.cs.monash.OZ.AU> Jose Castejon-Amenedo <vanadis@cs.dal.ca> Birger Andersen <birger@diku.dk> Bob Bishop <rb@sixnine.gid.co.uk> Heiko Blume <src@scuzzy.in-berlin.de> Andreas Borchert <borchert@mathematik.uni-ulm.de> Marc-Michael Brandis <brandis@inf.ethz.ch> Kurt Baudendistel <baud@laplace.eedsp.gatech.edu> Benjamin Chase <bbc@rice.edu> Chris Collberg <collberg@dna.lth.se> A.J. Cunningham <tjc@castle.edinburgh.ac.uk> Hank Dietz <hankd@ecn.purdue.edu> Patrick J Draper<draper@cps.msu.edu> Clive Feather <clive@x.co.uk> Dave Gillett <dgil@pa.reuter.com> Mike Grier <grier@leno.enet.dec.com> Urs Hoelzle <hoelzle@cs.stanford.edu> Kjetil Torgrim Homme <kjetilho@ifi.uio.no> Ralph W. Hyre <rhyre@cinoss1.att.com> Steve Jenkins <jenkins@jpl-devvax.jpl.nasa.gov> Jeff Jenness <jeffj@cs.umr.edu> Niels Christian Juul <ncjuul@diku.dk> David Keppel <pardo@cs.washington.edu> A.V. Le Blanc <ZLSIIAL@UK.AC.MCC.CMS> Greg Lindahl <gl8f@astsun9.astro.Virginia.EDU> Andy Lowry <lowry@watson.ibm.com> Andrew H. Marrinson <andy@icom.icom.com> Alex Martelli <staff@cadlab.sublink.org> S A McConnell <sam%gva.decnet@consrt.rok.com> Brian R. Murphy <brm@Neon.Stanford.EDU> Tom Neff <tneff@bfmny0.BFM.COM> Michael Newbery <newbery@rata.vuw.ac.nz> Oscar Nierstrasz <oscar@cuisun.UNIGE.ch> Nick North <ndn@seg.npl.co.uk> Conor O'Neill <conor@inmos.com> Hokkun Pang <hp0p+@andrew.cmu.edu> Stephen Perelgut <perelgut@turing.toronto.edu> Jeff Price <jprice@cadev1.intel.com> Arch D. Robison <robison@shell.com> Walt Spector <wws@renaissance.cray.com> Paul Stachour <stachour@SCTC.COM> Joergen Steensgaard-Madsen <jsm@iddth2.id.dk> Kevin Stock <kstock@gouldfr.encore.fr> Bob Stockwell <pacbell.com!ptsfa!res> Robert S. Sutor <rssutor@math.princeton.edu> Guido van Rossum<guido@cwi.nl> Jan Christiaan van Winkel <jc@atcmp.nl> Ken Yap <ken@csis.dit.csiro.au> uunet!microsoft!glenns uunet!microsoft!jklin uunet!microsoft!johnyg uunet!microsoft!jonkauf uunet!microsoft!matth uunet!microsoft!mikero uunet!microsoft!mmsys uunet!microsoft!richgi --- End of Part 5 -- --Bill Kinnersley billk@hawk.cs.ukans.edu 226 Transfer complete.
billk@hawk.cs.ukans.edu (Bill Kinnersley) (04/29/91)
Somewhere nearby, you will find the latest version of The Language List, in five parts. The list now contains information on approx 950 computer languages, past and present. Most of the entries now have a definite reference to published material, where more complete information may be found. Thanks to everyone who has contributed! Please if you know about languages that are not mentioned here yet, or see anything that should be corrected, send it along to me for inclusion. Better information is especially needed on the following languages, that so far I've only seen mentioned indirectly: AMP - Symbolic math ASPIK - Specification language. BETA - The successor of SIMULA. C* - CCalc - Symbolic math CCS - A specification language. [Denmark?] CIP-L - CoCoA - Symbolic math CPL - C. Strachey et al [Reference?] Crystal - High level functional parallel language. CS-4 - Mentioned in "An Overview of Ada", J.G.P. Barnes. CSP - 2. Specification language Delta - Expression based, J.C. Cleaveland 1978. Estelle - A specification language. [Denmark?] GAP - Symbolic math Gedanken - Reynolds, 1970. ICEBOL - Variant of SNOBOL. [I thought this was the name of a conference?] INTELLECT - A query language - Larry Harris, 1977. ISETL - Symbolic math Joyce - Language for distributed computers, based on CSP and Pascal. Designed by Per Brinch Hansen, Denmark. Lakota - LOOK - Specification language. LTR - Mentioned in "An Overview of Ada", J.G.P. Barnes. MAD - 2. Early extensible language. MDL - "Muddle", developed at MIT, was basis for ZIL. MORAL - Mentioned in "An Overview of Ada", J.G.P. Barnes. MUSL - Manchester University Systems Language. Neon - An object-oriented extension of FORTH, for the Mac. O2 - PDL2 - Mentioned in "An Overview of Ada" J.G.P. Barnes. Pearl - 1. Constructive maths, Constable, Cornell U, 80's. PIE - From CMU, similar to ACTUS. Plasma - Carl Hewitt, ca 1980. The first actor language. Platon - Developed at DAIMI, U Aarhus, Denmark. POOL - A family of languages from Philips Research Labs, Netherlands. PROMAL - QUEL - A query language. Quest - SDL - 2. A specification language. SETL2 - Improvements over SETL. Kirk Snyder. SPECIAL - SRI specification language. STP4 - Statistical language. WAFL - WArwick Functional Language. Lisp-type language developed at Warwick U, England. Y - Arizona. Similar to Yacc?? -- --Bill Kinnersley billk@hawk.cs.ukans.edu 226 Transfer complete.