StormC 1.05 - 1.1Pavel Čížek
Jak jste se mohli dočíst v dubnovém čísle AMIGA Review, objevilo se na Amiga
scéně nové vývojové prostředí StormC. Nyní máte možnost seznámit se s plnou
verzí tohoto produktu. StormC je vývojové prostředí od firmy HAAGE & PARTNER. Uved“me na úvod
několik základních informací. StormC existuje v německé a anglické verzi,
probíhá lokalizace do francouzštiny a italštiny. Koncová cena produktu je 598
DM, studenti mohou uplatnit 100 DM slevu. K dispozici je i tzv. cross-upgrade
při přechodu z jiného komerčního kompilátoru. V tom případě vám „postačí“ 400
DM. Kromě finančních požadavků je nutno přihlédnout i k požadavkům na systém -
jako minimální (ale téměř nedostačující) je uváděna 3 MB RAM a 5 MB místa na
harddisku. Pro slušnou práci lze doporučit minimálně 6 MB (raději však 8 MB)
paměti, rychlejší procesor (nejlépe s MMU) a také větší harddisk.
Následující popis se bude týkat verze 1.05. K ní však jsou již k dispozici na
Internetu patche a v současné době přichází na trh verze 1.1, o které se zmíním
později. Dodávka, instalace
Za onu „směšnou“ cenu dostanete několik disket, manuál a registrační kartu.
Hned v úvodu bych se chtěl zastavit u manuálu - naleznete v něm vše, co je
potřeba pro práci s vlastním vývojovým prostředím. Co se týče jazyka C++,
naleznete jen soubor odkazů na literaturu. Co mne však zarazilo, bylo to, že
popis knihovních funkcí StormC je uveden pouze v AmigaGuide souboru - tedy pouze
v elektronické podobě. U tohoto produktu bych (vzhledem k ceně) očekával nejenom
referenční příručku k ANSI C++ a jeho funkcím, ale vzhledem ke stávající situaci
na Amize by vítaným doplňkem určitě byl alespoň stručný přehled systémových
funkcí Amigy...
Vlastní instalace, která zabere pouhých 6 MB na harddisku (v porovnání se
stovkami megabytů na PC), je snadná a pohodlná. Kromě vlastního prostředí,
příkladů a jednoduchého Screen Manageru získáte také PhxAss (neregistrovaná
verze) - poměrně dobrý sharewarový assembler. Samotná nápověda k němu dodávaná
může být zdrojem mnoha užitečných informací. Jazyk
StormC nabízí programátorům na Amize úplnou implementaci jazyka ANSI C a C++
3.0. Chybí pouze některé nejnovější prvky jako prostory jmen apod. Přínosem
určitě je možnost práce s objekty a s nimi související dědičnost, podpora
výjimek, šablon, inline funkcí, přetěžování funkcí a mnoha dalších prvků tohoto
dnes tak moderního programovacího jazyka. Tento, dnes stále se vyvíjející jazyk,
má skutečně co nabídnout. Jedním ze sporným rysů StormC je přesné dodržování
normy ANSI v oblasti nabízených knihovních funkcí. To na jednu stranu zajišťuje
přenositelnost na jiné kompilátory (a naopak možnost kompilace libovolného ANSI
kompatibilního programu), ale na straně druhé je tím komplikován přenos programů
využívajících některá (poměrně běžná) rozšíření jiných kompilátorů. Důsledkem je
také absence funkcí specifických pro prostředí Amigy.
Co se týče klíčových slov, která se týkají přímo Amigy nebo se vyskytují v
některých již existujících produktech, jsou k dispozici běžně užívané
identifikátory jako „_far“, „_near“, „_chip“ apod. Nicméně některá klíčová slova
byla opomenuta (například _saveds, ale i některá další) – to samozřejmě
způsobuje problémy při přenosu již existujících projektů. Ve verzi 1.1 by
některé z vážnějších problémů (především kompatibilita se SAS/C) měly být
odstraněny. Prostředí
Prostředí StormC je reprezentováno správcem projektu - to je lišta s
ikonami, která je však doplněna o poměrně rozsáhlé menu. Z toho správce lze
otevírat, modifikovat a zavírat projekty, kompilovat, spouštět a odlaďovat
programy, editovat jejich zdrojové texty... Každý projekt je reprezentován
oknem, které obsahuje soubory k němu se vážící. Přitom soubory jsou přehledně
rozděleny do skupin (C++, assembler, dokumentace, AmigaGuide, programy...).
Příslušné soubory lze editovat, popř. spustit. Od verze 1.1 je navíc integrována
skupina pro soubory Storm WIZARDu (viz článek v tomto čísle) a navíc lze
jednotlivé soubory také prohlížet (například pro AmigaGuide dokument můžete
spustit editor a modifikovat jej nebo nahrát MultiView a prohlédnout si jeho
finální podobu).
První z činností, kterou začne tvorba programu, je editace. Editor StormED je
využíván nejenom k editaci, ale i k odlaďování programů (viz dále). Možnosti
StormEDu odpovídají možnostem editorů v integrovaných prostředích - k dispozici
je práce s bloky, „nekonečné“ undo a redo, vyhledávání a nahrazování,
zvýrazňování syntaxe (včetně systémových funkcí Amigy), od verze 1.1 také
kontrola závorek... Kvalit sharewarových programátorských editorů na Amize však
StormED zdaleka nedosahuje. Zato pomalostí je určitě překonává. Proto je možno
od verze StormC 1.1 používat alternativně také známý GoldED 3.x.
Součástí StormC je samozřejmě kompilátor C a C++. Jeho integrace se editorem je
příkladná – chyby a varování se vypisují ve zvláštním okně, volbou dané chyby se
otevře editor na správném místě v textu, připraven k odstranění chyby. Vlastní
kód generovaný kompilátorem může být určen pro kterýkoliv z procesorů MC 68000 -
MC 68060 a může podporovat práci s koprocesorem. Na kompilátor samozřejmě
navazuje linker, který je poměrně rychlý. Navíc (od verze 1.1) umožňuje
přilinkovat v výslednému programu také binární data - jedná se zatím o data
Storm WIZARDu popisující uživatelské rozhraní programu (nemusí tedy nutně být
uložena v externím souboru).
Pokusím se srovnat StormC s ostatními již existujícími kompilátory. Kompilátor i
linker jsou poměrně rychlé (i v případě optimalizace). Nedosahuje sice takové
rychlosti překladu jako DICE (kompilátor C++ je přirozeně složitější), ale
výrazně překonávají SAS/C. Výsledný kód je však poměrně velký (i když je to
částečně způsobeno rozsahem jednotlivým knihovních funkcí, které zaberou poměrně
dost místa - to se samozřejmě při práci na větším projektu ztratí). Co se týče
optimalizace, soustřeďuje se StormC na optimální práci s registry (ve verzi 1.1
je optimalizace dále rozšířena a zrychlena), celkově však optimalizace
nedosahuje kvalit SAS/C nebo GNU C++. Autoři se patrně zaměřují na tu část
optimalizace, která hraje největší roli při vytváření programů pro RISCové
procesory - zřejmě tedy stále doufají v přechod na platformu PowerPC.
Na kompilátor zpravidla navazuje debugger, který se snaží hledat, co zbrklost
programátora napáchala. Velkou výhodou proti SAS/C je velikost souborů s
informacemi pro debugger - tento soubor je externí a je poměrně malý. Zajímavou
vlastností, kterou jsem rozebíral již při testování demoverze, je to, že není
rozdíl mezi odlaďováním a spuštěním programu; pokud je program spuštěn z
integrovaného prostředí, lze ho kdykoliv začít krokovat a naopak. Z toho
vyplývá, že StormRun (jak se debugger jmenuje) má stále kontrolu nad činností
programu - to umožňuje kontrolovat prioritu aplikace, zasílat ji signály a
sledovat na co právě čeká. Navíc je veden protokol o používaných a uvolňovaných
objektech (soubory, okna, paměť...) a v případě, že nedojde k uvolnění daného
prostředku, je to oznámeno programátorovi. Vlastní odlaďování využívá editoru, v
němž je zobrazován text programu a nastavení jednotlivých přerušení. K dispozici
je seznam všech aktuálně platných a sledovaných proměnných, seznam modulů,
funkcí... Samozřejmě nechybí „inspektor objektů“ umožňující procházet jednotlivé
objekty a jejich potomky či prohlížet a měnit hodnoty k (zatím lze měnit pouze
hodnoty položek ordinálního typu). K dispozici je také binární editor paměti a
od verze l .l i globální okno poskytující kontrolu nad nastavenými přerušeními
(breakpointy). Podmíněná přerušení stále nejsou k dispozici. Podrobněji viz
dubnové číslo AMIGA Review.
Jedinou nevýhodou debuggeru je, že není příliš stabilní - ve většině případů se
však patrně jedná o problémy spojené s nedostatkem paměti (většina testů
probíhala na počítači s 5 MB RAM). Verze 1.1
StormC se jeví jako perspektivní produkt; některé nedostatky, které však v
současnosti má, jsou poměrně nepříjemné. Autoři se však snaží nic nezanedbat -
proto se průběžně na Internetu objevovaly opravy a výsledkem těchto snah je i
nová verze 1.1, která je pro registrované uživatele k dispozici zdarma.
Jedna z nejvíce viditelných změn je patrně spolupráce se Storm WIZARDem. Soubory
popisující uživatelské rozhraní mohou být začleněny do projektů, mohou být
přilinkovány k programům... Především však bylo předěláno uživatelské rozhraní
pomocí Storm WIZARDu výsledkem jsou nejen lepší a přehlednější requestery (viz
některé obrázky), ale také výrazně menší StormShell - zmenšil se z původních 500
KB na 300 KB. Správce projektu byl dále zdokonalen v oblasti klávesového
ovládání; pokud při akci, která má běžně za následek editaci daného objektu,
přidržíme klávesu Alt, dojde ke spuštění prohlížeče - viz také výše.
Editor StormED (jak již bylo zmíněno) může být nově nahrazen GoldEDem. Pro ty,
kteří zůstanou u původního editoru, byla doplněna kontrola závorek, lepší
nastavování zvýrazňování syntaxe a také možnost používání šablon při vytváření
zdrojového kódu nového projektu (podobně jako ve WordWorthu 4 či FinalWriteru 5
při vytváření nového dokumentu). Mezi další novinky patří možnost zákazu inline
funkcí (aby bylo možné je odlaďovat) a ignorování výjimek (opět kvůli
odlaďování). Kromě toho lze debugger spouštět v několika dalších režimech, lze
zakázat kontrolu uvolňování paměti a dalších zdrojů (to se hodí, pokud píšete
různé patche). Užitečným doplňkem debuggeru je i historie přerušení (tj. seznam
popisující, jak k nim postupně docházelo) a okno pro správu všech přerušení v
programu. Doplněn byl také program StormLibrarian, pro snazší vytváření knihoven
pro linker. Závěr
StormC je produkt, který se snaží programátorům na Amize plnohodnotné
vývojářské prostředí ve všech směrech. Ačkoli první verze je zatížena chybami,
dochází k poměrně rychlému vývoji produktu a eliminaci známých chyb. Nevýhodou
je jak cena, tak i nároky na hardware počítače. Pokud se však bude StormC
vyvíjet stejně jako doposud, má před sebou jistě dobrou perspektivu.
Storm C |
Hodnocení: 8,0 z 10 |
Autor:
Haage&Partner |
Cena: DM 598,- |
Typ: komerční |
+ |
ANSI C a C++ 3.0, debugger,
správce projektu |
- |
nároky na hardware, cena |
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
|