Modula-2
Ovaj članak sadrži spisak literature, srodne pisane izvore ili spoljašnje veze, ali njegovi izvori ostaju nejasni, jer nisu uneti u sam tekst. |
Modula-2 (transkr. Modula-2) je imperativni programski jezik opšte namene. Njegov autor Niklaus Virt ga je smatrao direktnim naslednikom daleko poznatijeg programskog jezika Paskal, čiji je autor takođe. U odnosu na Paskal, jezik Modula-2 poseduje neka uprošćenja i sledeća glavna proširenja:
- Mogućnost rastavljanja izvornog koda programa na nezavisne delove koji samostalno mogu da budu prevedeni i potom uvezani. Ova mogućnost je podržana kroz koncept modula.
- Nešto izmenjena sintaksa kod koje svaka struktura poseduje sopstvene zagrade u obliku rezervisanih reči.
- Direktno podržano multiprogramiranje kroz koncept procesa.
- Dodati elementi niskog nivoa koji dodatno proširuju mogućnosti kreiranja novih tipova podataka i omogućavaju sistemsko programiranje. Ovi elementi i njihova upotreba su jasno odvojeni od ostatka jezika.
- Proceduralni tip podataka koji omogućava da procedura bude dodeljena promenljivoj kao vrednost u toku izvršavanja programa.
Nastanak[uredi | uredi izvor]
Jezik Modula-2 je, po rečima autora, definisan i eksperimentalno implementiran 1975. godine po prvi put. Nadovezuje se na kocepte Paskal jezika i jezika Modula po kome je dobio ime.
Osobine jezika[uredi | uredi izvor]
Program u programskom jeziku Modula-2 se sastoji iz jednog modula najvišeg nivoa koji može da vrši uvoz (iz) jednog ili više drugih modula. Svaki uvezeni modul može da uvozi iz drugih modula.
Zdravo svete[uredi | uredi izvor]
Primer programa koji se sastoji iz jednog modula najvišeg nivoa. Program ispisuje "Zdravo svete!":
MODULE Pozdrav; FROM InOut IMPORT WriteString, WriteLn; BEGIN WriteString("Zdravo svete!"); WriteLn END Pozdrav.
Ovde program, koji obavezno počinje rezervisanom reči MODULE
, ima ime Pozdrav
. On iz drugog modula, sa imenom InOut
, uvozi dve procedure WriteString
i WriteLn
koje zatim koristi za ispis teksta.
Dvostruki pozdrav[uredi | uredi izvor]
Sledeći program ispisuje dva reda teksta. U prvom redu ispisuje "Zdravo svete!"
, a u sledećem "Pozdrav iz Modula 'DrugiPozdrav'!!"
.
MODULE DvaPozdrava; FROM InOut IMPORT WriteString, WriteLn; FROM DrugiPozdrav IMPORT pozdrav; BEGIN WriteString("Zdravo svete!"); WriteLn; pozdrav END DvaPozdrava.
Da bi obavio svoj posao modul DvaPozdrava
, između ostalog, uvozi proceduru pozdrav
iz modula DrugiPozdrav
, čiji kod sledi:
DEFINITION MODULE DrugiPozdrav; PROCEDURE pozdrav; END DrugiPozdrav.
IMPLEMENTATION MODULE DrugiPozdrav; FROM InOut IMPORT WriteString, WriteLn; PROCEDURE pozdrav; BEGIN WriteString("Pozdrav iz Modula 'DrugiPozdrav'!!"); WriteLn END pozdrav; END DrugiPozdrav.
Radi se, u stvari, o dva modula koji su među sobom povezani. Prvi, definicioni modul, govori o tome šta modul radi, dok drugi, implementacioni modul sa istim imenom, određuje kako će to da se uradi. Definicioni modul određuje šta modul izvozi; u ovom slučaju jedino proceduru pozdrav
.
Knjige[uredi | uredi izvor]
- Niklaus Wirth, "Programming in Modula-2", Fourth Edition, 1988, ISBN 978-0-387-96051-7
- K. N. King, Modula-2, ISBN 0-669-11091-4
- Richard J. Sutcliffe, "Modula-2: Abstractions for Data and Programming Structures," (Using ISO-Standard Modula-2) 2004–2005 Edition
- Gleaves, Richard, "Modula-2 for Pascal Programmers", First Edition, 1984, ISBN 978-0-387-96051-7.
- Cooper, Doug Oh My! Modula-2: An Introduction to Programming, 1991, ISBN 0393961079
Spoljašnje veze[uredi | uredi izvor]
- Internet lokacija posvećena programskom jeziku Modula-2
- Prsten povezanih internet lokacija oko jezika Modula-2
- Zbirka često postavljanih pitanja u vezi jezika Modula-2
- Lilit i Modula-2
- Slobodno dostupni materijali i novosti u vezi jezika Modula-2
- Izvorni kod pisan u jeziku Modula-2 i Oberon-2 Arhivirano na sajtu Wayback Machine (29. april 2009)