<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mera400.pl/index.php?action=history&amp;feed=atom&amp;title=CSL-CROOK_-_Dyrektywy_steruj%C4%85ce</id>
	<title>CSL-CROOK - Dyrektywy sterujące - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mera400.pl/index.php?action=history&amp;feed=atom&amp;title=CSL-CROOK_-_Dyrektywy_steruj%C4%85ce"/>
	<link rel="alternate" type="text/html" href="https://mera400.pl/index.php?title=CSL-CROOK_-_Dyrektywy_steruj%C4%85ce&amp;action=history"/>
	<updated>2026-05-01T11:17:40Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://mera400.pl/index.php?title=CSL-CROOK_-_Dyrektywy_steruj%C4%85ce&amp;diff=1070&amp;oldid=prev</id>
		<title>Amo: Utworzono nową stronę &quot;Przed rozpoczęciem analizy niniejszego rozdziału, użytkownik powinien zapoznać się z opisem Systemu Operacyjnego CROOK-4, kładąc szczególny nacisk na opis Język...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mera400.pl/index.php?title=CSL-CROOK_-_Dyrektywy_steruj%C4%85ce&amp;diff=1070&amp;oldid=prev"/>
		<updated>2013-08-31T14:28:14Z</updated>

		<summary type="html">&lt;p&gt;Utworzono nową stronę &amp;quot;Przed rozpoczęciem analizy niniejszego rozdziału, użytkownik powinien zapoznać się z opisem Systemu Operacyjnego CROOK-4, kładąc szczególny nacisk na opis Język...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Przed rozpoczęciem analizy niniejszego rozdziału, użytkownik powinien zapoznać się z opisem Systemu Operacyjnego CROOK-4, kładąc szczególny nacisk na opis Języka Operatora OSL.&lt;br /&gt;
