[back to L4 home page]

The L4 µ-Kernel Family

Back to L3 main page

Navigate L3 Section:

Site Navigation:

(* = offsite link)

Quick links:

The ELAN Programming Language

What is ELAN?

From the Nijmegen ELAN manual:

Elan is an educational programming language for learning and teaching systematic programming.

It was developed in 1974 by a group at the Technical University of Berlin as an alternative to BASIC in teaching, and approved for use in secondary schools in Germany by the ``Arbeitskreis Schulsprache''. It is presently in use in a number of schools in Western Germany, Belgium, The Netherlands and Hungary for informatics teaching in secondary education, and used at the university of Nijmegen in the Netherlands for teaching systematic programming to students from various disciplines and in teacher courses.

Elan was especially designed for one specific application area: the teaching of systematic programming. The language is not oriented towards general usage or towards other application areas. It can be seen as a didactic framework embodying a number of ideas about systematic programming and supporting, through specific language mechanisms, the learning of the two complementary programming styles

  • Top-Down programming, using suitable control structures and data structures, refinements, and shorthand declarations; and
  • Bottom-Up programming, using procedure-, operator- and type-declarations in conjunction with encapsulation and interfaces;
as well as a number of related programming styles (recursive programming, modular programming, syntax-directed programming).

Elan is a typical algorithmic language in the ALGOL family, more related to ALGOL68 than to PASCAL. The language is not an experiment in language design; both syntactically and semantically it is quite conventional. Its control structures are the conventional Dijkstra structures, in conjunction with a leave-statement. Its data structures are limited to the (fixed size) row and structure - not as rich as ALGOL 68 but much simpler due to the absence of the reference concept.

In order to support the learning of systematic programming, it stresses instead the use of abstraction mechanisms. Its striking features are:

  • The refinement as a syntactic construct for the support of Top-Down programming;
  • Declarations for procedures, types and operators for the support of Bottom-Up programming; and
  • Packets with explicit interfaces for the support of modular programming

ELAN Resources


by G. Hommel, J. J¨ackel, S. Jähnichen, K. Kleine, W. Koch, C.H.A. Koster

Akademische Verlagsgesellschaft, Wiesbaden 1979, ISBN 3-400-00384-0.

Top-Down Programming with Elan
by C.H.A. Koster

Ellis Horwood, 1987, ISBN 0-7458-0187-0.

Programmieren mit ELAN
by L.H. Klingen, J. Liedtke

Teubner Verlag, Stuttgart 1983, ISBN 3-519-02507-8

Online Resources

Last modified: Thu Aug 12 19:09:21 1999

Operating Systems Group