Пређи на садржај

Modula-2 — разлика између измена

С Википедије, слободне енциклопедије
Садржај обрисан Садржај додат
м нормативна контрола
мНема описа измене
 
Ред 58: Ред 58:


== Књиге ==
== Књиге ==
* Niklaus Wirth, "[https://link.springer.com/book/10.1007/978-3-642-83565-0 Programming in Modula-2]", Fourth Edition, 1988, {{ISBN|978-0-387-96051-7}}
* Niklaus Wirth, "{{cite journal |last1= |first1= |date= |title=Programming in Modula-2 |url= |journal= |volume= |issue= |pages= |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}}
* K. N. King, ''Modula-2'', {{ISBN|0-669-11091-4}}
* Richard J. Sutcliffe, "[http://www.arjay.bc.ca/Modula-2/Text/index.html Modula-2: Abstractions for Data and Programming Structures]," (Using ISO-Standard Modula-2) 2004–2005 Edition
* Richard J. Sutcliffe, "[http://www.arjay.bc.ca/Modula-2/Text/index.html Modula-2: Abstractions for Data and Programming Structures]," (Using ISO-Standard Modula-2) 2004–2005 Edition

Тренутна верзија на датум 23. мај 2024. у 22:36

Modula-2 (транскр. Модула-2) је императивни програмски језик опште намене. Његов аутор Никлаус Вирт га је сматрао директним наследником далеко познатијег програмског језика Паскал, чији је аутор такође. У односу на Паскал, језик Модула-2 поседује нека упрошћења и следећа главна проширења:

  • Могућност растављања изворног кода програма на независне делове који самостално могу да буду преведени и потом увезани. Ова могућност је подржана кроз концепт модула.
  • Нешто измењена синтакса код које свака структура поседује сопствене заграде у облику резервисаних речи.
  • Директно подржано мултипрограмирање кроз концепт процеса.
  • Додати елементи ниског нивоа који додатно проширују могућности креирања нових типова података и омогућавају системско програмирање. Ови елементи и њихова употреба су јасно одвојени од остатка језика.
  • Процедурални тип података који омогућава да процедура буде додељена променљивој као вредност у току извршавања програма.

Настанак[уреди | уреди извор]

Језик Модула-2 је, по речима аутора, дефинисан и експериментално имплементиран 1975. године по први пут. Надовезује се на коцепте Паскал језика и језика Модула по коме је добио име.

Особине језика[уреди | уреди извор]

Програм у програмском језику Модула-2 се састоји из једног модула највишег нивоа који може да врши увоз (из) једног или више других модула. Сваки увезени модул може да увози из других модула.

Здраво свете[уреди | уреди извор]

Пример програма који се састоји из једног модула највишег нивоа. Програм исписује "Zdravo svete!":

 MODULE Pozdrav;
   FROM InOut IMPORT WriteString, WriteLn;
 BEGIN
   WriteString("Zdravo svete!");
   WriteLn
 END Pozdrav.

Овде програм, који обавезно почиње резервисаном речи MODULE, има име Pozdrav. Он из другог модула, са именом InOut, увози две процедуре WriteString и WriteLn које затим користи за испис текста.

Двоструки поздрав[уреди | уреди извор]

Следећи програм исписује два реда текста. У првом реду исписује "Zdravo svete!", а у следећем "Pozdrav iz Modula 'DrugiPozdrav'!!".

 MODULE DvaPozdrava;
   FROM InOut IMPORT WriteString, WriteLn;
   FROM DrugiPozdrav IMPORT pozdrav;
 BEGIN
   WriteString("Zdravo svete!");
   WriteLn;
   pozdrav
 END DvaPozdrava.

Да би обавио свој посао модул DvaPozdrava, између осталог, увози процедуру pozdrav из модула DrugiPozdrav, чији код следи:

 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.

Ради се, у ствари, о два модула који су међу собом повезани. Први, дефинициони модул, говори о томе шта модул ради, док други, имплементациони модул са истим именом, одређује како ће то да се уради. Дефинициони модул одређује шта модул извози; у овом случају једино процедуру pozdrav.

Књиге[уреди | уреди извор]

Спољашње везе[уреди | уреди извор]