Maszyna Pawlaka

Z Wikipedii, wolnej encyklopedii
Maszyna Pawlaka; F - taśma, A i S - głowica, D - dane, W - wyniki cząstkowe

Maszyna Pawlaka – teoretyczny automat wykonujący obliczenia podane liniowo zaprojektowany przez Zdzisława Pawlaka.

Budowa automatu[edytuj | edytuj kod]

Automat posiada głowicę (A i S) przesuwającą się po taśmie F, która to taśma zawiera informacje o danych (czy dana jest podana na wejściu, czy też jest wynikiem cząstkowym). Poza tym składa się na pamięć danych (D) oraz pamięć wyników cząstkowych (W).

Opis języka[edytuj | edytuj kod]

Język uproszczony[edytuj | edytuj kod]

Język uproszczony symbolizuje jakie działania mają zostać przez automat kolejno wykonane, bez konieczności wpisywania poszczególnych danych. Δ oznacza daną początkową. * symbolizuje wynik cząstkowy, otrzymany z wcześniejszych obliczeń. +,-,•,/ reprezentują działania, które mają być wykonane przez automat.

Kolejność obliczeń[edytuj | edytuj kod]

Zdzisław Pawlak obliczenia przedstawił w formie drzewa, którego węzły reprezentują działania, zaś gałęzie dane i wyniki cząstkowe. Proponowane są dwa porządki przejścia przez drzewo, które nazwane zostały W i P.

porządek W (wzdłużny)[edytuj | edytuj kod]

Działania wykonujemy poruszając się wzdłuż gałęzi. Rozpoczynamy od najniższej gałęzi po prawej stronie drzewa i wykonujemy obliczenia. Następnie przesuwamy się w górę drzewa. Jeżeli nie możemy wykonać obliczeń, ponieważ brakuje nam danych, przesuwamy się do dołu gałęzi z lewej strony. Wykonujemy obliczenia aż do uzyskania wyniku końcowego.

porządek P (poprzeczny)[edytuj | edytuj kod]

Działania wykonujemy poruszając się poziomami drzewa, zaczynając od najniższego. W wypadku wystąpienia na jednym poziomie drzewa większej ilości zadań rozpoczynamy od lewej strony drzewa. Następnie przechodzimy do poziomu wyższego aż osiągniemy wynik końcowy.

Działanie maszyny[edytuj | edytuj kod]

Przykład obliczeń maszyny Pawlaka zapisanych w formie drzewa.

Schemat maszyny jest niezmienny zależnie od porządku obliczeń, jednakże sposób umieszczania i wykorzystywania wyników cząstkowych jest różny.

Działanie dla porządku P[edytuj | edytuj kod]

Na początku analizowany jest symbol wykonywanego działania oraz symbole obu argumentów. Kolejne argumenty są pobierane z pamięci danych D lub pamięci wyników częściowych W, w zależności jakim symbolem jest oznaczony argument. Następnie przeprowadzane jest działanie, a wynik zapisywany jest na końcu pamięci wyników częściowych W. Ostatnim uzyskanym wynikiem jest wynik końcowy.

Działanie dla porządku W[edytuj | edytuj kod]

Działanie dla porządku W różni się od porządku P jedynie innym sposobem pobierania i zapisywania wyników częściowych. Jeżeli oba argumenty są danymi początkowymi to pobierane są kolejne dane z pamięci danych D, a wynik działania zapisywany jest na pierwszym wolnym miejscu w pamięci wyników częściowych W. Jeżeli jednym argumentem jest dana początkowa, a drugim wynik częściowy, to dana jest pobierana z kolejnego miejsca pamięci danych D, a drugim argumentem jest ostatnio zapisany wynik częściowy. Liczba odczytana z pamięci wyników częściowych jest po odczytaniu zawsze usuwana, więc wynik działania jest zapisywany na miejscu uprzednio odczytanego argumentu. Jeżeli oba argumenty są pobierane z pamięci wyników częściowych W, to pobierane są ostatnie dwie liczby, a wynik zapisywany jest na miejscu przedostatniej.

Przykłady działania[edytuj | edytuj kod]

Przykład dla porządku P[edytuj | edytuj kod]

10 – 3 = 7

2 • 3 = 6

7 + 7 = 14

1 • 2 = 2

9 – 6 = 3

4 • 8 = 32

14 / 2 = 7

3 + 32 = 35

7 + 35 = 42

Zakładając, że symbol operacji zapiszemy po odpowiadających mu argumentach, obliczenia można zapisać za pomocą liniowego przedstawienia: 10,3,-,2,3,•,7,7,+,1,2,•,9,6,-,4,8,•,14,2/,3,32,+,7,35,+,42 Co w języku uproszczonym ma postać: ΔΔ-ΔΔ•*Δ+ΔΔ•Δ*-ΔΔ•**/**+**+*

Przykład dla porządku W[edytuj | edytuj kod]

4 • 8 = 32

2 • 3 = 6

9 – 6 = 3

3 + 32 = 35

1 •2 = 2

10 – 3 = 7

7 + 7 = 14

14 / 2 = 7

7 + 35 = 42

Zakładając, że symbol operacji zapiszemy po odpowiadających mu argumentach, obliczenia można zapisać za pomocą liniowego przedstawienia: 4,8,•,2,3,•,9,6,-,3,32,+,1,2,•,10,3,-,7,7,+,14,2,/,7,35,+,42 Co w języku uproszczonym ma postać: ΔΔ•ΔΔ•Δ*-**+ΔΔ•ΔΔ-*Δ+**/**+*

Bibliografia[edytuj | edytuj kod]

Linki zewnętrzne[edytuj | edytuj kod]