Programming Languages - E

Sample Program

1. An extension of C++ with database types and persistent objects. Used in the Exodus database system. "Persistence in the E Language: Issues and Implementation", J.E. Richardson et al, Soft Prac & Exp 19(12):1115-1150 (Dec 1989).*

2. Wouter van Oortmerssen <>. A procedural language with semantics similar to C. Lists, low-level polymorphism, exception handling, quoted expressions, pattern matching, object inheritance. Version for the Amiga. list:

Eagle - dBASE-like dialect bundled with Emerald Bay, sold by Migent from 1986-1988, later renamed Vulcan when Wayne Ratliff reacquired the product.

Ease - General purpose parallel programming language, combining the process constructs of CSP and the distributed data structures of Linda. "Programming with Ease: Semiotic Definition of the Language", S.E. Zenith, <> Yale U TR-809, Jul 1990.

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 - Gordon Eubanks, now at Symantec. Form of BASIC that led to CBASIC.

EBNF - Extended BNF. Backus-Naur Form with one or more added constructs, usually regular expressions. CACM, 1977?

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.

Echidna - Constraint logic programming embedded in an object-oriented language. The syntax is an extension of Edinburgh Prolog. "Hierarchical Arc Consistency Applied to Numeric Processing in Constraint Logic Programming", G. Sidebottom et al, TR-91-06, CSS-IS, Simon Fraser U, and Comp Intell 8(4) (1992). info:

ECL - Extensible CL. Wegbreit, ca 1970. "The ECL Programming System", B. Wegbreit, Proc FJCC 39:253-261, AFIPS (Fall 1971). "ECL Programmer's Manual", B. Wegbreit, TR 23-74, Harvard U (Dec 1974).

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

ECP - Extended Concurrent Prolog. Concurrent Prolog with OR parallelism, set abstraction and meta-inference features. "AND-OR Queuing in Extended Concurrent Prolog", J. Tanaka et al, Proc Logic Prog Conf '85, LNCS 193, Springer 1985. [???]

ECRC-Prolog - Evidently Prolog with coroutine extensions. "ECRC-Prolog User's Manual Version 1.0", K. Estenfeld, TR-LP-08 ECRC, Feb 1986. (See SEPIA).

ECSL - Extended CSL. Discrete simulation language, successor to CSL. "Extended Control and Simulation Language", A.T. Clementson, Comp J 9(3):215-220 (1966).

ECSP - An extension to CSP, supporting dynamic communication channels and nested processes. "Static Type Checking of Interprocess Communication in ECSP", F. Baiardi et al, SIGPLAN Notices 19(6):290-299 (June 1984).

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 simulations. The compiler outputs HYTRAN, which must be run on an analog processor.

Eden - Concurrent object-oriented language with both synchronous and asynchronous message passing. "The Eden System: A Technical Review", G. Almes et al, IEEE Trans Soft Eng SE-11(1):43-59 (Jan 1985).

EDIF - Electronic Design Interchange Format. Not a programming language, but a format to simplify data transfer between CAD/CAE systems. LISP-like syntax. "Designer's Guide to EDIF", E. Marx et al, EDN 1987."EDIF Electronic Design Interchange Format Version 200", ANSI/EIA Standard 548. info:

Edinburgh Prolog - Prolog dialect which eventually developed into the standard, as opposed to Marseille Prolog. (The difference is largely syntax.) Clocksin & Mellish describe Edinburgh Prolog. Version: C-Prolog.

Edison -

1. (named for the American inventor Thomas Edison (1847-1931)) Brinch Hansen. A simplified Pascal, with modules and concurrency (cobegin/coend). "Edison - A Multiprocessor Language", P. Brinch Hansen, CS Dept, USC, Sep 1980. "Programming a Personal Computer", Brinch Hansen, P-H 1977.

2. Adds an OPS5-like system to C. Implemented as a C preprocessor. "Edison, A Unix and C Friendly Rete Based Production System", B. Thirion, SIGPLAN Notices 27(1):75-84 (Jan 1992).


1. Experiment Description Language. J.S. Jenkins. "A Programmable System for Acquisition and Reduction of Respiratory Physiological Data", J.S. Jenkins et al, Ann Biomed Eng, 17:93-108 (1989).

