POPIS OVLÁDÁNÍ ÚVOD Tato příručka s názvem "MX COBOL v operačním systému MS-DOS" je doplňkem příručky "MX COBOL popis jazyka" a z hlediska používání překladače MX COBOL v operačním prostředí MS-DOS je nezbytné se s ní seznámit. V kapitole 1 je uveden popis instalace překladače MX COBOL z distribučních disket do operačního systému, kapitola 2 obsahuje podrobný popis překladu cobolského programu a popis spojování jednotlivých programů do výsledného spustitelného programu. V kapitole 3 uživatel najde popis podpůrného ladícího prostředku nazvaného Animátor, který umožňuje ladění uživatelských cobolských programů podobným způsobem, který je známý z nejrůznějších ladících systémů. Poslední 4.kapitola obsahuje přehled chybových hlášení překladače a seznam dynamických chybových hlášení. Překladač MX COBOL byl vytvořen tak, aby umožňoval překlad syntakticky správných zdrojových programů psaných v jazyce COBOL DOS-3/JS beze změn anebo jen s minimálními změnami. Je tedy možné konstatovat, že překladač MX COBOL je jakýmsi pokračovatelem překladače COBOL DOS-3/JS s tím, že byla snaha dodržet co největší kompatibilitu na úrovni zdrojového cobolského textu v rámci nového operačního prostředí. Překladač MX COBOL pracuje tak, že zdrojový cobolský program překládá do jazyka C. Takto vzniklý program v jazyce C je nutné dále přeložit kompilátorem jazyka C. Pro operační systém MS-DOS byl zvolen systém TURBO C firmy Borland, který je využit rovněž pro sestavení výsledného spustitelného programu. Konkrétně se využívá řádková verze překladače s názvem TCC. Je tedy nutné, aby uživatel vlastnil systém TURBO C a před zahájením vlastní práce s překladačem MX COBOL ho měl nainstalován na pevném disku. 1. INSTALACE MX COBOL 1.1. Průběh instalace ***** dále uvedený text neplatí ***** (Jde o původní popis instalace KS Brno, který byl v rámci kompletu MC Cobol + VPC/MX s on-line dokumentací nahrazen novým - viz příručka VPC a on-line nápověda programů INSTALMX a INSTAL, postup instalace je tedy jiný, ale popis konfiguračních souborů platí). MX COBOL je distribuován uživatelům na dvou distribučních disketách formátovaných na 360 KB. Před zahájením vlastní práce s překladačem MX COBOL je nutné provést jeho instalaci z originálních distribučních disket na pevný disk. Instalaci lze provádět z libovolného disketového zařízení na libovolný pevný disk s podmínkou, že je přístupný ROOT adresář na zařízení C pro zápis tzv. konfiguračního souboru MX COBOLu. Popíšeme nyní vlastní průběh instalace MX COBOL: 1) Vložte do libovolné disketové mechaniky distribuční disketu číslo 1 a vyvolejte instalační program INSTALL, který je na ní uložen. Průběh instalace bude řízen tímto instalačním programem, který od Vás formou dotazů získá potřebné informace. 2) Instalační program si od Vás nejprve vyžádá: - identifikaci disketové mechaniky s instalační disketou, - úplné jméno adresáře na pevném disku, do kterého budou umístěny všechny komponenty MX COBOL (např. C:\COBOL), - úplné jméno adresáře na pevném disku, ve kterém je k dispozici systém TURBO C (např. C:\TC). - informaci, zda Vaše PC obsahuje matematický koprocesor. Na základě těchto informací instalační program vytvoří v adresáři C:\ tzv. konfigurační soubor MXCOB.CFG, kde bude mít MX COBOL uloženy informace o tom, v jakém adresáři jsou uloženy komponenty MX COBOL a v jakém adresáři je k dispozici překladač jazyka TURBO C a jeho spojovací program. Tyto informace jsou pro MX COBOL nezbytné a v průběhu práce s MX COBOLem musí být konfigurační soubor MXCOB.CFG neustále přítomen v adresáři C:\. 3) Pokud instalace konfiguračního souboru proběhne úspěšně, instalační program pokračuje nahráváním jednotlivých komponent MX COBOLu. Postupně jsou z instalačních disket do cobolského adresáře, který nemusí předem existovat, nahrávány následující komponenty: - MXC.EXE je řídicí program (driver), který zabezpečuje celý proces řízení překladů a sestavení cobolských programů. - MXCMSG.EXE je pomocný program, který po překladu cobolského zdrojového programu na základě zjištěných syntaktických chyb provede výpis chybových resp. varovných textů. - MXCDBX.EXE je program pro účely animátoru. - BLDIND.EXE je program na vytváření sekundárních indexů. - MXCER.ERR je soubor obsahující texty pro dynamické chyby, které mohou nastat v průběhu výpočtu. - MXCLIB.LIB je knihovna obsahující moduly potřebné k úspěšnému sestavení uživatelského programu. - MXCICB.H, MXCOMREG.H, MXCSDTF.H, MXCOBR.H jsou soubory obsahující popisy datových struktur potřebné pro úspěšný překlad pomocí překladače TCC. - MXCOB.EXE je překladač MX COBOL, který zajišťuje překlad uživatelského cobolského programu do C jazyka. 4) Po úspěšném nahrání výše uvedených komponent do cobolského adresáře je instalace z distribučních disket ukončena. Dále je nutné do příkazu PATH v souboru AUTOEXEC.BAT zařadit cestu k adresáři obsahujícímu překladač TURBO C. V případě časté práce s překladačem MX COBOL je rovněž vhodné zařadit do příkazu PATH i cestu k Vašemu cobolskému adresáři. 1.2. Konfigurační soubor pro MX COBOL V odstavci 1.1. jsme popsali vytvoření konfiguračního souboru MXCOB.CFG v adresáři C:\ pomocí instalační procedury. Konfigurační soubor může však vytvořit i sám uživatel, například po jeho zničení, anebo může konfigurační soubor modifikovat tak, aby obsahoval v daném okamžiku platné údaje, například po změnách některých adresářů. Konfigurační soubor je běžný textový soubor, který obsahuje potřebné informace ve formě jednotlivých příkazů, jejichž vzájemné pořadí je libovolné. Každý příkaz musí být uveden samostatně na jediném řádku počínaje první pozicí na řádku. Příkazy konfiguračního souboru se dělí na povinné a nepovinné. Povinné příkazy jsou příkazy M, C a L, nepovinný je příkaz F. Formáty uvedených příkazů jsou následující: M cesta-ke-komponentám-adresáře-MX-COBOL C úplné-jméno-překladače-TCC L úplné-jméno-spojovacího-programu-TCC F Příkaz M určuje úplnou cestu k adresáři, který obsahuje komponenty MX COBOLu včetně posledního znaku '\'. Například příkaz M C:\MXCBL\ říká, že komponenty MX COBOLu jsou umístěny v adresáři MXCBL přímo pod hlavním adresářem na zařízení C. Příkaz C určuje úplné jméno překladače TCC, například příkaz C D:\TURBO\TC\TCC říká, že překladač TCC je umístěn v adresáři TC pod adresářem \TURBO na zařízení C. Příkaz L určuje úplné jméno spojovacího programu TCC, které je v případě systému TURBO C totožné se jménem překladače. Tomu odpovídá i náš příklad: L D:\TURBO\TC\TCC Příkaz F je příkaz volitelný, nemá žádné parametry a je-li uveden v konfiguračním souboru, pak se předpokládá, že Vaše PC má matematický koprocesor INTEL 8087 příp. 80287. Váš přeložený program pak může obsahovat instrukce pro operandy v pohyblivé řádové čárce. Pokud příkaz F v konfiguračním souboru uveden není, jsou operace s operandy v pohyblivé řádové čárce prováděny simulovaně, což je několikrát pomalejší. 1.3. Konfigurační soubor pro TURBO C Ze systému TURBO C se pro účely překladu uživatelských programů používá řádková verze překladače jazyka C se jménem TCC. Tento překladač využívá ke své činnosti svůj konfigurační soubor s předepsaným jménem TURBOC.CFG, který hledá buď v aktuálním adresáři nebo v adresáři, kde je umístěn samotný překladač TCC (blíže viz TURBO C User's guide). Konfigurační soubor TURBOC.CFG je běžný textový soubor, který obsahuje potřebné informace ve formě jednotlivých příkazů, jejichž vzájemné pořadí je libovolné. Každý příkaz musí být uveden samostatně na jediném řádku počínaje první pozicí na řádku. Konfigurační soubor TURBOC.CFG může obecně obsahovat celou řadu příkazů, z nichž však pro použití překladače TCC pro MX COBOL jsou povinné pouze dva a to příkaz -I a příkaz -L. Příkaz -I určuje překladači TCC adresář, který obsahuje systémové hlavičkové soubory (tzv. header files), příkaz -L určuje překladači TCC adresář, který obsahuje knihovny systémových funkcí psaných v jazyce C, které jsou nezbytné pro úspěšné sestavení uživatelského spustitelného programu. Doporučujeme zařadit do konfiguračního souboru také příkaz -w-rch, který potlačuje při překladu C překladačem výpis varování "Unreachable code in ...", které je v drtivé většině případů zapříčiněno strukturou uživatelského programu. Pokud při instalaci systému TURBO C použijete nabízená jména adresářů, pak lze konfigurační soubor pro překladač TCC vytvořit např. ve tvaru: -IC:\TC\INCLUDE -LC:\TC\LIB -w-rch 2. PŘEKLAD A SESTAVENÍ COBOLSKÝCH PROGRAMU 2.1. Proces překladu a sestavení cobolského programu Celý proces překladu a sestavení cobolského nebo cobolských programů je v MX COBOLu řízen jediným řídicím programem MXC (v dalším jen driver MXC nebo jen driver). Tento driver musí být k dispozici v cobolském adresáři, který může být zpřístupněn pomocí příkazu PATH v souboru AUTOEXEC.BAT. Při vyvolání MXC driveru uživatel zadává veškeré svoje požadavky na průběh překladu zdrojového cobolského programu a na jeho sestavení do výsledného spustitelného programu. Driver MXC považuje za zdrojové cobolské programy takové programy, jejichž jméno obsahuje postfix "cb". Vlastní překlad zdrojového cobolského programu se v MX COBOL skládá z několika kroků. Popíšeme nyní podrobně proces překladu a sestavení pro jeden zdrojový cobolský program, jehož úplné jméno nechť je zdroj.cb. Nenachází-li se překládaný program v aktuálním adresáři, se kterým momentálně pracujeme, pak je nutné, aby jméno zdroj.cb bylo úplné jméno programu (souboru), které ho jednoznačně určuje. V průběhu zpracování programu zdroj.cb dochází k vytváření pomocných souborů, jejichž jména jsou tvořena tak, že se přebírá jméno zdroj a mění se pouze postfixová část jména. To mimo jiné znamená, že všechny tyto pomocné soubory budou uloženy v tom adresáři, který je určen jménem zdroj. 1) První krok představuje překlad zdrojového cobolského programu zdroj.cb do C jazyka. Výsledkem tohoto překladu jsou soubory zdroj.c a zdroj.d případně i zdroj.t, které obsahují překlad původního zdrojového programu do jazyka C, a také soubor zdroj.e, který obsahuje informace o zjištěných syntaktických chybách případně o upozorněních. Volitelně jsou vytvořeny i další soubory a sice soubor zdroj.g, který obsahuje protokol o cobolském překladu, a soubor zdroj.cdb pro účely animace. 2) Pokud byly ve zdrojovém cobolském programu zjištěny syntaktické chyby nebo pokud překladač hlásí nějaká upozornění, provede se jejich výpis na zařízení stdout a zároveň se všechna tato hlášení zapíší do souboru zdroj.f, kde zůstávají nadále k dispozici, a volitelně také do souboru zdroj.g, který obsahuje protokol o cobolském překladu. Dále se zruší soubor zdroj.e. Pokud byly při překladu nalezeny syntaktické chyby, zruší se požadavek na sestavení výsledného spustitelného programu a tím se ukončí další činnost na programu zdroj.cb. Pokud překlad proběhl bez syntaktických chyb, může být pro účely animace volitelně vytvořen soubor zdroj.idx. 3) Dalším krokem zpracování je překlad programu zdroj.c pomocí překladače TURBO C, jehož produktem je modul zdroj.obj. Překlad pomocí překladače TURBO C by měl proběhnout bez chyb, pokud tomu tak nebude, bude se téměř vždy jednat o nějakou chybu v programu zdroj.c. Protože soubory zdroj.c a zdroj.d případně zdroj.t jsou generovány překladačem MX COBOL, bude se s největší pravděpodobností v tomto případě jednat o chybu překladače MX COBOL při vytváření uvedeného souboru a uživatel by tuto skutečnost měl reklamovat u dodavatele. Překlad pomocí překladače TURBO C probíhá vždy se zadaným paměťovým modelem LARGE. Pokud překlad programu zdroj.c proběhne bez syntaktických chyb, driver implicitně zruší soubory zdroj.c a zdroj.d a pokračuje se bodem 4). V případě nalezení syntaktických chyb se zruší požadavek na sestavení výsledného spustitelného programu a driver MXC ukončí svoji další činnost na programu zdroj.c. 4) Posledním krokem zpracování programové jednotky je vytvoření spustitelného programu zdroj.exe. Tento krok zpracování se ovšem provádí pouze tehdy, pokud v předchozích krocích 1 až 3 nebyly zjištěny žádné syntaktické chyby. K tomu účelu je využit spojovací program TURBO C, kterému je předložen modul zdroj.obj, cobolská knihovna MXCLIB.LIB a případně některé další moduly zadané uživatelem potřebné k úspěšnému sestavení spustitelného programu zdroj.exe. Sestavení programu zdroj.exe probíhá vždy se zadaným paměťovým modelem LARGE. 5) Při sestavování výsledného spustitelného programu je potřeba dbát na to, aby byla správným způsobem definována startovací adresa vzniklého spustitelného programu. Protože překlad se děje převodem cobolského zdrojového tvaru do podoby jazyka C, je startovací adresa dána pravidly, platnými v jazyce C. Ta jsou stanovena tak, že operační systém předá řízení na začátek funkce se jménem main(). Proto mezi spojovanými moduly musí být právě jeden, který obsahuje právě jednu funkci main(). Tento problém se řeší pomocí přepínače -v pro driver překladače MX COBOL. (viz 2.2).