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

StormC

Pavel Čížek

Produkt, o němž chci hovořit, je nové vývojové prostředí pro jazyk C/C++ firmy HAAGE & PARTNER COMPUTER Ltd. Dříve, než se pustím do hodnocení tohoto produktu, chtěl bych poznamenat, že recenze je psána na základě demoverze, kterou jsem měl k dispozici - v době psaní článku ještě nebyla k dispozici dokončená plná verze. Anglická verze by měla být hotova asi v době, kdy čtete tyto řádky. Proto je třeba brát výtky, které se v tomto článku objeví, s rezervou. Autoři budou mít ještě dost času případné nedostatky odstranit před uvedením finální verze na trh.

Jedním z hledisek při porovnání s již existujícími systémy bude kromě možností produktu i jeho cena - povězme si proto o ní na tomto místě. Koncová cena plné verze je stanovena na 598 DM, pro studenty o 100 DM méně. Pokud budete se rozhodnete přejít od vámi legálně používaného kompilátoru na StormC, máte možnost využít tzv. cross-upgrade, tj. pořídit tento produkt za 398 DM. Na závěr této části bych rád upozornil, že anglická verze obsahuje anglickou dokumentaci, vzhledem k podpoře standardní lokalizace je však vlastní software „mezinárodní“ (zatím je mezi dostupnými jazyky němčina, angličtina, francouzština a italština).

Požadavky a instalace
Celkový dojem, kterým na mne StormC zapůsobilo, by se dal charakterizovat slovy „bez kompromisů“. Cílem tvůrců je poskytnout maximální možnosti, které však nezískáte zadarmo a nevyužijete na čemkoliv. Minimální požadavky jsou Amiga s OS 2.0 a vyšším, 5 MB místa na harddisku a 3 MB RAM. Jsou opravdu minimální - s touto konfigurací můžete využívat většinu možností, ale pro vážnější práci na větším projektu je to zcela nedostačující (prográmky větší než 20 - 30 KB stvoříte asi těžko). Jako dobrá konfigurace je doporučena pro vážnou práci Amiga s MC 68030 s MMU, KickStart 3.x, 8 MB RAM a 20 MB na harddisku - a já osobně bych doporučil monitor umožňující práci v rozlišení alespoň 640 x 480 bodů.
Instalace využívá standardního Installeru a zabere vám 5 - 6 MB na harddisku. V plné verzi získáte samozřejmě hypertextovou nápovědu, která však nevyužívá klasickou AmigaGuide, ale novější a v některých směrech chytřejší HotHelp.library.

Jazyk
Jednou z velkých předností StormC je úplná implementace jazyka ANSI C a AT&T C++ 3.0. To zahrnuje neobjektová rozšíření Céčka, jako například přetěžování funkcí a operátorů, implicitní hodnoty parametrů, proměnné a parametry definované odkazem, definice proměnných v místě použití a mnoho dalšího. Zároveň získáváte vyspělý objektově orientovaný jazyk C++, který díky objektům umožní snazší sdílení kódu a využití již existujícího kódu (pomocí dědičnosti) a který opět přenáší více práce s odlaďováním a hledáním chyb z programátora na kompilátor. Samotný výčet možností C++ by vydal na několik dlouhých článků kdo C++ zná, ví co mu přinese.
Z rysů C++, které jsou zahrnuty v normě 3.0 a tedy i ve StormC, mě nejvíce potěšila podpora zpracování výjimek - nástroje, který výrazně ulehčuje ošetřování různých chybových stavů a situací v programech (a to je normálně jeden z dosti nepříjemných problémů programátora). Někteří uvítají i možnost využití šablon (templates).
Jedním z nedostatků (dle mého názoru) je to, že se zatím přidržují normy ANSI velmi těsně - dodávané knihovny neobsahují dodatečná rozšíření (např. třídu komplexních čísel) a funkce, které sice nejsou standardní, ale často se užívají pod Unixem a jako rozšíření jiných kompilátorů. Také by nebyla na škodu sada funkcí specifických speciálně pro Amigu (např. pro snadnější práci s ARexxem, seznamy apod.). To vše snižuje možnost přenositelnosti z „ne zcela standardních“ platforem do StormC, na druhou stranu však je zajištěna přenositelnost ze StormC jinam.