2. Event Description Language. "EDL: A Basis for Distributed System Debugging Tools", P.C. Bates et al, in Proc Hawaii Intl Conf on Sys Sci, Jan 1982, pp.86-93.

3. Event Driven Language. Language for input to the EDX (Event Driven Executive) for the IBM Series/1. The output was machine code for IBM Series/3 or Series/7, and interpreted on Series/1 by an emulator.

EFL - Extended FORTRAN Language. FORTRAN preprocessor to provide structured programming much like C. A descendant of RATFOR, written in C. "An Informal Description of EFL", S.I. Feldman.

Eh - "A". Software Portability Group, U Waterloo. A typeless language derived from (and similar to) B. Provides guaranteed order of evaluation for side effects in expressions. Also character indexing operators. "Eh Reference Manual", R.S.C. Braga, RR CS-76-45, U Waterloo, Nov 1976. (See Zed.)

Eiffel - Bertrand Meyer <> ca. 1986. An object-oriented language. Classes with multiple and repeated inheritance, 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. Implemented as a C preprocessor. "Eiffel: The Language", Bertrand Meyer, P-H 1992. Interactive Software Eng, Goleta CA, (805) 685-1006. Version 2.3.4. (See Sather). info:

Eiffel 3 - Latest version of the Eiffel language. Available as Eiffel/S from SiG Computer GmbH, Germany.

EL1 - Extensible Language One. B. Wegbreit, Harvard ca 1974. An extensible language, internally somewhat LISP-like, but fully typed with records and pointers. The external syntax is Algol-like and extensible, supporting user-defined data structures, control structures and operations. The parser is table-driven, with a modifiable set of productions. Used as the basis for the ECL operating system. "Studies in Extensible Programming Languages", B. Wegbreit, Garland Pub 1980.

el(alpha) - Aims to be a high-level language that knows about real hardware, for systems programming. "Essential Language el(alpha) - A Reduced Expression Set Language for Systems Programming", T. Watanabe et al, SIGPLAN Notices 26(1):85-98.

Elan - "Top-down Programming with Elan", C.H.A. Koster, Ellis Horwood 1987.

ELF - Binary format used by System V Release 4 Unix.


1. Early system on IBM 705, IBM 650. Listed in CACM 2(5):16 (May 1959).

2. Embedded Lisp Interpreter. Bob Glickstein <> Small Common Lisp-like interpreter embedded in the Andrew mail system.

ELISP - Chuck Hedrick, Rutgers. Implemented originally for DEC-20's, later used as the LISP in EMACS.

Elk - Extension Language Kit. Oliver Laumann <>, Tech U Berlin. A Scheme interpreter, easily extendable with new types and primitive procedures. First-class environments, dynamic-wind, fluid-let, macros, dynamic loading of object files, autoloading, and a dump.

ELLA - Defence Research Agency, Malvern UK, 1979. First prototype 1982. Hardware design language.

ELLA 2000 - Version of ELLA with more powerful generics and user-defined attributes. "ELLA 2000: A Language for Electronic System Design", J.D. Morison and A.S. Clarke, McGraw-Hill 1993, ISBN 0-07-707821-7. Implemented in Algol68-RS. info: for SPARC

Ellie - Object-oriented language with fine-grained parallelism for distributed computing. Based on BETA, Smalltalk, and others. Parallelism by unbounded RPC and 'future' objects. Synchronization by 'dynamic interfaces. Classes, methods, blocks and objects all modeled by first- class 'Ellie objects'. Genericity, polymorphism and delegation/inheritance. "Ellie Language Definition Report", Birger Andersen <>, SIGPLAN Notices 25(11):45-65 (Nov 1990). doc:

ELLIS - EuLisp LInda System. An object-oriented Linda system written for EuLisp. "Using Object-Oriented Mechanisms to Describe Linda", P. Broadbery <> et al, in Linda-Like Systems and Their Implementation, G. Wilson ed, U Edinburgh TR 91-13, 1991.

ELMAGUIDE - Tallinn Poly Inst, 1978. Metalanguage used for interpretation of user actions in the ELMA compiler writer.

