Programming Languages - I

Sample Program

IAL - International Algebraic Language. Original name of ALGOL 58. "Preliminary report - International Algebraic Language", CACM 1(12):8 (1958).

IAM - Interactive Algebraic Manipulation. Interactive symbolic math for PDP-10. "IAM, A System for Interactive Algebraic Manipulation", C. Christensen et al, Proc Second Symp Symb Alg Manip, ACM Mar 1971.

IBEX - Command language for Honeywell's CP-6 OS.

ICES - Integrated Civil Engineering System. Subsystems include COGO, STRUDL, BRIDGE, LEASE, PROJECT, ROADS and TRANSET. Internal languages include ICETRAN and CDL. "An Integrated Computer System for Engineering Problem Solving", D. Roos, Proc SJCC 27(2), AFIPS (Spring 1965). Sammet 1969, pp.615-620.

ICETRAN - An extension of FORTRAN IV. Component of ICES. Sammet 1969, p.617.

ICI - Tim Long. Interactive C Interpreter? Interpreted language, syntax similar to C. Adds high-level garbage-collected associative data structures. Exception handling, sets, regular expressions, Dynamic arrays, database features, screen handling. Extensible. list:

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. Resumption takes place implicitly in two contexts: iteration which is syntactically loop-like ('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, 2nd ed P-H 1990. list:

Iconicode - 1990-1992. Visual dataflow language, token-based with hierarchical, recursive and iterative constructs. Version: IDF with extensions for image processing. "IDF: A Graphical Data Flow Programming Language for Image Processing and Computer Vision", Neil Hunt, Proc IEEE Conf on Systems Man & Cybernetics, IEEE, Nov 1990. Available from Iconicon <>.

IC-Prolog - Clark & McCabe, Imperial College 1979. Logic language with coroutining. "IC-Prolog Language Features", K.L. Clark <> et al in Logic Programming, K.L. Clark et al eds, pp.253-266, Academic Press 1982.

IC Prolog ][ - Imperial College. A Prolog with multithreading, TCP primitives for interprocess communication, mailboxes, and an interface to Parlog. "IC Prolog ][: A Language for Implementing Multi-Agent Systems", Y. Cosmadopoulos et al, in Tutorial and Workshop on Cooperating Knowledge Based Systems, Keele U 1992. info: Damien Chu <> 0.94.tar.Z

Id - Irvine Dataflow. Arvind & Gostelow. Single assignment language, used on MIT's Tagged-Token Dataflow Architecture (and soon on Motorola's Monsoon). Incrementally compiled, non-strict. "An Asynchronous Programming Language for a Large Multiprocessor Machine", Arvind et al, TR114a, Dept ISC, UC Irvine, Dec 1978. "The U-Interpreter", Arvind et al, Computer 15(2):42-50 (1982). (See Id Nouveau).

IDAMS - Pictorial retrieval language, implemented in APL. "Concept of the Diagnostic Image Workstation", D. Meyer-Ebrecht, Proc 2nd Conf on Picture Archiving (PACS II), SPIE 418, pp.180-183 (1983).

IDEA - Interactive Data Entry/Access. Data General. A language in which you designed the screen first, and then wrote the program around the predefined fields. Precursor to the DG COBOL Screen Section.

IDEAL - Van Wyk, Stanford 1980. Numerical constraint language for typesetting graphics into documents. Inspired partly by Metafont. "A High-Level Language for Specifying Pictures", C.J. Van Wyk, ACM Trans Graphics 1(2):163-182 (Apr 1982). Distributed as part of Troff.


1. Interactive Data analysis Language. Xerox. Built on Interlisp-D.

2. Interface Description Language. Nestor, Lamb & Wulf, CMU 1981. Description of data structures to be passed between the components of an application, to provide a language-independent intermediate representation. "The Interface Description Language", R. Snodgrass, Computer Science Press 1989. Also SIGPLAN Notices 22(11) (Nov 1987) special issue. Version by OMG (Object Management Group) for CORBA (Common Object Request Broker Architecture). list:

