JAK SE VYBAVIT NA CPavel Čížek
Tento článek by měl pomoci těm, kteří chtějí začít programovat v jazyce C, těm,
kteří si to chtějí zkusit a nevědí zatím, zda jim "Céčko" bude vyhovovat či ne.
Zde je totiž problém, kde vzít solidní kompilátor spolu s dalšími utilitami
nezbytnými pro práci a intuitivní ovládací prostředí a přitom NEKRÁST
(samozřejmě je zvykem mnohých krást, a to se asi těžko změní). A koupit si drahé
vývojové prostředí (když ani nevíte, zda vám někdy k něčemu bude) je také
nesmysl. Poradit vám snad může tento článek (alespoň doufám).
V první části se zaměříme na to, kde vzít kompilátor. Podívejme se např. do
známé Fish série - a na disku 491 nalezneme neregistrovanou verzi prostředí DICE
2.06.21 (Dillons Integrated C Environment). Je to v současnosti již velice
známý kompilátor, v němž toho mnoho vzniklo, dokonce takové programy jako známý
GadToolsBox nebo GoldEd (viz dále) a také základy BD Manažeru (viz minulé číslo
ATLANTIDY). Nejnovější sharewarová verze má označení 2.06.37 a možná je ve své
freewarové podobě na některém z Fish disků. Poznamenejme, že existuje také verze
komerční, která se zove DICE 3.0. (POZOR! Aktuální informace o tom, jak snadno
získat funkční verzi DICE 3.0 - viz konec článku).
Proč právě tento kompilátor? DICE je napsán na a pro počítače Amiga (jinak
bychom se o něm nebavili) a vychází z ANSI normy jazyka C. Je kladen důraz na
kompatibilitu s ostatními již existujícími kompilátory a navíc vám nabízí různá
rozšíření, která slouží k snadnějšímu používání vymožeností Amigy. Je určen pro
použití běžnými uživateli - pracuje na A500 s 1 MB paměti, umí však využít
možností A4000. Základními hledisky při vývoji byla rychlost kompilace,
spolehlivost generovaného kódu, optimalizace (taková, že není na úkor
spolehlivosti) a podpora OS Amigy, která může právě těm začínajícím dosti
ulehčit život (za chvíli se o ní zmíníme).
Součástí DICE je samozřejmě preprocesor, kompilátor, assembler, linker, ovládací
program, dmake (program pro správu větších projektů) a množství dalších utilit
usnadňujících vývoj programu (u novějších verzí i profiler apod.). Dále v balíku
naleznete knihovny pro linker, include soubory, kompletní dokumentaci a
příklady, jednoduchý editor a mnoho dalšího.
Zastavme se nyní u nestandardních rozšíření, které právě těm začínajícím mohou
počáteční úsilí usnadnit. Hned v úvodu určitě pomohou některé soubory z
dokumentace určené právě začátečníkům. Naleznete v nich úvod do jazyka C,
postup, jak pomocí DICE napsat svůj první program v C, a rady, jak psát programy
v Céčku čitelně a srozumitelně (mnozí už asi slyšeli o "nečitelnosti" programů v
Céčku apod. - pravdou však je, že i v Céčku LZE psát čitelně; málokdo se o to
ovšem snaží).
Mezi velice příjemné vybavení patří např. podpora Workbenche (při startu z WB je
volána funkce wbmain() místo main()) a tzv. automatická inicializace libovolných
objektů při startu programu a automatická destrukce těchto objektů při ukončení
programu. To můžete sami využít - stačí vaše vlastní funkce deklarovat jako
autoinit / autoexit.
Mnohem důležitější však je, že je tato schopnost využívána DICEm při otevírání a
zavírání sdílených knihoven (jako např. Intuition, DOS, Graphics apod.). Pokud
tedy píšete program využívající služeb Intuition.library (např. chcete otevřít
okno), nemusíte se starat o otevření této knihovny na počátku a její zavření na
konci. DICE to automaticky udělá za vás. Stačí, když se v programu objeví volání
některé standardní knihovny, a bude při startu automaticky otevřena a na konci
opět uzavřena. Dále se začátečníkům může hodit možnost generování "nekonečného"
zásobníku - takového, který je znám z Unixu. Ne každý se zpočátku chce zabývat
dynamickým alokováním paměti, ale standardní zásobník má na Amize jen 4 KB a
ručně si jej nastavovat (pokud se např. jedná o pokusy spustitelné pouze z CLI)
je dost otravné.
Asi si říkáte, to je všechno hezké, ale pokud budu mít neregistrovanou verzi,
nebude určitě umět vše, co umí registrovaná. Je to samozřejmě pravda, a tak se
nyní zmíním o omezeních neregistrované verze, která (dle mého názoru) nejsou
příliš omezující pro uživatele s jazykem C začínajícího:
- nejsou implementována bitová pole (to je většině lidí asi jedno)
- není implementována práce s reálnými čísly (pokud začínáte a chcete si
vyzkoušet programování v Céčku, resp. programování v systému, pak reálná čísla k
ničemu nepotřebujete; no a pokud je potřebujete, můžete se zaregistrovat)
- nelze používat kvalifikátory chip, far, near (to se dá obejít, dříve je
některé kompilátory vůbec neměly, a taky se pracovalo; nehledě na to, že jejich
význam se projeví až u velkých projektů)
To jsou omezení jazyka, jistá omezení jsou i v poskytnutých prostředcích:
- chybí vizuální prostředí pro ovládání dmake, tj. kompilátor se musí ovládat z
příkazové řádky (za chvíli si povíme, jak se tomu vyhnout)
- chybí profiler
- chybí debugger (populárně řečeno "odlaďovadlo")
- a konečně utility jako Enforcer a spol. (ty vám stejně na nic nejsou, pokud
nemáte MC 68030 a výše)
Jediným závažným nedostatkem pro začátečníka je nutnost ovládat kompilátor z
příkazové řádky. To je velice nepříjemné, a slabší povahy to velice snadno
odradí. Neboť však sharewarový DICE již existuje dosti dlouho, našli se lidé,
kteří tento problém vyřešili. A o tom si povíme nyní.
GoldEd (dále jen GED) je sharewarový produkt (editor), jehož autorem je Dietmar
Eilert. Podívejme se na tento program, jehož demoverze se nenalézá nikde jinde
než na discích známé Fish série. GoldEd tak jak je distribuován je poměrně velký
balík a jak uvidíte, lze v něm nalézt vše, co vám může usnadnit vaše první kroky
v jazyce C (ale nejenom v něm). Základním cílem GEDu je být k uživateli
přívětivý, jak jen to bude možné a s ním dodávané utility tento dojem ještě
utvrzují.
V rámci této strategie je dodrženo pravidlo, že vše lze nakonfigurovat. Každé
klávese či položce menu lze přiřadit událost, jakou jen chcete - interní příkaz
GEDu, program ARexxu či AmigaDOSu, jakýkoli text apod. Tak se GED může
přizpůsobit vám a není třeba se opět učit nové "horké klávesy" pokud jste již na
něco zvyklí apod.
Samozřejmě je k dispozici několik standardních konfigurací, které může běžný
uživatel využít, aniž by se konfigurováním musel nějak zabývat. Je samozřejmé,
že takto rozsáhlý produkt ovládá všechny základní funkce, kterými by měl každý
technický textový editor disponovat. Řada funkcí je také různým způsobem
vylepšena. Zmíním se o těch, které nějakým způsobem souvisí s programováním.
Velice propracovaná je manipulace s bloky. Při práci s bloky je možnost využít
systémového i interního clipboardu. Navíc máte možnost používat více clipboardů
najednou (Amiga jich zvládá max. 255). GED také podporuje sloupcové bloky. Máte
možnost sloupce různě posouvat, vkládat text z clipboardu či vámi zadaný (např.
umístíte jedním příkazem komentář před všechny označené řádky) nebo sloupce
mazat. To vše je při úpravách zdrojového textu v libovolném jazyce velmi
užitečné. Výhodné je také to, že GED si pamatuje všechna slova, která jsme v
průběhu práce vyhledávali či nahrazovali, a že do nabídky umísťuje i slovo, na
němž se právě nachází kurzor.
Podívejme se nyní na přednosti, které souvisí pouze s programováním. GED má
integrovánu rychlou nápovědu, týkající se funkcí sdílených knihoven, systémových
struktur atd. Stačí ukázat na neznámé slovo a nápověda je tu. S tím souvisí
schopnost GEDu vyhledávat v textových souborech funkce a struktury jazyka C,
Pascalu, ale i Basicu a assembleru. Snadno tak můžete získat výpis všech funkcí,
resp. struktur v aktuálním textu - pak už stačí jen kliknout na funkci, kterou
chceme editovat, a může na ní začít pracovat.
Dále máte možnost "balení" bloků textu - stačí označit počátek a konec
smluvenými značkami a stisknout HELP. Rázem pak uvidíte např. místo funkce o 100
řádcích řádek jeden - barevně odlišený, popř. s komentářem k danému bloku
(podobnou věc s funkcemi mnozí asi znají z editoru GFA Basicu). Mezi další
vymoženosti patří uživatelský slovník klíčových slov. Ten má dvě úlohy. Pokud
opustíte řádku, je zkontrolována, zda neobsahuje některá slova vyskytující se ve
slovníku, a pokud ano, provede se jejich korekce na správný tvar co do velkých a
malých písmen. Napíšete-li tedy omylem "Allocmem", bude to automaticky opraveno
na "AllocMem". Dále se slovníku dá využít k automatickému roztahování zkratek na
celý tvar slova. Pokud chcete tedy napsat slovo obsažené ve slovníku, stačí
napsat zkratku, stisknout příslušnou klávesu a objeví se vám celé slovo. Např.
napíšeme "ul", stiskneme ESC a tento text se doplní na "ULONG". Možností je
ještě mnoho a mnoho dalšího lze doplnit pomocí ARexxu.
Jak jsem se již zmínil, v GEDu je vše konfigurovatelné. Jednou z velice
zajímavých možností je konfigurace tzv. API - GED totiž poskytuje ostatním
aplikacím rozhraní, pomocí kterého mezi sebou mohou komunikovat. To umožňuje
snadnou podporu spellingu, vytváření nástrojových lišt ve stylu ToolManageru
(zde však slouží především k ovládání GEDu) apod.
Tím jsme se dostali k pomocným utilitám, které GoldED obsahuje a které pro nás
budou mít klíčový význam. Mezi API aplikace GEDu, které jsou v balíku, patří
DebugIT (utilita sloužící ke spolupráci GEDu s SAS C), SpellIT (kontrola
pravopisu) a Dock (nástrojové lišty). Kromě toho je zde ještě řada dalších
pomocných utilit - GEd, HiSpeed, Recover atd. GEd je malý prográmek (4 KB),
který slouží ke spouštění GEDu, je většinou stále v paměti a je tedy zbytečné ho
vždy znovu nahrávat - stačí ho programově aktivovat. HiSpeed je speciální
utilita pro tisk rozsáhlých dokumentů (hlavně výpisů programů apod.) na
tryskových a laserových tiskárnách. Recover je utilitka, která vám pomůže po
případném zhroucení počítače nalézt v paměti neuložené texty a případně je
uložit na disk.
Nejdůležitější však je (alespoň pro ty, kteří se rozhodnou používat DICE,
přesněji jeho sharewarovou verzi) GUIMake, jehož autorem je Rico Krasowski. Tato
utilita je freeware a stejně jako některé výše jmenované je plně integrována do
prostředí GoldEDu, tj. při instalaci si můžete nechat vytvořit menu, pomocí
kterých budete GUIMake ovládat prostřednictvím ARexxu (samozřejmě všechna makra
jsou již připravena, stačí je jen použít). Z menu může vyvolávat následující
akce GUIMake (viz obrázky):
- lze vyvolat konfigurační editor GUIMake, kde nastavíte vše potřebné pro
spolupráci GUIMake s DICEm (adresáře vstup/výstup/dočasný, příkazovou řádku
kompilátoru a mnoho dalšího).
- můžete vyvolat editor modulů, který obsahuje seznam souborů v daném projektu.
Pokud chcete některý soubor editovat, stačí na něj kliknout a nahraje se
automaticky do GEDu
- samozřejmě můžete nastavovat uživatelsky příjemnou cestou pomocí GUIMake
všechny parametry kompilátoru (paměťový model, procesor, pro který je kód
generován, již zmíněný nekonečný zásobník atd.)
- a nezbytnou součástí je možnost spouštění kompilace a linkování, možnost
procházet seznam chyb vygenerovaný kompilátorem (přičemž se v GEDu automaticky
otevírají potřebné soubory a kurzor se vám nastaví přímo na místo s chybou) a
spouštění již zkompilovaného programu.
Pomocí GUIMake se tedy snadno vyhnete úskalím "příkazové řádky" a vaše první
kroky v Céčku budou snadné a pohodlné.
Závěrem lze říci to, co na jiných platformách příliš neplatí a co se opět
ověřilo: na Amiga scéně lze z sharewaru "vytáhnout" téměř cokoli. Jestliže vás
tyto produkty zaujmou, pak vězte, že registrační poplatky jsou nízké - za GED 25
DM (lehká verze), za DICE v jeho nejnovější podobě pak zaplatíte 50 dolarů - pak
se ovšem jedná o kompletní prostředí. Pokud to porovnáte s cenami komerčního
softwaru, bude vám jasné, proč říkám, že ceny jsou nízké. S přáním mnoha hezkých
chvil s vašimi uskutečněnými céčkovskými projekty vás nyní nechám přemýšlet, jak
si co nejrychleji Céčko "ochočit".
DŮLEŽITÝ DODATEK: V poslední chvíli před dokončením článku jsem získal
následující informaci. Jak asi víte, u většiny zahraničních časopisů naleznete
tzv. Cover disky. Březnové číslo časopisu AMIGA SHOPPER (March 1995) obsahuje na
jednom z Cover disků (jsou dva) speciální verzi komerčního Céčka - DICE 3.0.
Tato verze je mimo jiné přímo určena k tomu, aby čtenáři AMIGA SHOPPERu mohli
sledovat, modifikovat a kompilovat programy vyskytující se v rámci kurzu jazyka
C v tomto časopise. Jejím základním omezením je velikost výsledného kódu - max.
64 KB. Do toho se vám však "vejdou" i programy jako DiskMaster, SuperDuper apod.
A to nejdůležitější nakonec - tento časopis lze snadno sehnat i u nás v Čechách
(alespoň v Praze) za cenu kolem 200 Kč. Vytlačiť článok
Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.
Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing
none
|