- předchozí článek - následující článek - obsah - úvodní stránka -

Linuxové noviny 06/98

Grasp

Karel Žák, 9. června 1998

A toto je můj favorit - GRASP neboli Graphical Representations of Algorithms, Structures and Processes. Nejedná se o žádného vývojářského obra, ale naopak o docela úhledný editor, který svou funkci pro programování projektů o několika souborech a pár stech řádcích plní na výbornou. Osobně ho používám asi 1 rok a jsem nadšen.

Současná verze je 6.2.7 pro Unix (29. dubna 1998) a 6.2.8 pro Win95/NT (25. března 1998).

Program je napsán pro X Window za použití Motif 1.1.2. Pochopitelně autoři nezapomínají ani na ty co nemají Motif a program lze stáhnout na adrese http://www.eng.auburn.edu/department/cse/research/grasp/ jako staticky slinkované binárky.

GRASP je připraven pro jazyky Ada 95, C, C++, Java a VHDL. GRASP je integrován do GNU rodiny kompilátorů pro Adu, C a Sunovského javac pro Javu (dle informací na Webu).

Jako první se při spuštění objeví okno obsahující soubory projektu, pokud žádný projekt nemáte tak logo programu. Zde se lze rozhodnout jestli si založíte nový projekt nebo si prostě jen tak zeditujete nějaký ten soubor. Tato možnost mi tak trochu chybí u Source Navigátoru, který předpokládá, že pokud někdo něco chce, musí si nejdříve vytvořit projekt. Pro své interní informace si GRASP vytváří soubor v adresáři, ve kterém se nacházejí editované soubory.

Pak už stačí jen vybrat jazyk, ve kterém bude vámi editovaný soubor, nebo přímo vybrat soubor v souborech zařazených do projektu, a objeví se vlastní editor.

Editor podporuje všechny obvyklé funkce (tedy obarvování klíčových slov, zarovnávání, spouštění make, run programu atd.), ale hlavně CSD. A to je ten důvod proč o GRASPu píši.

CSD - Control Structure Diagram je nádherná věc, kterou můžete vidět na přiloženém obrázku. Ano, to jsou ty "čáry", které nám krásně zpřehledňují zdrojový kód. Na první pohled je ihned patrné kdy a kam se vracíte, kde je jaký cyklus, if nebo něco jiného. Součástí značení textu může též být možnost číslování řádků.

[ CSD ]

Co se mi také líbí je, že pokud uděláte chybu (např. zapomenete středník), tak vás program taktně upozorní, že s takovým kódem CSD prostě neudělá (máte-li tedy CSD v celém souboru v pořádku, je pravděpodobné, že i základní syntaxe kódu je OK). O případných chybách GRASP informuje programátora v okně vzkazů.

Další zajímavou vlastností GRASPu je expanze maker. To znamená, že editor makra ukrytá v souborech includovaných do editovaného souboru pro vlastní kontrolu expanduje (ale na obrazovce a v souboru vám pochopitelně zůstane to co jste napsali). Tak např. pokud bude soubor.h a v něm makro AHOJ a my toto makro budeme používat v souborech .c, bude GRASP kontrolovat jak toto makro "zapadá" do souborů .c. Pokud tedy bude v makru AHOJ chyba, budeme na tuto skutečnost upozorněni. GRASP tedy použité AHOJ nebere jen jako text, ale jako opravdové makro. Lze nastavit, z jakých #include souborů bude expanze probíhat (lze zahrnout i /usr/include).

V GRASPu si můžete také definovat vlastní šablony. Já jsem to například používal při psaní programů používajících knihovnu mSQL, kdy se mi nechtělo psát pořád ty šílené názvy funkcí. Jen stačilo nadefinovat funkce nebo i cykly (a ostatně cokoliv) do souboru se šablonami, a v menu editoru se vše objevilo. Pak pokud chcete něco z toho co jste nadefinovali, jen zamyšujete do tohoto menu a text ukrytý pod touto položkou je GRASPem napsán. Na dalším obrázku je toto menu se šablonami dodanými s programem to celé světle modré (...také čtete černobílý výtisk?) okénko.

[ GRASP ]

Mezi další příjemnosti patří barevný tisk do PostScriptu, kdy na výtisku je pochopitelně možné mít i CSD (to by mohlo být užitečné pro všechny tvůrce literatury o programovaní (už vidím ty krásné a přehledné příručky a ne ten šedý chaos, na kterém oči umdlévají - ale vraťme se z obláčku na zem...)).

Nově je v GRASPu interface pro grep, ale to si už asi každý představí sám. A dobrá zpráva na konec, v další verzi má být podpora Tcl a Perlu, a tak si přijdou na své i nekompilovanci... *


- předchozí článek - následující článek - obsah - úvodní stránka -