3. Interface Definition Language. Project DOE, SunSoft, Inc. Part of an effort to integrate distributed object technology into the Solaris OS. IDL provides the standard interface between objects, and is the base mechanism for object interaction. info: <> or Mache Creeger, SunSoft Inc (415)336-5884.

4. Interactive Data Language. Research Systems, 1977. Commercial array- oriented language with numerical analysis and display features, for Unix workstations, DOS Windows and VAX/VMS. Version 3.0.0 info:

IDMS - Pictorial query language, an extension of Sequel2. "A Management System for an Integrated Database of Pictures and Alphanumeric Data", G.Y. Tang, Computer Graphics Image Processing 16:270-286 (1981).

Id Nouveau - Arvind <> & Nikhil <>, LCS MIT, ca. 1986. Dataflow language, began as a functional language, added streams, resource managers and I-structures (mutable arrays). Loops are syntactic sugar for tail recursion. "Id Nouveau Reference Manual", R.S. Nikhil, CS TR, MIT, March 1988. "Id (Version 90.1) Reference Manual", R.S. Nikhil, CSG Memo 284-2, LCS MIT, July 15, 1991. (See Id).

IDOL - Icon-Derived Object Language. Object-oriented preprocessor for Icon. "Programming in Idol: An Object Primer", C.L. Jeffery, U Arizona CS TR #90-10.

IDS/I - Integrated Data Store. Extension to COBOL involving "chains" (circular lists), for GE computers. "A General Purpose Programming System for Random Access Memories", C.W. Bachman et al, Proc FJCC 26(1), AFIPS (Fall 1964). Sammet 1969, p.376.

IF1 - Graph language used as an intermediate language for dataflow hardware. Used by the OSC SISAL compiler. "The Manchester Prototype Dataflow Computer", J.R. Gurd et al, CACM 28(1):34-52 (Jan 1985).

IF2 - Graph language used by the OSC SISAL compiler, a superset of IF1. "IF2: An Applicative Language Intermediate Form with Explicit Memory Management", M. L. Welcome et al, UC-LLNL, Nov 1986.

IFIP - Subset of ALGOL. Sammet 1969, p.180.

IFP - Illinois FP. Arch Robison. Variant of FP with Algol-like syntax. "The Illinois Functional Programming Interpreter", A.D. Robison, Proc 1987 SIGPLAN Conf on Interpreters and Interpretive Techniques (June 1987). "Illinois Functional Programming: A Tutorial", A.D. Robison, BYTE Feb 1987. - Versions for Unix and MS-DOS

IFX - "Type Reconstruction with First-Class Polymorphic Values", J. O'Toole et al, SIGPLAN Notices 24(7):207-217 (Jul 1989).

IGL - Interactive Graphic Language. Used primarily by Physics Dept at Brooklyn Poly, uses numerical methods on vectors to approximate continuous function problems that don't have closed form solutions. [Is this being confused with Tektronix's graphics library by the same name?]

IIS - Idealized Instruction Set. Assembly language for the Flagship parallel machine. "An Idealized Instruction Set for a Packet Rewrite Machine", J. Sargeant, Manchester U, 1988.

IITRAN - Simple PL/I-like language for students, on IBM 360. "The IITRAN Programming Language", R. Dewar et al, CACM 12(10):569-575 (Oct 1969).

ILIAD - Real time language. "On the Design of a Language for Programming Real-Time Concurrent Processes", H.A. Schutz, IEEE Trans Soft Eng SE- 5(3):248-255 (May 1979).

ILLIAC - Assembly language for the ILLIAC computer. Listed in CACM 2(5):16, (May 1959) p.16.

ILOC - Rice U. Register-oriented intermediate language targeted to PC/RT. Source languages include FORTRAN and Russell.


1. IMProved Mercury autocode. Used to code the Edinburgh Multi Access System (EMAS), one of the first OS's written in a high-level language, apparently predating Unix. Papers in J British Computer Soc.[?] Luis Damas' Prolog interpreter in IMP for EMAS, led to C-Prolog. (See Autocode).

