EL1(ID:640/el:001)

Extensible Language 


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.

One of many experiments to use Algol syntax with S-expressions

from Steele "Evolution of Lisp"
The EL1 language was designed by Ben Wegbreit as part of his Ph.D. research [Wegbreit, 1970]. It may be loosely characterized as a Lisp with an Algol like surface syntax and strong data typing. A complete programming system called ECL was built around EL1 at Harvard in the early 1970 s [Wegbreit, 1971; Wegbreit, 1972; Wegbreit, 1974] The UNION function in EL1 looks like this: union ..."

from Shutt "Recursive Adaptible Grammars"
"Wegbreit s ECFGs In the late 1960s, Ben Wegbreit developed an adaptable grammar formalism, as part of an extensible programming language called EL1. Extensible languages will be mentioned in x3.4. He called his grammars ECFGs (Extensible Context Free Grammars) The basic reference is [Wegb 70] An ECFG G consists of a context free grammar together with a deterministic finite state transducer (see x1.4.2) The input alphabet of the transducer is TG ; the output alphabet is ZG , plus some reserved symbols that are used for the unambiguous expression of rules. The output of the ....



Places
Related languages
ALGOL 60 => EL1   Influence
ECL => EL1   Written using
LISP 1.5 => EL1   Influence
EL1 => VERS2   Built on

References:
  • Wegbreit, B. "Studies in extensible programming languages." Technical Report ESD-TR-70-297. Harvard University, Cambridge, Massachusetts. May 1970. view details
  • Wegbreit, B., "The Treatment of Data Types in EL1" view details
          in [ACM] CACM 17(05) (May 1974) view details
  • Wegbreit, Ben "Procedure closure in EL1" p38-43 view details Abstract: Most programming languages allow the use of free variables in procedures. The mechanism for connecting such free variables with their intended meanings has significant impact on the convenience of the language for the programmer and the efficiency of the resulting programs. The EL1 programming language in the ECL programming system provides a closure mechanism which allows the programmer considerable control over the binding of free variables and serves as an aid to efficient implementation. In this paper, the closure mechanism for EL1 is explained, its rationale presented, and various applications displayed.
          in The Computer Journal 17(1) February 1974 view details
  • Spitzen, J. and Wegbreit, B. "The verification and synthesis of data structures" ACTA Informatica, 4, 2 (1975), 127-144. view details
          in The Computer Journal 17(1) February 1974 view details
  • Leeuwen, J. Van review of Spitzen 1975 view details Abstract: Adding a class of unit objects and permissible standard operations on these objects to the prelude of a programming language is an instance of what the authors call "machine-extension." The desirable method to achieve machine-extensions would consist in an axiomatization of the required structures and a Hoare-type set of semantic rules and invariances for the appropriate operators on these structures and a synthesis program automatically producing an implementation that can then be shown to be faithful to the given specification by means of programproving techniques. The authors study it in careful detail for stacks, text-buffers, and queues, and describe the syntax and semantics of a simple (extensible) language ELO with a flexible mode-creation mechanism, to which these nonprimitive and only axiomatically given datastructures must be added. The given implementations are proved correct, and two particular program-proving techniques are found to be useful here, notably generatorinduction (which is induction on formation) and the rule of commutativity for nonoverlapping domains of activity (implicitly also in W. D. Maurer, J. A CM 13 (1966) 226-235,1~ath. Syst. Th. 6 (1972) 86-89). It is pointed out what makes automatic synthesis hard; but this very paper is proof that the necessary verification techniques are within reach. It is a modern and well-presented case study of the typical problems in automatic implementation of software requirements.



          in ACM Computing Reviews 17(02) March 1976 view details
  • The Higher Order Language Working Group (HOLWG) Working Paper on 23 exisitng programming languages view details
          in ACM Computing Reviews 17(02) March 1976 view details
  • Sammet, Jean E "Roster of programming languages for 1976-77" pp56-85 view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • Wegbreit, B. "Studies in Extensible Programming Languages" Garland Pub 1980. view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • G.L. Steele et al, "The Evolution of Lisp" view details
          in [ACM SIGPLAN] SIGPLAN Notices 28(03) March 1993 The second ACM SIGPLAN conference on History of programming languages (HOPL II) view details