Rosňa se jako každý správný prvák na matfyzu potýká s Pascalem a
zřejmě věří, že si toho pamatuju tolik, že jí budu schopen trochu
pomoct. První seance v Dřenicích skončila funkčním prográmkem na
výpočet n-tého čísla Fibonacciho posloupnosti m-tého řádu a jelikož
nakonec přijeli i Tom H. se Zuzkou Š., z programátorského
odpoledne se vyklubala zajímavá akcička okořeněná skvělou muzikou
pouštěnou panem Pavlovičem.
Druhý příklad, který musí udělat, už tak triviální není –
jedná se o vyhodnocování aritmetických výrazů zadaných řetězcem.
Od Rosni jsem jako nástroj pro vývoj obdržel jakýsi podezřelý Turbo
Pascal 7.0, který má přes 100 MB a nemusí se instalovat, což je
skvělé, ale bohužel na něm funguje jenom česká qwertz klávesnice, kterou
fakt neumím a nemám rád. Sháněl jsem proto alternativní vývojová
prostředí. Narazil jsem na FreePascal a na Virtual Pascal. Zvláště druhý
jmenovaný dokázal prostředí klasického TP napodobit velmi věrně,
integrováno bylo i ladění a nápověda, mnohdy kvalitněji zpracovaná
než ta originální. Bohužel překladač VP nebyl plně kompatibilní
s tím v TP – např. funkce val v TP očekává argumenty
typu string, integer a integer, zatímco ve VP musel být poslední argument
typu longint. Překladač FreePascalu se zdál být kompatibilnější –
první verze vyhodocovače aritmetických výrazů v něm šla přeložit
bez nejmenších úprav, což mě potěšilo. Naneštěstí je však IDE
poměrně nekvalitní (zatím je v beta fázi), takže jsem si musel
vybrat mezi dobrým IDE a dobrým překladačem, když se zdálo, že nemůtu
mít obojí současně.
Pak jsem ale objevil IDE Dev-Pascal, což je normální Win32 aplikace,
kterou lze stáhnout buďto s GNU Pascal kompilátorem nebo právě
s Free Pascalem (kupodivu nelze stáhnout „distribuci“
s oběma kompilátory naráz). Dev-Pascal + FP kompilátor tedy byla
jasná volba. Bohužel Dev-Pascal nemá integrovaný debugger, který se
konkrétně u vyhodnocování výrazů, což je hraní se zásobníkem,
ukázal jako nezbytnost. Naštěstí lze stáhnout samostatný debugger InSight
(grafická nadstavba nad DBG debuggerem), který se jen rozbalí do cesty
Dev-Pascalu a po spuštění ladění se otevře nová aplikace, který jakous
takous podporu poskytuje. Nepodařilo se mi sice rozchodit watches a také při
pokusu o podrobnější zobrazení lokálních proměnných (např. typu
pole) se debugger složil, ale aspoň jsem se mohl dívat, kudy program
kráčí, což často v kombinaci s tužkou a papírem (které
nahrazují watches) stačí.
Takže: ideální vývojové prostředí pro Pascal se mi najít
nepodařilo, ale kombinace Dev-Pascal + Free Pascal compilter + InSight už pro
mé jednoduché potřeby asi stačí. Ještě poznámka na závěr: včera na
Slunečnici vyšel dosti kontroverzí titul „Turbo Pascal 7.0“,
což je neoficiální verze od nějakého Slováka, který integroval českou
nápovědu a patch na runtime error 200, ale ani zde se mi nepodařilo
přepnout na QWERTY nebo na anglickou klávesnici.
Update: Virtual Pascal také umí bez zásahu do kódu přeložit zdroják
z TP7. Problém je v tom, že VP kompiluje do 32bitového exáče,
zatímco TP do 16ti bitového, což má za následek některé problémy
s velikostí datových typů – integer vs. longint je zářným
příkladem. V nastavení VP kompilátoru ale stačí zaškrtnout
direktivu „Use32“ a vše běží v pohodě (alternativně lze
do každého zdrojáku do sekce uses vložit odkaz na knihovnu use32, což je
samozřejmě daleko méně elegantní řešení). Takže zatím se mi jako
ideální jeví: psát v Dev-Pascalu s FreePascal kompilátorem a
když je potřeba ladit, hodit to do VP. Celý vývojový cyklus je tak možno
obstarat s free nástroji, i když na ladění by se dal
alternativně použít i TP.
mě se jeví jako nejlepší psát v PSPadu a kompilovat v čemkoliv :)