2. Extensible dialect of ALGOL-60, on CDC 1604. Ned Irons, IDA, Princeton. "Experience with an Extensible Language", Edgar T. Irons, CACM 13(1):31-39 (Jan 1970).

3. Interpretive Menu Processor. Used to implement much of the user interface of the Alis office automation package from Applix, Inc.

4. IMPlementation language. W. Davidsen <>, 1970. An extension of B with floating point. For the GE 600, also cross- compiled to VAX and Intel 8080.

Ina Jo - [FDM?] "The Ina Jo Specification Language Reference Manual", J. Scheid et al, TR TM-(L)-6021/001/00, SDC Mar 1985.

Info BASIC - Variant of Pick BASIC used with PRIME's PRIMOS.

INFORM - Early database language, comparable to dBASE II. Intended for time-sharing use over telephone lines to teletypes. "INFORM Primer", March, 1974, CALL-A-COMPUTER, 30 Washington St, Wellesley Hills, MA 02181.

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

InnovAda - Object-oriented extension to Ada, said to be LISP-like. Implemented as an Ada preprocessor.

Input - See ALPHA.

INSIGHT - Simulation modeling language especially for health care problems. "Simulation Modeling with INSIGHT", S.D. ROberts Proc 1983 Winter Sim Conf, S.D. Roberts et al eds, pp.7-16.

INTCODE - A low-level interpreted language used in bootstrapping the BCPL compiler. The INTCODE machine has six control registers and eight functions. "INTCODE - An Interpretive Machine Code for BCPL", M. Richards, Computer Lab, U Cambridge 1972. "BCPL - The Language and its Compiler", Martin Richards & Colin Whitby-Stevens, Cambridge U Press 1979. (See OCODE).

INTELLECT - Larry Harris, 1977. A query language, close to natural English.

INTERACTIVE - Network simulation language. "Design and Implementation of a Pascal Based Interactive Network Simulation Language", R. Lakshmanan, PhD Thesis, Oakland U, Rochester MI 1983.

INTERCAL - (Allegedly stands for "Compiler Language With No Pronounceable Acronym"). Woods & Lyon, Princeton U, May 26, 1972. The most elaborate and extended joke in the history of language design; claims to have nothing in common with any other major programming language. "The INTERCAL Programming Language Reference Manual", Donald R. Woods & James M. Lyon. Implementations: INTERCAL-72 in SPITBOL for IBM/360; Atari version of unknown date; and C-INTERCAL, a retargetable compiler for Unix by Eric S. Raymond <> in 1991, which uses C as an intermediate language. The latest C-INTERCAL version adds features like the COME FROM statement and multilingual support including Basque, Nahuatl, Sanskrit and Tagalog.

INTERCOM - Assembly language for the G-15. Listed in CACM 2(5):16 (May 1959). Versions: INTERCOM 101, INTERCOM 1000.

Interlisp - Descendant of BBN-Lisp. Once Interlisp was one of two main branches of LISP (the other being MACLISP). In 1981 Common LISP was begun in an effort to combine the best features of both. Interlisp includes a LISP programming environment. Dynamically scoped. NLAMBDA functions do not evaluate their arguments. Any function could be called with optional arguments. "Interlisp Programming Manual", W. Teitelman, TR, Xerox Rec Ctr 1975. Interlisp-10 used shallow binding, while Xerox's Interlisp-D used deep binding.

Intermediate Programming Language - Arthur W. Burks. A very early attempt to express machine language at a higher level of abstraction. Like Plankalkul, it used a right-handed style of assignment, in which the new value appears on the right.

Interpress - Xerox. Interpretive FORTH-like graphics language, possibly the first page description language, predating PostScript. Both are descendants of JaM. Used on Xerox printers. "Interpress, The Source Book", Steven Harrington et al, P-H 1988.

Iota - Specification language. "The Iota Programming System", R. Nakajima er al, Springer 1983.

