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”. 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
Спољашње везе
уреди- Интернет локација посвећена програмском језику Модула-2
- Прстен повезаних интернет локација око језика Модула-2
- Збирка често постављаних питања у вези језика Модула-2
- Лилит и Модула-2
- Слободно доступни материјали и новости у вези језика Модула-2
- Изворни код писан у језику Модула-2 и Оберон-2 Архивирано на сајту Wayback Machine (29. април 2009)