Modula-2 (programozási nyelv)
Modula-2 | |
Paradigma | imperatív, strukturált, moduláris, adat és methodus elrejtés |
Megjelent | 1978 |
Tervező | Niklaus Wirth |
Fejlesztő | Niklaus Wirth |
Típusosság | erősen típusos, statikus kötés |
Dialektusok | PIM2, PIM3, PIM4, ISO |
Megvalósítások | Niklaus Wirth által írt ETH compiler , |
Hatással volt rá | Modula, Mesa, Pascal, Algol-W |
Befolyásolt nyelvek | Modula-3, Oberon, Ada, Fortran 90, Lua, Zonnon, Modula-GM |
A Modula-2 objektumorientált, eljáráselvű programozási nyelv.
Története
[szerkesztés]Az első, és legnépszerűbb strukturált programnyelvek között szerepelt a Pascal, amelyet Niklaus Wirth professzor (ETH – Zürich) dolgozott ki, és valósított meg. Könnyen elsajátítható programnyelvnek bizonyult, ezen kívül előnyös volt algoritmus és adatszervezés szempontjából. Sok jó tulajdonsága mellett csak strukturáltságot tartalmazott, ami idővel kevésnek bizonyult.
Legnagyobb hátrányai: nem tartalmazza a moduláris programozás tulajdonságait. Alacsony szintű programozási nyelv formájának hiánya, nehéz hozzáférés az operációs rendszer függvényeihez.
Wirth 1975-ben kifejlesztette a Modula nevű moduláris programnyelvet. 1977-ben kezdett dolgozni a Modula-2 nevű programnyelven. Az első megvalósított verzió futtatása egy PDP-11-es számítógépen történt 1979-ben.
Wirth a Pascal előnyeit a Modula-2 -be szintén bevezette, ezen kívül kibővítette a moduláris és alacsony szintű programozás lehetőségeivel. A Modula-2 egy strukturált, moduláris programozási nyelv – magas szintű programozási nyelv.
Szintaktika
[szerkesztés]Fenntartott szavak
[szerkesztés]A Modula-2 fenntartott szavainak listája. Ezeket nem definiálhatjuk újra, és nem használhatjuk fel az általunk létrehozott, programban szereplő egységek elnevezéseire.
AND ARRAY BEGIN BY CASE CONST DEFINITION DIV DO ELSE ELSIF END EXIT EXPORT FOR FORWARD FROM IF IMPLEMENTATION IMPORT IN LOOP MOD MODULE NOT OF OR POINTER PROCEDURE QUALIFIED RECORD REPEAT RETURN SET THEN TO TYPE UNTIL VAR WHILE WITH
Kulcsszavak
[szerkesztés]A Modula-2 standard, könyvtári függvényei. Újradefiniálhatók, felhasználhatók az általunk létrehozott, programban szereplő egységek elnevezéseire. Ez azonban nem ajánlott.
ABS ADR ADDRESS BITSET BOOLEAN BYTE CAP CARDINAL CHAR CHR DEC EXCL FALSE FLOAT HALT HIGH INC INCL INTEGER LONGCARD LONGINT LONGREAL MAX MIN NIL ODD ORD PROC REAL SIZE TRUE TRUNC VAL WORD
A Modula-2 program struktúrája
[szerkesztés]MODULE modulNeve;
FROM modulNeve IMPORT objNeve;
(* Importált objektumok listája - használhatjuk FROM és modulNeve nélkül is,
ilyenkor a modulNeve az IMPORT után következik. A programban szereplő modulNeve
modulból származó objektumot pedig így használjuk: modulNeve.objNeve; *)
(* Deklarációk *)
TYPE
tipusNeve = tipusDef; (* típusok *)
CONST
konstNeve = konstKifejez; (* konstansok *)
VAR
valtozoNeve : tipusNeve; (* változók *)
BEGIN (* A program törzse itt kezdődik *)
utasitasok;
END modulNeve.
Dokumentáció
[szerkesztés]- A Modula-2 hivatalos honlapja: [1]
- Niklaus Wirth: MODULA-2 [2] Archiválva 2009. december 22-i dátummal a Wayback Machine-ben
- Modula-2 referencia kezdőknek: [3]
- Modula-2 referencia haladóknak: [4]
- Zoran Budimac, Mirjana Ivanović, Đura Paunić: Uvod u programiranje i programski jezik Modula-2. 2004, Fejlton, Novi Sad, ISBN 86-499-0032-1