IPL - Information Processing Language. Allen Newell, J.C. Shaw, H. Simon, Carnegie ca. 1956. Said to be the first list-processing language, also the first language to support recursion. Very low level. Sammet 1969, pp.388- 400. "Information Processing Language-V Manual", A. Newell ed, P-H 1965. Versions: IPL-I (never implemented), IPL-II (1957 for JOHNNIAC), IPL-III (existed briefly), IPL-IV, IPL-V (1958, for IBM 650, 704, 7090, many others. Widely used), IPL-VI.

IPS - Threaded language. "IPS, An Unorthodox High Level Language", K. Meinzer, BYTE pp.146-159 (Jan 1979).

IQ - Pictorial query language, implemented in Ratfor. "Structured Implementation of an Image Query Language", Y.E. Lien et al, in Database Techniques for Pictorial Applications, A. Blaser ed, pp.416-430.

IRDATA - Industrial Robot DATA. A standardized robot control code. "IRDATA, Industrial Robot Data", DIN 66313, Beuth-Verlag 1991.

IRL - Industrial Robot Language. A high-level language for programming industrial robots. "IRL, Industrial Robot Language", DIN 66312, Beuth- Verlag 1992.

Ironman - HOLWG, DoD, Jan 1977, revised Jul 1977. Fourth of the series 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). "Revised Ironman Requirements for High Order Computer Programming Languages", US Dept of Defense, Jul 1977. (See Strawman, Woodenman, Tinman, Steelman).

Isabelle-92 - A generic theorem prover, supporting a wide variety of logics. A system of type classes allows polymorphic object-logics with overloading and automatic type inference.

ISBL - Mathematical query language.

ISETL - Interactive SETL. Gary Levin <>, Clarkson U. "An Introduction to ISETL Version 1.9", G.M. Levin, Dept MCS, Clarkson U. Current version: 3.0., for MS-DOS, Mac, Unix, VAX/VMS, and source.


1. Dialect of JOSS. Sammet 1969, p.217.

2. Concurrent language?

ISL - Interface Specification Language. Xerox PARC. Interface description language used by the ILU (Inter-Language Unification) system. Includes descriptions of multiple inheritance, exceptions and garbage collection. info: Bill Janssen <>

ISLisp - International Standard LISP, ISO WG 16, draft Dec 1992. An object-oriented Lisp intended as an international replacement for Common Lisp, EuLisp, Le-Lisp and scheme. Goals are object orientation, extensibility, efficiency, and suitability for non-academic use.*

ISP - Instruction Set Processor. A family of languages for describing the instruction sets of computers. "Computer Structures: Readings and Examples", D.P. Siewiorek et al, McGraw-Hill 1982.

ISPL - Instruction Set Processor Language. ca 1971. Original ISP language, written in BLISS. "Computer Structures: Readings and Examples", D.P. Siewiorek et al, McGraw-Hill 1982.

ISPS - Barbacci, Carnegie-Mellon 1979. Instruction Set Processor Specifications. Operational hardware specification language. Successor to ISPL. "Instruction Set Processor Specifications", M.R. Barbacci et al, IEEE Trans Computers, C-30(1):24-80 (Jan 1981). [Bell, Newell, Siewiorek, Barbacci 1982?]

ISWIM - If You See What I Mean. Landin 1966. ISWIM is purely functional, a sugaring of lambda calculus, and the ancestor of most modern applicative languages. 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, and introduced the offside rule for indentation. "The Next 700 Programming Languages", P.J. Landin, CACM 9(3):157-166 (Mar 1966).

IT - Internal Translator. A.J. Perlis et al, Carnegie Tech ca 1957. Early compiler for math originally for Burroughs 205, then IBM 650. Forerunner of RUNCIBLE, GATE, CORRELATE and GAT. IT source code was converted to PIT, thence to SPIT. Sammet 1969, pp.139-141. Versions: IT-2 produced machine language directly, IT-3 developed at Carnegie added double-precision floating point. CACM 1(5):22 (1958).

Ivan - A Diana-like language making up part of VHDL. "VHDL - The Designer Environment", A. Gilman, IEEE Design & Test 3, (Apr 1986).

Iverson's Language - APL, which went unnamed for many years. Sammet 1969, p.770.

IVTRAN - 1966. Parallel FORTRAN for the Illiac IV.