ELMAMETA - Tallinn Poly Inst, 1978. A FORTRAN extension used for lexical, syntactic and semantic sepecification in the ELMA compiler writer. This system was widely used in the Soviet Union, and produced an Ada to Diana compiler.


1. English Language Programs. Language for testing avionics equipment, on Varian 620/i. "Multiband Automatic test Equipment - A Computer Controlled Checkout System", T. Kuroda et al, Proc SJCC, 38 (1971).

2. Equational Logic Programming. O'Donnell <>. Semantically pure, fully lazy. "Equational Logic as a Programming Language", M.J. O'Donnell, MIT Press 1985. Current version: 4.2. for Sun and DEC.

ELSIE - A distributed version of ELLIS. "Using Object-Oriented Mechanisms to Describe Linda", P. Broadbery <> et al, in Linda- Like Systems and Their Implementation, G. Wilson ed, U Edinburgh TR 91-13, 1991.

EM-1 - Experimental Machine. An intermediate language, the assembly language for a stack-based machine, used by the Amsterdam Compiler Kit. "Using Peephole Optimization on Intermediate Code", A.S. Tanenbaum et al, ACM TOPLAS 4(1):21-36 (1982). info: Andrew Tanenbaum <>, Vrije U, Amsterdam.

EMA - Extended Mercury Autocode. (See Autocode).

EMACS LISP - Richard Stallman. Variant of LISP used by the EMACS editor. (This is the "offical" name, based on the EMACS FAQ file. See ELISP.)

Emerald - U Washington, early 80's. The successor of EPL[3]. A polymorphic object-oriented distributed programming language/environment. Strongly typed, uses signatures and prototypes rather than classes and inheritance. "Distribution and Abstract Types in Emerald", A. Black et al, IEEE Trans Soft Eng SE-13(1):65-76 (Jan 1987). "Emerald: An Object-Based Language for Distributed Programming", Norman C. Hutchinson, PhD Thesis, U Wash, Jan 1987, TR 87-01-01.

EML - Extended ML. A language for formally specifying SML programs. "Formal Program Development in Extended ML for the Working Programmer", D. Sannella, Proc 3rd BCS/FACS Workshop on Refinement", Springer 1990.

EMPL - Extensible Microprogramming Language. An early object-oriented microprogramming language with PL/I-like syntax. Extensions include datatype definitions and operators. Never fully implemented. "A Machine Independent Approach to the Production of Horizontal Microcode, D.J. DeWitt, PhD Thesis, U Mich 1976.

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

EOL - Expression Oriented Language. A low-level language for strings. "EOL - A Symbol Manipulation Language", L. Lukaszewicz, Computer J 10(1):53 (May 1967). Versions: EOL-1, EOL-2, EOL-3.


1. Extended Programming In LOGic. PROLOG with several AND's having different time constraints. "Epilog: A Language for Extended Programming in Logic", A. Porto in Implementations of Prolog, J.A. Campbell ed, Ellis Horwood 1984.

2. A data-driven PROLOG, with both AND and OR parallelism. "EPILOG = PROLOG + Data Flow", M.J. Wise, SIGPLAN Noices 17:80-86 (1982).


1. Early PL/I. McIlroy, Morris et al. PL/I subset dialect, the first running PL/I compiler. Used by Bell Labs and MIT to write Multics, EPL had extensions to handle the segment/offset nature of Multics pointers. "EPL Reference Manual", Project MAC, April 1966. Sammet 1969, p.542. (See REPL, TMG)

2. Experimental Programming Language. David May. Influenced occam. "EPL: An Experimental Language for Distributed Computing", D.C. May, in Trends and Applications 1978: Distributed Processing, NBS, pp.69-71.

3. Eden Programming Language. U Washington. Based on Concurrent Euclid and used with the Eden distributed OS. Influenced Emerald and Distributed Smalltalk. "EPL Programmer's Guide", A. Black et al, U Washington June 1984.

4. Equational Programming Language. Szymanski, RPI. Equational language for parallel scientific applications. "EPL - Parallel Programming with Recurrent Equations", B. Szymanski in Parallel Functional Languages and Compilers, B. Szymanski et al, A-W 1991.