Prostředí
Po spuštění StormC se objeví správce projektu reprezentovaný lištou s ikonami (řada příkazů je však skryta v menu). Z něj lze otevírat a zavírat jednotlivé projekty (lze jich mít zároveň otevřeno více), nastavovat parametry, kompilovat, spouštět a odlaďovat. Každý projekt si otevře své vlastní okno, v němž je seznam všech souborů, které mají s daným projektem nějakou souvislost. Soubory jsou rozděleny do skupin (C, assembler, hlavičkové soubory, dokumentace, ARexx, AmigaGuide, programy...), u každého souboru je uvedena velikost, kliknutím na soubor lze spustit editor atd. Práce je skutečně pohodlná.
Pro projekt ve StormC je také charakteristické, že si „pamatuje“, kde a s čím jsme pracovali. Pokud tedy otevřete okno s parametry kompilátoru, octnete se na stránce, kterou jste naposledy upravovali a ono okno bude mít velikost a polohu stejnou jako když jste jej opustili; pokud otevřete soubor a chcete jej editovat, kurzor se automaticky přemístí na místo, kde jste prováděli poslední změny atd.
A dostáváme se k editoru. I ten je v podstatě součástí prostředí, neboť slouží nejenom k editaci textů, ale také spolupracuje s kompilátorem a debuggerem. StormEd poskytuje běžné možnosti editorů, která lze běžně v integrovaných prostředích nalézt. Můžete text editovat, máte k dispozici práci s bloky, nekonečné Undo/Redo, automatické odsazování na mnoho způsobů... Za zmínku stojí zvýrazňování syntaxe, které je samozřejmě možno definovat dle vlastní potřeby. Zároveň je však podporováno zvýrazňování všech funkcí, struktur a konstant, které jsou v operačním systému Amigy k dispozici (a to jsou stovky identifikátorů)! Chybí však jakákoliv podpora maker. Neodpustím si však poznamenat, že kvalit GoldEd-u 3 zatím tento editor zdaleka nedosahuje.

Kompilátor
Pokud přistoupíte ke kompilaci, otevře se okno, v němž vám bude kompilátor vypisovat všechna chybová hlášení a varování. Po skončení kompilace můžete z tohoto okna spustit program či debugger.
Pokud se vyskytnou chyby, stačí na příslušný řádek kliknout myší a dostanete se do editoru na místo, v němž byla nalezena chyba. Na základě dojmů při kompilaci lze prohlásit, že kompilátor je poměrně rychlý (i v případě, že se provádí optimalizace), linker také. Linker navíc podporuje knihovny všech zatím existujících kompilátoru (SAS/C, MaxonC++).
Pokud by vás zajímalo srovnání výsledného kódu s ostatními kompilátory (o SAS/C a GCC se psalo v AMIGA Review již dříve), lze říci, že kvality překladu těchto kompilátorů nedosahuje, přesněji o malý kousek zaostává. Umí velice dobře pracovat s registry a využívat jich pro ukládání často užívaných proměnných, na druhou stranu však nepodporuje (alespoň zatím) volání funkcí s parametry uloženými v registrech (jedinou výjimkou jsou systémové funkce Amigy). I když vše má své pro a proti - např. SAS/C mi jednou v záchvatu optimalizace vygenerovalo chybný kód! Důležitá je tedy i spolehlivost výsledného kódu.
Co se týče výsledného kódu, máte možnost generovat program pro jakýkoliv procesor MC 68000 - MC 68060. V polovině tohoto roku by se měla objevit i verze generující již kód pro procesory PowerPC. To snižuje význam kvality optimalizace pro MC 68xxx, protože vzhledem k přechodu na procesory PowerPC budou výkonné aplikace potřebovat dobrý kompilátor právě pro tyto RISC-ové procesory. A u programů, které vysoký výkon nutně nepožadují a budou určeny nadále pro MC 68xxx, budou bohatě dostačovat stávající schopnosti.

