Ugrás a tartalomhoz

Szerkesztő:KovacsUr/ELAN

A Wikipédiából, a szabad enciklopédiából

(szócikk szerkesztés és forrásgyűjtés alatt)

Egyértelműsítő kell: ELAN ~ Emulated LAN is


Az ELAN programozási nyelvet a Berlini (akkor Nyugat-Berlini) Műszaki Egyetemen fejlesztették ki 1974-ben a BASIC alternatívájaként. Kifejezetten a módszeres programozás alapjainak oktatására tervezték. A nyolcvanas években széles körben alkalmazták a közép- és felsőfokú oktatásban, elsősorban az NSZK-ban, Belgiumban, Hollandiában és Magyarországon.

Az ELAN0 nyelv

[szerkesztés]

Az ELAN0 programozási nyelv az ELAN egy olyan részhalmaza, amely a felülről lefelé haladó, módszeres programozás oktatására és gyakorlására alkalmas. Hiányoznak belőle az ELAN következő nyelvi elemei:

  • a STRUCT (struktúra) adatszerkezet
  • az ELAN alappakkjainak nagy része (ennek következtében az ELAN0-ban nincsenek valós típusú objektumok és műveletek sem)
  • a „nagybani programozás”-t támogató elemek
    • pakkok csak korlátozott formában használhatóak
    • nincs lehetőség saját típusok, műveletek és eljárások deklarálására

További eltérések:

  • az ELAN0-ban a szóköznek jelentésmegkülönböztető szerepe van (de több egymást követő szóköz csak egynek számít)
  • mások a szöveg típusú objektumokon végrehajtható műveletek
  • a ciklusok szintaxisa korlátozottabb, mint az ELAN-ban (a FOR ciklusban nem adható meg WHILE vagy UNTIL feltétel)
  • az ELAN0 az ELAN-hoz képest a következő apróbb kiegészítésekkel van ellátva:
    • néhány alapeljárás (exectime, freespace, sleep(i) stb.)
    • a rögzített számú ismétlés (FOR ciklus) egyszerűsített változata

Egy példaprogram

[szerkesztés]
doboz:
  kerdezd meg a meretet;
  torold a kepernyot;
  rajzold meg a tetejet;
  rajzold meg a ket oldalat;
  rajzold meg az aljat.
kerdezd meg a meretet: INT VAR szelesseg; INT VAR magassag; put ("Szelessege?"); get (szelesseg); put ("Magassaga?"); get (magassag).
torold a kepernyot: put (ascii (1)).
rajzold meg a tetejet: put (szelesseg * csik); line (1).
csik: "=".
rajzold meg a ket oldalat: INT VAR sor; FOR sor FROM 1 UPTO magassag - 2 REP rajzold meg a sor ket szelet ENDREP.
rajzold meg a sor ket szelet: put (vonas); put ((szelesseg - 2) * lyuk); put (vonas); line (1).
vonas: "|".
lyuk: " ".
rajzold meg az aljat: rajzold meg a tetejet.

Az ELAN Magyarországon

[szerkesztés]

Az ELAN0 programozási környezet 1981-ben jelent meg először hazánkban. 1983-ig több változata vált elérhetővé a Magyarországon használatos gépeken. 1984–85-ben a Művelődési Minisztérium támogatásával elkészült a magyar nyelvű 10. változat, amely holland eredetijétől a magyar nyelvű parancsokban, üzenetekben tért el, és a kezelőfelület bizonyos kényelmetlenségeit is kijavította. Később az ELAN1 programozási környezet PC-ken futó változata is elkészült, mely csaknem a teljes ELAN nyelvet megvalósítja.


Hanák D. Péter: Programozás ELANnal, Műszaki Könyvkiadó, Bp., 1988


The ELAN system developed at Nijmegen University is freely available for non-commercial use, on an as-is basis. [1]


magyar segédanyag [2]


ELAN, an educational language defined in Germany in 1974, which was implemented in 1978 in Bielefeld by Reiner Hahn ea, later at the GMD in Bonn made into a full-blown multi-user environment for educational use on microcomputers (EUMEL). I myself implemented Elan on microcomputers (MSDOS and UNIX computers). Elan was used in the eighties in teaching at many secondary schools in West-Germany, Belgium and even The Netherlands, until the bureaucrats found out that it is not Pascal. There is a collection of books about Elan and its educational use, including a textbook in English published by Wiley ("Top-Down Programming" by C.H.A. Koster). At present I am using Elan, extended with polymorphy, in teaching systematic programming at my university.

C.H.A. Koster

[3]


The ELAN Programming Language


...approved for use in secondary schools in Germany by the ``Arbeitskreis Schulsprache. It is presently [figy: AS OF 1988... :)] 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 recursive programming, modular programming and syntax-directed programming.

Elan is an 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 recursive and polymorphic types;
  • Generic and polymorphic procedures and operators for the support of Bottom-Up programming; and
  • Packets with explicit interfaces for the support of modular programming.

A number of implementations of Elan have been developed in different environments:

  • The original language was implemented at the TU Berlin, and used in many teaching situations.
  • At the University of Bielefeld, and later at the GMD Bonn, the language was extended with the concept of dataspaces and a very rich library, implemented as the EUMEL system. It was widely and succesfully used in the Bundesrepublik, but virtually disappeared from secondary schools after 1990, when burocrats had discovered that it was not PASCAL, on which they decided to standardize.
  • At the University of Nijmegen, another version was implemented of the standard language extended with recursive types and polymorphy. This version was used on many schools in the Netherlands, Belgium and Hungary, until burocrats made the same discovery. This is the implementation available at this site.