EPROS - A specification/prototyping language. Implemented in Franz Lisp. "Software Prototyping, Formal Methods and VDM", Sharam Hekmatpour et al, A- W 1988.

EPSILON - P.A. Ershov, Novosibirsk, 1967. Macro language with high level features: strings, lists, etc. Used to implement ALGOL 68 on the M-220. "Application of the Machine-Oriented Language Epsilon to Software Development", I.V. Pottosin et al, in Machine Oriented Higher Level Languages, W. van der Poel, N-H 1974, pp.417-434.

EPSIMONE - Concurrent simulation language derived from Simone. "EPSIMONE Manual", J. Beziin et al, Pub Int No 90, IRISA, Sept 1978.

EqL - An equational language. Bharat Jayaraman <>. "EqL: The Language and its Implementation", B. Jayaraman et al, IEEE Trans Soft Eng SE-15(6):771-780 (June 1989).

EQLog - OBJ2 plus logic programming based on Horn logic with equality. "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.

Eqn - Language for typesetting mathematics. "A System for Typesetting Mathematics", B.W. Kernighan and L.L. Cherry, CACM 18(3):151-157 (Mar 1975).

Equel - Embedded Quel. INGRES, Inc. Combines QUEL theories with C code.

Erlang - Armstrong, Williams & Virding, Ellemtel, Sweden. Concurrent functional programming language for large real-time systems. Untyped. Pattern matching syntax, recursion equations. Explicit concurrency, asynchronous message passing. Transparent cross-platform distribution. Primitives for detecting runtime errors. Real-time garbage collection. Modules, dynamic code replacement. Foreign language interface. "Concurrent Programming in Erlang", J. Armstrong et al, P-H 1993. Interpreter in SICStus Prolog, compilers in C and in Erlang, for several Unix platforms. Free version with no support, commercial version from Erlang Systems AB. info:

ERFPI - Early system on LGP-30 computer. Listed in CACM 2(5):16 (May 1959).

es -

1. Extensible Shell. Unix shell derived from rc, includes real functions, closures, exceptions, and the ability to redefine most internal shell operations. "Es - A Shell with Higher Order Functions", P. Haahr et al, Proc Winter 1993 Usenix Technical Conference.

2. Expert System. Forward and backward chaining, and fuzzy set relations, for IBM PC. BYTE Oct 1990.

ES-1 - Early text editing interpreter. Sammet 1969, p.684.

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

ESI - Dialect of JOSS. Sammet 1969, p.217.

esim - A simulation language for VLSI, at the switch level. Primitives are nodes and transistors. C.M. Baker et al, "Tools for Verifying Integrated CIrcuit Design", Lambda 1(3):22-30 (1980).


1. Extra Simple Pascal. Subset of Pascal.

2. Econometric Software Package. Statistical analysis of time series. "Econometric Software Package, User's Manual", J.P. Cooper, Graduate School of Business, U Chicago. Sammet 1978.

3. Extended Self-containing Prolog. Chikayama. An object-oriented extension of KL0. Backtracking-based control, unification-based parameter passing, object-oriented calling. An object in ESP is an axiom set. A class definition consists of nature definitions (inheritance), slot definitions (class variables) and clause definitions. Multiple inheritance similar to Flavors. Implemented for ICOT's PSI Sequential Inference machine. "Unique Features of ESP", T. Chikayama, Proc Intl Conf 5th Gen Comp Sys, ICOT 1984. (See CESP) info:

4. Early symbolic math system. A. Rom, Celest Mech 3:331-345 (1971).

ESPOL - An ALGOL superset used to write the MCP (Master Control Program) OS on Burroughs 6700. Not available to users, it was Extended Algol with the added ability to access any CPU instrution as a procedure call. Superseded by NEWP. "The B6700 ESPOL Reference Manual", Burroughs, 1970.

Estelle - A Pascal extension for specification of computer network protocols. Protocols are described by modules which are communicating NFA's. Modules are arranged in a dynamic hierarchy and communicate at named interaction points. "The Formal Description Technique Estelle", M. Diaz et al eds, N-H 1989. Adopted by CCITT. ISO 9074 (1989). Compiles Estelle into C petdingo Translates Estelle into C++