Debugger
Pokud je na StormC, co opravdu stojí za to a v čem výrazně vyniká před ostatními, pak je to debugger. Zajímavé je již to, že při spouštění programu z prostředí není rozdíl mezi odlaďováním a spuštěním pokud program běží, můžete ho kdykoliv začít odlaďovat (stačí kliknout na tlačítko) a naopak.
Celý vtip je v tom, že aplikace se spouští přes StormRun - to je program, který nechá vaši aplikaci běžet nebo ji krokovat a stále ji sleduje. Toto „sledování“ je velice užitečné. Pokud laděná aplikace čeká, vidíte například, na jaké signály čeká. Další hlášení se průběžně vypisují ve sloupci Protokol. Nejužitečnější je to, že StormRun vám automaticky hlásí všechny nekorektnosti při práci se zdroji. Zapomenete zavřít okno nebo soubor? Bude vám to oznámeno. Pokud neuvolníte z paměti knihovnu či font, dozvíte se to také (včetně adresy či jména objektu, s nímž jsou potíže). Také potíže s uvolňováním paměti zjistí StormRun za vás. Zkrátka - sledování práce se zdroji je vymoženost, kterou hned tak někde nepotkáte.
Průběžný dohled nad aplikací vám navíc umožňuje za běhu měnit prioritu, kdykoli ji na chvíli pozastavit nebo poslat signály o přerušení. Další možnost „kontroly“ nad aplikací lze využít, pokud máte procesor s MMU.
Vlastní odlaďování (krokování) využívá jednak editoru, který zobrazuje text programu současně se sloupcem, v němž lze myší nastavovat přerušení, jednak dalších oken pro sledování proměnných. K dispozici je zde seznam všech aktuálních a sledovaných proměnných, seznam modulů, funkcí v nich obsažených a příslušných globálních proměnných. Každá proměnná může být přetypována a, je-li ordinálního typu, lze přímo ve sledovacím okně měnit její hodnotu. Pokud se jedná o systémové struktury a objekty, stačí kliknout na proměnnou a otevřít tak inspektora objektů, který umožní snadno procházet strukturami, modifikovat je a upravovat. Podrobnější popis by zabral mnoho místa, zde se spokojím s konstatováním, že tak komfortní debugger jsem zatím na Amize nepotkal. Jedinou výtku mám k tomu, že zatím chybí podpora podmíněných přerušení (breakpointů).
Z dalších vlastností debuggeru máte k dispozici například okno pro editaci obsahu paměti v hexadecimální podobě nebo můžete jediným příkazem uvolnit z paměti všechny staré verze knihoven, fontů, katalogů (stejně jako to dělá avail flush). Autoři navíc hodlají doplnit do debuggeru možnost okamžitého promítnutí změn prováděných v debuggeru do aktuálně odlaďovaného programu bez nutnosti opustit debugger, provést kompilaci a opět jej spustit. To je skvělé, dle mého názoru by však neškodilo doplnit navíc možnost krokování v assembleru.

Závěr
StormC, které přichází na amigovský trh, je nový a zdá se, že velice perspektivní, produkt. Možnosti, které nabízí, v mnoha ohledech překonávají dosud existující kompilátory. Myslím, že nezbývá se těšit na to, jak se vyvede plná verze StormC. Cena vám může připadat vysoká; vzhledem k možnostem a běžné cenové praxi v této oblasti mohu říci, že není nijak nadsazená.
V současné době, kdy je již jasné, že Amigy budou přecházet na nové procesory a také nový operační systém, je třeba mít k dispozici silný vývojářský nástroj a také plnou podporu výrobce. A to StormC skutečně nabízí. Autoři však nepřicházejí pouze s jediným produktem - již v květnu se můžeme těšit na StormWizard, nástroj pro vytváření uživatelského rozhraní či jak se dnes říká pro vizuální programování. Na to, zda StormWizard bude odpovídat prvnímu či spíše druhému termínu, si však musíme chvíli počkat. Jedno je však jisté; konečně se objevila firma, která to v této oblasti myslí s Amigou vážně.

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 )