For faster navigation, this Iframe is preloading the Wikiwand page for Modula-2.

Modula-2

Modula 2język programowania wysokiego poziomu stworzony przez Niklausa Wirtha.

Historia

[edytuj | edytuj kod]

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. Zawiera 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.

Składnia

[edytuj | edytuj kod]

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

Współbieżność

[edytuj | edytuj kod]

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.

Inne właściwości

[edytuj | edytuj kod]

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.

Zobacz też

[edytuj | edytuj kod]

Bibliografia

[edytuj | edytuj kod]
{{bottomLinkPreText}} {{bottomLinkText}}
Modula-2
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?