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 које затим користи за испис текста.
MODULE
Pozdrav
InOut
WriteString
WriteLn
Следећи програм исписује два реда текста. У првом реду исписује "Zdravo svete!", а у следећем "Pozdrav iz Modula 'DrugiPozdrav'!!".
"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, чији код следи:
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.
Овај чланак везан за рачунарство је клица. Можете допринети Википедији тако што ћете га проширити.