Traditionally, composition mechanisms have been seen as the central mechanisms in systematic (``structured'') programming. Elan has rather conventional control structures and relatively simple data structures. In contrast, in Elan the abstraction mechanisms are seen as the central issue in any programming methodology and consequently highly developed.
The Elan Programming Environment further stresses this view by making the definition of abstract algorithms (refinements) the basis for the development and manipulation of programs. It considers a program as a collection of refinements, rather than one text.