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
urediJezik 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
urediProgram 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
urediPrimer 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
urediSledeć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- Niklaus Wirth, "„Programming in Modula-2”. doi:10.1007/978-3-642-83565-0.", 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- 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)