Modula-2
Modula 2 - język programowania wysokiego poziomu stworzony przez Niklausa Wirtha .
Spis treści |
[ edytuj ] Historia
Język Modula 2 stworzony został podczas prac badawczych w Instytucie Informatyki Politechniki w Zurichu. Prace nad językiem rozpoczęto w 1977 r., a ich efektem była pierwsza implementacja tego języka zrealizowana w 1979 r. na komputerze PDP-11 . Definicja języka opublikowana została w 1980 r.
Język wywodzi się z Pascala i Moduli . Zwiera w sobie wszystkie mechanizmy Pascala oraz rozszerzenia o ważne pojęcia modułu i mechanizmy wieloprogramowości. Składnię języka oparto na składni Moduli (po zrealizowaniu Moduli 2 i innych, język Modula czasem określano – dla jednoznaczności – jako Modula 1). Należy podkreślić, że kolejne cyfry nie oznaczają kolejnych wersji rozwojowych, lecz osobne języki budowane na tych samych wzorcach, lecz o różniących się założeniach i przeznaczeniu.
[ edytuj ] Składnia
Każdy program składa się z modułu lub wielu modułów. Moduły zewnętrzne mogą być kompilowane niezależnie. Moduły mogą być zgłębione w innych modułach. Moduł ma postać:
pre MODULE nazwa; listy_importowe deklaracje BEGIN instrukcje END nazwa.
Moduły dzielą się na:
- moduły programu
- moduły definiujące : pre=DEFINITION
- moduły implementujące : pre=IMPLEMENTATION
Instrukcja IMPORT listy_importowej pozwala importować obiekty z innych modułów. Do udostępniania własnych obiektów służy instrukcja EXPORT.
Obiekt nie jest tu używany w sensie projektowania obiektowego .
Język wyposażony został w instrukcje strukturalne wzorowane na instrukcjach Pascala z pewnymi rozszerzeniami. Zasadnicza różnica, wywodząca się z Moduli 1, to słowo kluczowe END zamykające każdą instrukcję strukturalną , co eliminuje konieczność stosowana instrukcji grupującej (jak begin…end w Pascalu, czy {…} w języku C ). Ponadto rozszerzono postać instrukcji IF i FOR oraz wprowadzono instrukcję pętli LOOP dla programowania współbieżnego .
IF w1 THEN si1[ELSIF w2 THEN si2[ELSIF w3 THEN si3 …]][ELSE si-else]END
CASE wyr OF w1 : si1 |[w2 : si2[| …]][ELSE si_else]END
WHILE w DO si END
REPEAT si UNTIL w
FOR i:=w TO w2 [BY w3] DO si END
LOOP si END
[ edytuj ] Współbieżność
Język Modula 2 udostępnia mechanizmy do programowania procesów współbieżnych – zarówno procesów:
W Moduli 2 mechanizmy współbieżności oparto o rozwiązania znane z języków Modula i Concurrent Pascal . Komunikacja między procesami odbywa się za pomocą zmiennych współdzielonych i sygnałów.
[ edytuj ] Inne właściwości
W języku wprowadzono również dla potrzeb programowania systemowego mechanizmy niskiego poziomu pozwalające na ominięcie reguł związanych ze ścisłą kontrolą typów obowiązującą w tym języku.
[ edytuj ] Bibliografia
- Niklaus Wirth , Modula 2, Wydawnictwa Naukowo-Techniczne , Warszawa 1987 , Seria: Biblioteka Inżynierii Oprogramowania , ISBN 83-204-0828-8
[ edytuj ] Zobacz też
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Home Page , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