Esterel - Distributed language for synchronous interaction of real-time systems with their environment. Uses explicit timing requests. Esterel programs are compiled into finite automata. "The ESTEREL Programming Language and its Mathematical Semantics", G. Berry & L. Cosserat, TR 327, INRIA, 1984.

ET - Bernd Gersdorf, U Bremen. An integration of functional and logic programming.

ET++ - Weinand, UBILAB Zurich. A smalltalk-like system for Suns, built on C++.

ETC - ExTendible Compiler. FORTRAN-like, macro extendible. "ETC - An Extendible Macro-Based Compiler", B.N. Dickman, Proc SJCC 38 (1971).

ETHER - Concurrent object-oriented language?

Euclid - (named for the Greek geometer, fl ca 300 BC.) 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):1-79 (Feb 1977).


1. (named for the Swiss mathematician Leonhard Euler (1707-1783)) Revision of ALGOL. A small predecessor of Pascal. "EULER: A Generalization of ALGOL and Its Formal Definition", N. Wirth, CACM 9(1) (Jan 1966) and 9(2) (Feb 1966).

2. 1960's. Lisp with Algol syntax, used for graphics on IBM 360/30 at U Utah. CACM article. [?]

EuLisp - 1985-present. LISP dialect intended to be a common European standard, with influences from Common LISP, Le LISP, Scheme and T. First- class functions, classes and continuations, both static and dynamic scope, modules, support for parallelism. The class system (TELOS) incorporates ideas from CLOS, ObjVLisp and Oaklisp. info: (Free and Eventually Eulisp)

Euphoria - End User Programming with Hierarchical Objects for Robust Interpreted Applications. Interpreted language with dynamic storage and dynamic typing. Rapid Deployment Software, for MS-DOS. for 386 info:

Eurisko - Lenat 1978. Language for "opportunistic programming". Constructs its own methods and modifies its strategies as it tries to solve a problem. Mentioned by Alan Kay, SIGPLAN Notices 28(3) (March 1993), p.88

Eva -

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

2. Explicit Vector Language. [?]

EXAPT - EXtended APT.

EXEC - Early batch language for IBM VM/CMS systems. SC19-6209 Virtual Machine/ System Product CMS Command and Macro Reference (Appendix F. CMS EXEC Control Statements)

EXEC2 - IBM, late 70's. SC24-5219 Virtual Machine/System Product EXEC 2 Reference. Superseded by REXX.

expect - A script language for dealing with interactive programs. Written in Tcl. "expect: Scripts for Controlling Interactive Tasks", Don Libes, Comp Sys 4(2), U Cal Press Journals, Nov 1991.*

Express -

1. ParaSoft Corp. Concurrency through message-passing to named message queues. Available from ParaSoft Corp, (818)792-9941. info:

2. Data definition language, meant to become an ISO standard for product data representation and exchange. TC 184/SC4 N83, ISO, 31 May 1991. info:

Extended ALGOL - An extension of ALGOL 60, used to write the ESPOL compiler on Burroughs B5500, B6500, B6700. "Burroughs B6700 Extended ALGOL Language Information Manual", No. 5000128 (Jul 1971) Sammet 1969, p.196.

Extended C++ - G. Masotti <> Extensions to C++ including preconditions, postconditions, class invariants, parametrized classes, exception handling and garbage collection. Implemented as a C++ preprocessor.

Extended ML - Don Sannella, Edinburgh. Algebraic specification meets functional programming. "Program Specification and Development in Standard ML", D. Sannella et al, 12th POPL, ACM 1985.

Extended Pascal - ISO, 1992. A superset of ANSI and ISO Pascal. Many enhancements, including modules, separate compilation, type schemata, variable-length strings, direct-access files, complex numbers, initial values, constant expressions. ANSI/IEEE770X3.160-1989 and ISO 10206.

EXTRA - Object-oriented, Pascal style, handles sets. "A Data Model and Query Language for EXODUS", M.J. Carey et al, SIGMOD 88 Conf Proc, pp.413- 423, ACM SIGMOD Record 17:3 (Sept 1988).

EZ - High-level string-processing language derived from SNOBOL4, SL5 and Icon. "The EZ Reference Manual", C.W. Fraser et al, CS TR 84-1, U Arizona, 1984.