Translator języka ALGOL-1204M: Różnice pomiędzy wersjami

Przejdź do nawigacji Przejdź do wyszukiwania
brak opisu edycji
Nie podano opisu zmian
 
(Nie pokazano 2 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 14: Linia 14:
== Uwagi dla czytelnika ==
== Uwagi dla czytelnika ==


Przyjmujemy, że czytelnik zna międzynarodowy język algorytmiczny ALGOL 60 w zakresie ogólnie dostępnej książki:
Przyjmujemy, że czytelnik zna międzynarodowy język algorytmiczny ALGOL 60 w zakresie ogólnie dostępnej książki: ''Język ALGOL 60'', Stefan Paszkowski, Wydanie drugie poprawione i uzupełnione, Warszawa 1968. PWN. Z tego powodu omawiamy tylko sprawy specyficzne dla konkretnej reprezentacji ALGOLu dla maszyny Mera-400. Niniejszy tekst dotyczy translatorów wersji A i B opracowanych dla minikomputera Mera 400, pracujących pod kontrolą systemu operacyjnego CROOK-4.
 
Język ALGOL 60, Stefan Paszkowski, Wydanie drugie poprawione i uzupełnione, Warszawa 1968. PWN.
 
z tego powodu omawiamy tylko sprawy specyficzne dla konkretnej reprezentacji ALGOLu dla maszyny Mera-400. Niniejszy tekst dotyczy translatorów wersji A i B opracowanych dla minikomputera Mera 400, pracujących pod kontrolą systemu operacyjnego CROOK-4.


== Związek ALGOLu-1204M z językiem ALGOL-60 ==
== Związek ALGOLu-1204M z językiem ALGOL-60 ==
Linia 309: Linia 305:
Podczas pracy programów użytkowych mogą zajść nieprzewidziane okoliczności (np. obliczanie pierwiastka z liczby ujemnej, brak pamięci itp.). Jeżeli wystąpi błąd w pracy programu i ten błąd zostanie wykryty przez program, wówczas na monitorze drukowany jest komunikat o tym błędzie. Po wykryciu błędu program zatrzymuje się i czeka na interwencję operatora. Istnieją możliwości wznowienia pracy programu przy pomocy zleceń "GO" oraz "SKIP". W powyższym wykazie drukowanych komunikatów jest podana przyczyna błędu oraz sposób postępowania operatora.
Podczas pracy programów użytkowych mogą zajść nieprzewidziane okoliczności (np. obliczanie pierwiastka z liczby ujemnej, brak pamięci itp.). Jeżeli wystąpi błąd w pracy programu i ten błąd zostanie wykryty przez program, wówczas na monitorze drukowany jest komunikat o tym błędzie. Po wykryciu błędu program zatrzymuje się i czeka na interwencję operatora. Istnieją możliwości wznowienia pracy programu przy pomocy zleceń "GO" oraz "SKIP". W powyższym wykazie drukowanych komunikatów jest podana przyczyna błędu oraz sposób postępowania operatora.


* END - program wykonano do końca.
* <tt>END</tt> - program wykonano do końca.
* ARC - błąd przy obliczeniu wartości funkcji arc sin lub arc cos. Zlecenie "SKIP" powoduje nadanie funkcji wartości 0.0 i kontynuowanie obliczeń.
* <tt>ARC</tt> - błąd przy obliczeniu wartości funkcji arc sin lub arc cos. Zlecenie "SKIP" powoduje nadanie funkcji wartości 0.0 i kontynuowanie obliczeń.
* EXP - parametr aktualny funkcji exp ma wartość zbyt dużą. Zlecenie "SKIP" powoduje nadanie funkcji wartości 0.0 i kontynuowanie obliczeń.
* <tt>EXP</tt> - parametr aktualny funkcji exp ma wartość zbyt dużą. Zlecenie "SKIP" powoduje nadanie funkcji wartości 0.0 i kontynuowanie obliczeń.
* EXPONENTATION - wynik potęgowania nie jest określony.
* <tt>EXPONENTATION</tt> - wynik potęgowania nie jest określony.
* LN - parametr aktualny funkcji nie jest dodatni. Zlecenie "SKIP" powoduje nadanie funkcji wartości0 i kontynuowanie obliczeń.
* <tt>LN</tt> - parametr aktualny funkcji nie jest dodatni. Zlecenie "SKIP" powoduje nadanie funkcji wartości0 i kontynuowanie obliczeń.
* SQRT - parametr aktualny funkcji sqrt jest ujemny. Zlecenie "SKIP" powoduje nadanie funkcji wartości 0.0 i kontynuowanie obliczeń.
* <tt>SQRT</tt> - parametr aktualny funkcji sqrt jest ujemny. Zlecenie "SKIP" powoduje nadanie funkcji wartości 0.0 i kontynuowanie obliczeń.
* TRIG - błąd przy obliczaniu wartości funkcji sin, cos lub tan. Zlecenie "SKIP " powoduje nadanie funkcji wartości 0.0 i kontynuowanie obliczeń.
* <tt>TRIG</tt> - błąd przy obliczaniu wartości funkcji sin, cos lub tan. Zlecenie "SKIP " powoduje nadanie funkcji wartości 0.0 i kontynuowanie obliczeń.
* BOUND PAIR
* <tt>BOUND PAIR</tt>
** w wykazie par granicznych granica dolna jest większa od granicy górnej
** w wykazie par granicznych granica dolna jest większa od granicy górnej
** w opisie tablic z mianem OWN wykaz par granicznych zawiera więcej niż 10 par granicznych.
** w opisie tablic z mianem OWN wykaz par granicznych zawiera więcej niż 10 par granicznych.
* FORMAT - błędne S w wykonywanej instrukcji format(s). zlecenie "GO" powoduje wykonanie na monitorze print(s) i ponowne zatrzymanie, a zlecenie "SKIP" powoduje wykonanie instrukcji format i kontynuację obliczeń.
* <tt>FORMAT</tt> - błędne S w wykonywanej instrukcji format(s). zlecenie "GO" powoduje wykonanie na monitorze print(s) i ponowne zatrzymanie, a zlecenie "SKIP" powoduje wykonanie instrukcji format i kontynuację obliczeń.
* IO PARAETER - błędna wartość parametru aktualnego procedury wejścia lub wyjścia np. setinput(-1) lub outchar(120).
* <tt>IO PARAETER</tt> - błędna wartość parametru aktualnego procedury wejścia lub wyjścia np. setinput(-1) lub outchar(120).
* RI CONVERSION - niewykonalna zmiana z typu {r{e{a{l na typ {i{n{t{e{g{e{r.
* <tt>RI CONVERSION</tt> - niewykonalna zmiana z typu {r{e{a{l na typ {i{n{t{e{g{e{r.
* SPACE OVERFLOW - brak miejsca w pamięci (zbyt duża tablica albo zbyt wiele jednocześnie czynnych procedur).
* <tt>SPACE OVERFLOW</tt> - brak miejsca w pamięci (zbyt duża tablica albo zbyt wiele jednocześnie czynnych procedur).
* SUBSCRIPT - liczba wskaźników przy zmiennej nie jest równa.
* <tt>SUBSCRIPT</tt> - liczba wskaźników przy zmiennej nie jest równa.
* NUMBER - błąd w czytanej liczbie. Zlecenie "SKIP" powoduje rozpoczęcie procesu czytania liczby od początku.
* <tt>NUMBER</tt> - błąd w czytanej liczbie. Zlecenie "SKIP" powoduje rozpoczęcie procesu czytania liczby od początku.
* PARAMETER LIST
* <tt>PARAMETER LIST</tt>
** lista parametrów aktualnych nie jest równa liczbie parametrów formalnych;
** lista parametrów aktualnych nie jest równa liczbie parametrów formalnych;
** typ lub rodzaj parametru aktualnego nie jest zgodny ze specyfikacją odpowiedniego paraetru formalnego.
** typ lub rodzaj parametru aktualnego nie jest zgodny ze specyfikacją odpowiedniego paraetru formalnego.
* STRING - czytany łańcuch nie mieści się w tablicy.
* <tt>STRING</tt> - czytany łańcuch nie mieści się w tablicy.
* TRANSLATE PROGRAM - żądanie przetłumaczenia programu.
* <tt>TRANSLATE PROGRAM</tt> - żądanie przetłumaczenia programu.
* SUBSCRIPT
* <tt>SUBSCRIPT</tt>
** lista wskaźników przy zmiennej nie jest równa liczbie par granicznych w opisie odpowiedniej tablicy;
** lista wskaźników przy zmiennej nie jest równa liczbie par granicznych w opisie odpowiedniej tablicy;
** wartość wskaźnika nie należy do przedziału określonego odpowiednią parą graniczną;
** wartość wskaźnika nie należy do przedziału określonego odpowiednią parą graniczną;
Linia 412: Linia 408:


Opcja '''?OML''' - zapalona określa małe i duże litery, natomiast zapalona opcja '''?ODL''' - oznacza konwersję tylko na duże litery. Standardowo wejście jest określone jako czytnik taśmy papierowej i nazwa tego urządzenia brzmi TR2. Urządzenie te musi być utworzone procedurą instalującą kompilator Algolu lub posiadać parametry PA1 i PA 2 odpowiednie.
Opcja '''?OML''' - zapalona określa małe i duże litery, natomiast zapalona opcja '''?ODL''' - oznacza konwersję tylko na duże litery. Standardowo wejście jest określone jako czytnik taśmy papierowej i nazwa tego urządzenia brzmi TR2. Urządzenie te musi być utworzone procedurą instalującą kompilator Algolu lub posiadać parametry PA1 i PA 2 odpowiednie.
{{source|title=Translator języka ALGOL-1204M dla minikomputera MERA-400 w systemie operacyjnym CROOK-4 (wersja-6/A) - Translator-TA4|author=Janusz Gocałek, Jacek Klauziński, Ryszard Zenker|date=Poznań 1986}}

Menu nawigacyjne