12.07.2015 Views

Spis treœci - Patrz

Spis treœci - Patrz

Spis treœci - Patrz

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

7 Przestrzeń krotek w Lindzie7.1 Wprowadzenie7.1.1 Przestrzeń krotekW roku 1985 D. Gelernter opublikował artykuł [Gele85], w którym zaproponował nowymechanizm komunikacji między procesami nazwany wdzięcznym imieniem Linda. Wodróżnieniu od synchronicznych spotkań w CSP lub Adzie, które z jednej strony wymagają,aby komunikujące się procesy istniały jednocześnie w czasie, a z drugiej zakładają, żeprocesy te znają swoje nazwy (w obie strony w CSP, w jedną stronę w Adzie), komunikacja wLindzie nie narzuca żadnych powiązań ani w czasie, ani w przestrzeni adresowej.Linda nie jest jakimś konkretnym językiem programowania. Jest to jedynie pewna idea,której realizację można włączyć do dowolnego języka programowania współbieżnego.Przykłady i rozwiązania zadań będziemy zapisywać tutaj w notacji języka PascaLC.Podstawowym pojęciem Lindy jest krotka (tuple)1. Krotka to ciąg danych (o określonejlub nieokreślonej wartości, por. 7.1.4), z których każda ma określony typ. Ciąg typówposzczególnych elementów krotki tworzy jej sygnaturę. Na przykład krotka(5, 3.14, true, 'c', 20)ma sygnaturę(integer, real, boolean, char, integer)Typami elementów krotek mogą być także typy złożone, jak napisy, tablice, rekordy.W Lindzie wszystkie procesy realizują się w środowisku zwanym przestrzenią krotek. Zprzestrzeni tej proces pobiera dane w formie krotek i do tej przestrzeni wysyła wyniki, także wformie krotek. Ponieważ każdy proces komunikuje się jedynie z otaczającą go przestrzenią,więc nie musi nic wiedzieć o istnieniu innych procesów (nie musi w ogóle znać ich nazw). Dokomunikacji z przestrzenią krotek służą operacje: INPUT, OUTPUT, READ, TRY_INPUT,TRY_READ.7.1.2 Operacja INPUTPobieranie krotek z przestrzeni realizuje się za pomocą operacji INPUT. Jejparametrami są nazwy zmiennych z podanymi typami (w p. 7.1.4 podamy jeszcze innemożliwości). W wyniku wykonania tej operacji z przestrzeni jest pobierana krotka o sygnaturzezgodnej z sygnaturą ciągu parametrów tej operacji. Tak więc do pobrania krotki (5, 3.14, true,'c', 20) można użyć następującej operacji:INPUT(i:integer, r:real, b:boolean, c:char, j:integer).182

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!