Modula-2
![]() | Овај чланак садржи списак литературе, сродне писане изворе или спољашње везе, али његови извори остају нејасни, јер нису унети у сам текст. |
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
.
Књиге
[уреди | уреди извор]- Niklaus Wirth, "Programming in Modula-2. ISBN 978-0-387-96051-7. doi:10.1007/978-3-642-83565-0.", Fourth Edition, 1988,
- 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
Спољашње везе
[уреди | уреди извор]- Интернет локација посвећена програмском језику Модула-2
- Прстен повезаних интернет локација око језика Модула-2
- Збирка често постављаних питања у вези језика Модула-2
- Лилит и Модула-2
- Слободно доступни материјали и новости у вези језика Модула-2
- Изворни код писан у језику Модула-2 и Оберон-2 Архивирано на веб-сајту Wayback Machine (29. април 2009)