AMIGA REVIEW obsah časopisu online!
  Domov     Software     Hry     Obaly     Download  

JAK SE VYBAVIT NA C

Pavel Číž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

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )