Modula-2 - Google

Modula-2

Z Wikipedii

Skocz do: nawigacji, szukaj

Modula 2 to 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:

  • luźno zwiÄ…zanych (ang. loosely coupled), jak i
  • silnie zwiÄ…zanych (ang. tightly coupled).

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

[edytuj] Zobacz też


Europejska czołówka karateków walczyć będzie o Puchar Europy
Czołówka zawodniczek i zawodników karate tradycyjnego spotka się w niedzielę w Warszawie, gdzie rywalizować będzie o Puchar Europy w karate tradycyjnym.
Lato powalczy o wielki talent dla reprezentacji
Rewelacyjny pomocnik francuskiego Lille, 24-letni Ludovic Obraniak chce grać dla Polski. Jeśli jednak o wydanie zezwolenia w FIFA nie powalczy prezes PZPN, nasza reprezentacja bezpowrotnie straci tego utalentowanego zawodnika.
CBA zawiesza zawodnika za atak na rywala
Zawieszenie na 10 spotkań i grzywna w wysokości 50 000 juanów (7,2 tys. dolarów) to kara dla kapitana chińskiej reprezentacji koszykarzy Liu Weia za atak na nigeryjskiego zawodnika po meczu ligowym.
Mistrzyni olimpijska z Pekinu kończy karierę
Mistrzyni olimpijska z Pekinu w skoku wzwyż Belgijka Tia Hellebaut poinformowała, że jest w trzecim miesiącu ciąży i kończy karierę.
"Nadeszła pora zaciskania pasa"
W ostatnich latach rosyjskie kluby sportowe były prawdziwym eldorado. Światowe gwiazdy hokeja, koszykówki czy siatkówki mamione sumami transferów ciągnęły do Moskwy, Kazania, Sankt Petersburga, Omska.
Linki: Strona g³ówna