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