&lt;br /&gt;
Program w języku CSL składa się z segmentu głównego oraz podprogramów. Wszystkie te segmenty są poddawane obróbce przez translator, który dokonuje tłumaczenia instrukcji CSL na instrukcje języka FORTRAN. Kopiuje bez zmiany instrukcje wstępnie przetłumaczone zapisane w języku FORTRAN. Do realizacji tłumaczenia programu niezbędne są dwa zestawy dyrektyw sterujących:&lt;br /&gt;
&lt;br /&gt;
* dyrektywy sterujące translatorem CSL,&lt;br /&gt;
* dyrektywy sterujące kompilatorem FORTRANU.&lt;br /&gt;
&lt;br /&gt;
= Opis dyrektyw translatora CSL =&lt;br /&gt;
&lt;br /&gt;
Translator jest wyposażony w dyrektywy. Służą one do sterowania pracą translatora oraz ustawiają odpowiednie opcje dla programów wynikowych. Każda dyrektywa musi mieścić się w jednym wierszu i rozpoczynać się od pierwszej kolumny wiersza. Nazwa dyrektywy jest poprzedzona znakiem &amp;quot;#&amp;quot;, który wyróżnia je od instrukcji w języku CSL. Niektóre dyrektywy, jako swój parametr, zawierają tytuł zbioru. Tytuł zbioru składa się z trzech elementów: Nazwy obszaru, nazwy skorowidza i nazwy zbioru. Poszczególne elementy mogą być puste. Brak nazwy skorowidza powoduje ,że zbiór jest szukany począwszy od skorowidza aktualnego w kolejnych skorowidzach nadrzędnych. Brak nazwy obszaru powoduje, że zbiór jest szukany kolejno na wszystkich dostępnych przy danym skorowidzu obszarach.&lt;br /&gt;
&lt;br /&gt;
Poszczególne dyrektywy mają następujące znaczenie:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;#LIS (?LIS)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Dyrektywa powoduje, że translator wyprowadza w trakcie translacji na monitor lub do wskazanego przez użytkownika zbioru, wszystkie segmenty w języku CSL łącznie z instrukcjami sterującymi i informacjami o błędach;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;#SLI (?SLI)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Użycie tej dyrektywy spowoduje wydrukowanie na monitorze lub do wskazanego przez użytkownika zbioru, listę nazw zmiennych użytych w programie CSL-owskim i odpowiadających im nazw zmiennych w programie wygenerowanym przez translator (zmienne w języku FORTRAN);&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;#FLI (?FLI)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Dyrektywa ta, jedna z trzech opcji listingu, ma za zadanie listowanie na monitorze lub do wskazanego przez użytkownika zbioru, wszystkich kompilowanych segmentów programu wraz z informacją o istniejących błędach oraz pełną listą  nazw zmiennych występujących w programie CSL-owskim i odpowiadającym im zmiennym w wygenerowanym programie. Listowane są również instrukcje sterujące i komunikaty translatora;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;#COM&amp;#039;&amp;#039;&amp;#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;#NOC (?NOC)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Translator języka CSL zezwala na translację  programów w dwóch stanach:&lt;br /&gt;
:* stan COMPILE, w którym odbywa się  generowanie programu pośredniego w języku FORTRAN;&lt;br /&gt;
:* stan NOCOMPILE (testujący), w którym odbywa się jedynie analiza poprawności programu źródłowego;&lt;br /&gt;
: Ustawienie odpowiedniego stanu translacji dokonuje się wyżej opisanymi dyrektywami. Standardowo translator ustawiony jest w stan COMPILE. Zmiany stanu można dokonać w programie przez użycie dyrektywy zmieniającej stan translacji na przeciwny. Zmiana stanu COMPILE na testujący (NOCOMPILE) jest dokonywana automatycznie w trakcie translacji w momencie wykrycia przez translator błędu w programie;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;#SYS&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Dyrektywa umożliwia przejście na nasłuch zleceń systemu operacyjnego CROOK-4;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;#TRA (?TRA)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Użycie tej dyrektywy spowoduje wygenerowanie dyrektywy fortranowskiej #OPT z zapaloną opcją TRA i ARR. Opcja ta służy do śledzenia programów binarnych, oraz kontroli przekroczenia rozmiarów tablic;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;UWAGA:&amp;#039;&amp;#039;&amp;#039; Standardowo translator ma zapalone następujące opcje:&lt;br /&gt;
* opcja COMPILE;&lt;br /&gt;
* opcje NLIST, NSLI, NFLI;&lt;br /&gt;
&lt;br /&gt;
= Dyrektywy kompilatora FORTRAN =&lt;br /&gt;
&lt;br /&gt;
Program w języku FORTRAN-CROOK otrzymany w wyniku translacji translatorem XCSL będzie ponownie tłumaczony przez kompilator języka FORTRAN XFOR. Użytkownik musi jednak przewidzieć  podanie niezbędnych dyrektyw sterujących sposobem przeprowadzenia kompilacji i wykonania danego programu. Instrukcje te mogą być wprowadzone oddzielnie w trakcie kompilacji w FORTRANIE lub mogą występować w oryginalnym programie CSL. W tym ostatnim przypadku muszą być poprzedzone znakiem &amp;quot;*&amp;quot; w kolumnie 1. Są one następnie kopiowane bezpośrednio do programu wynikowego, z tym że znak &amp;quot;*&amp;quot; zostaje zamieniony na znak &amp;quot;#&amp;quot;, od którego zaczynają  się wszystkie dyrektywy w FORTRANIE.&lt;br /&gt;
&lt;br /&gt;
Instrukcje z &amp;quot;*&amp;quot; powinny występować przed pierwszym segmentem programu lub pomiędzy segmentami. Dyrektywy podstawowe takie jak &amp;#039;&amp;#039;&amp;#039;#FORTRAN&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;#END&amp;#039;&amp;#039;&amp;#039; oraz dyrektywa &amp;#039;&amp;#039;&amp;#039;#LIB (CSLLIB)&amp;#039;&amp;#039;&amp;#039; pozwalająca przyłączyć bibliotekę podstawową dla języka CSL, są już wygenerowane przez translator CSL.&lt;br /&gt;
&lt;br /&gt;
Kompilator XFOR jest wyposażony w dyrektywy. Służą one do sterowania pracą kompilatora oraz ustawiają odpowiednie opcje dla programów wynikowych. Każda dyrektywa musi mieścić się w jednym wierszu i rozpoczynać się od pierwszej kolumny wiersza. Nazwa dyrektywy jest poprzedzona znakiem &amp;quot;#&amp;quot;, który wyróżnia je od instrukcji fortranowskich. Wszystkie dyrektywy oraz opcje mogą  być podawane kompilatorowi pełną nazwą lub trzyliterowe (analizowane są trzy pierwsze znaki) bez spacji np. &amp;#039;&amp;#039;&amp;#039;#OPTION&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;#OPT&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;#FOR&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;LIS&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;ARR&amp;#039;&amp;#039;&amp;#039;, itp. Niektóre dyrektywy, jako swój parametr, zawierają tytuł zbioru.&lt;br /&gt;
&lt;br /&gt;
Poszczególne dyrektywy mają następujące znaczenie:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;*FOR[TRAN]&amp;#039;&amp;#039;&amp;#039; &amp;lt;tt&amp;gt;[&amp;lt;komentarz&amp;gt;]&amp;lt;/tt&amp;gt;&lt;br /&gt;
: Dyrektywa wskazuje kompilatorowi początek programu w języku FORTRAN. Musi ona wystąpić jako ostatnia ze wszystkich dyrekyw (jeśli występują) przed pierwszym analizowanym przez kompilator segmentem napisanym w Fortranie.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;*END&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
: Dyrektywa kończy translowany program. Wraz z dyrektywą &amp;#039;&amp;#039;&amp;#039;*FORTRAN&amp;#039;&amp;#039;&amp;#039; tworzy parę ograniczającą program fortranowski. Występuje ona jako ostatnia w programie. Po wystąpieniu tej dyrektywy kompilator kończy analizę  wierszy fortranowskich oraz kończy swoją pracę i wyprowadza komunikat &amp;lt;tt&amp;gt;END OF COMPILATIN - NO ERRORS&amp;lt;/tt&amp;gt; jeżeli nie było błędów. Jeżeli były to podaje liczbę błędów.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;*LIB[RAR]&amp;#039;&amp;#039;&amp;#039; &amp;lt;tt&amp;gt;(&amp;lt;TZ&amp;gt;)&amp;lt;/tt&amp;gt;&lt;br /&gt;
: Dyrektywa umożliwia dołączenie do programu, dowolnego, napisanego w języku Assembler (ASSM) programu określonego przez tytuł zbioru. Pozwala na dołączanie dowolnych bibliotek napisanych w Assemblerze. Zbiory określone przez dyrektywę  są dołączane po translacji Fortranem programu zawierającego dyrektywę, a przed dołączeniem bibliotek systemowych, standardowych. W programie może wystąpić max-10 dyrektyw &amp;#039;&amp;#039;&amp;#039;*LIB&amp;#039;&amp;#039;&amp;#039;. Poz wala na to użytkownikowi dołączenie dziesięciu różnych bibliotek, lub zbiorów.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;*OVL&amp;#039;&amp;#039;&amp;#039; &amp;lt;tt&amp;gt;(&amp;lt;p1&amp;gt;,&amp;lt;p2&amp;gt;)&amp;lt;/tt&amp;gt;&lt;br /&gt;
: Dyrektywa ta umożliwia nakładkowanie programów fortranowskich. Pojawienie się tej dyrektywy w tekście oznacza początek nakładki. Wstąpienie następnej dyrektywy &amp;#039;&amp;#039;&amp;#039;*OVL&amp;#039;&amp;#039;&amp;#039; jest zarazem końcem poprzedniej (zadeklarowanej) nakładki jak i początkiem nowej nakładki. Parametr &amp;lt;tt&amp;gt;&amp;lt;p1&amp;gt;&amp;lt;/tt&amp;gt; określa poziom nakładki natomiast parametr &amp;lt;tt&amp;gt;&amp;lt;p2&amp;gt;&amp;lt;/tt&amp;gt; oznacza numer nakładki danego poziomu.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;*DEF[INE FILE]&amp;#039;&amp;#039;&amp;#039; &amp;lt;tt&amp;gt;(&amp;lt;numer strumienia&amp;gt;, &amp;lt;długość rekordu&amp;gt;)&amp;lt;/tt&amp;gt;&lt;br /&gt;
: Dyrektywa służy do zdefiniowania zbiorów binarnych bezpośredniego dostępu. &amp;lt;tt&amp;gt;&amp;lt;numer strumienia&amp;gt;&amp;lt;/tt&amp;gt; określa numer strumienia, z którym skojarzony jest definiowany zbiór binarny o dostępie bezpośrednim. Numer strumienia jest liczbą całkowitą bez znaku z zakresu od 30-50. Umożliwia to jednocześnie zdefiniowania w programie 20 zbiorów binarnych; &amp;lt;tt&amp;gt;&amp;lt;długość rekordu&amp;gt;&amp;lt;/tt&amp;gt; - liczba całkowita bez znaku określająca długość rekordu w słowach. Przekraczać 255 słów;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;*OPT[IONS]&amp;#039;&amp;#039;&amp;#039; &amp;lt;tt&amp;gt;(&amp;lt;wykaz opcji&amp;gt;)&amp;lt;/tt&amp;gt;&lt;br /&gt;
: Dyrektywa umożliwia włączenie i wyłączenie opcji sterujących pracą kompilatora. W dyrektywie może wystąpić kilka opcji jednocześnie, które powinny być oddzielone przecinkiem. Dla dokonania wyłączenia określonej opcji jej nazwa jest poprzedzona literą &amp;quot;N&amp;quot;. Dyrektywa może znajdować się tylko między segmentami programu.&lt;br /&gt;
: Wykaz opcji:&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;LIS[T]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Opcja wyprowadzania listingu programu w czasie kompilacji, wraz z sygnalizacją błędów (jeśli wystąpiły) oraz informacją o skompilowanych segmentach. Listing programu w czasie kompilacji zawiera numerację wszystkich czynnych linii fortranowskich. Numeracja rozpoczyna się od zera (0). Pierwsza instrukcja czynna w programie (zawsze tą instrukcją jest słowo &amp;#039;&amp;#039;&amp;#039;MASTER&amp;#039;&amp;#039;&amp;#039;), posiada numer linii równy zero (0). Następne linie w programie są numerowane kolejno (wzrastająco). Nie numerowane są linie komentarza, linie rozpoczynające się od znaku &amp;quot;&amp;amp;&amp;quot; (linie kontynuacji) oraz linie zawierające dyrektywy kompilatora.&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;SLI[ST]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Opcja skróconego listingu programu w czasie kompilacji. Jeżeli zapalona jest opcja ?SLI to podawane są  informacje jedynie o skompilowanych segmentach programu oraz (jeżeli wystąpiły błędy) drukowana jest błędna linia fortranowska i numer błędu. Jeżeli opcja jest zgaszona to nie są podawane żadne informacje o przebiegu kompilacji; (jeżeli wcześniej nie została zapalona opcja ?LIS).&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;NLI[ST]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Opcja powoduje zgaszenie opcji LIST, jeśli była uprzednio zapalona. Powoduje ona drukowanie jedynie informacji o skompilowanych segmentach i błędach.&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;COM[PILE]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Opcja powoduje sprawdzenie poprawności programu źródłowego fortranowskiego. Jednocześnie przy zapalonej opcji, kompilator generuje kod w postaci rozkazów w języku symbolicznym ASSEMBLER (ASSM). Generacja kodu odbywa się tylko do momentu wystąpienia pierwszego błędu w programie. Natomiast w dalszym ciągu kompilacji odbywa się tylko analiza poprawności pozostałej części programu, wraz z sygnalizacją (jeśli wystąpiły) błędów. Po zakończeniu analizy programu, kompilator informuje odpowiednim wydrukiem o globalnej ilości błędów w programie.&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;NCO[MPILE]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Opcja powoduje zgaszenie opcji COMPILE. Kompilator dokonuje tylko analizę poprawności programu z wydrukiem informacji o skompilowanych segmentach i błędach (jeżeli wystąpiły). Kompilator nie generuje żadnych kodów.&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;ARR[AY]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Opcja włącza do programu wynikowego (binarnego) procedury kontroli przekroczenia zakresów tablic.&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;TRA[CE]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Opcja dołącza do programu wynikowego (binarnego) procedurę śledzenia programu.&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;NTR[ACE]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Opcja wyłącza śledzenie programu. Wyłączanie opcji TRACE umożliwia śledzenie tylko wybranych segmentów programu. Wymagane jest jednak to, aby przy tego typu działaniach pojawiła się dyrektywa *OPT na początku programu z zapaloną opcją TRACE, a następnie można ją gasić i zapalać w dowolnych miejscach programu lecz tylko między segmentami. Niedozwolone jest użycie tej opcji wewnątrz segmentów.&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;IFC[OMPILE]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Opcja uruchomienia kompilacji warunkowej. Wiersze rozpoczynające się znakiem waluty &amp;quot;$&amp;quot; (instrukcje testujące) są analizowane przez kompilator jedynie wtedy, gdy przy jego uruchomieniu zapalona była opcja IFCOMPILE. Jeżeli opcja jest zgaszona to kompilator traktuje instrukcje testujące jak wiersze komentarza;&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;POI[NTER]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Opcja tworzenia programów konwersacyjnych. W wyniku zapalenia tej opcji nie wyprowadzany jest na monitor użytkownika znak zgłoszenia programu  &amp;quot;&amp;gt;&amp;quot;. Instrukcja &amp;#039;&amp;#039;&amp;#039;READ&amp;#039;&amp;#039;&amp;#039; przed rozpoczęciem operacji czytania nie generuje znaków LF/CR (zmiana linii).&lt;br /&gt;
: &amp;#039;&amp;#039;&amp;#039;OVL&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
:: Zapalona opcja pozwala na wykonanie kompilacji programów fortranowskich, które będą nakładkowane. Opcja powoduje wygenerowanie przez kompilator rozkazów niezbędnych do właściwego funkcjonowania nakładkowania.&lt;br /&gt;
&lt;br /&gt;
{{source|title=Translator języka CSL-CROOK dla minikomputera MERA-400 w systemie operacyjnym CROOK-4, Instrukcja Programisty (wersja-17/2)|author=Janusz Gocałek, Jacek Klauziński|date=Poznań, 1985}}&lt;/div&gt;</summary>
		<author><name>Amo</name></author>
	</entry>
</feed>