Maszyna Pawlaka
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]
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]
- Pawlak Zdzisław, Maszyna i język (http://bcpw.bg.pw.edu.pl/dlibra/docmetadata?id=1681&from=pubindex&dirids=1&lp=1029)[dostęp 19.01.2020r.]
- Pawlak Zdzisław, Organizacja maszyn bezadresowych (http://bcpw.bg.pw.edu.pl/dlibra/docmetadata?id=1682&from=&dirids=1&ver_id=&lp=7&QI=)[dostęp 19.01.2020r.]
Linki zewnętrzne[edytuj | edytuj kod]
- http://bcpw.bg.pw.edu.pl/Content/2327/ZP_biblio.html
- ISBN 83-7143-428-6 (książka wydana przez Politechnikę Poznańską, z okazji nadania Zdzisławowi Pawlakowi tytułu Doktora Honoris Causa)