- 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 -