Free Pascal

FPC

A Free Pascal (régebben FPK Pascal) egy nyílt forráskódú  Pascal fordító és fejlesztőkörnyezet, amelynek célja a Turbo Pascal kiváltása.

A Free Pascal lehetőségei ma már több szempontból túlmutatnak a példakép Turbo Pascal lehetőségein, követve az Turbo Pascal fejlesztésének leállítása után keletkezett elvárásokat.

A következő operációs rendszerek alá lehet vele programot fejleszteni:

A következő processzorokat támogatja:

  • Intel x86
  • AMD64/x86-64
  • PowerPC
  • PowerPC64
  • SPARC
  • ARM
  • m68K (csak a régebbi verziók támogatják)

Támogatott adatbázis formátumok:

  • Advantage
  • Microsoft SQL Server
  • Interbase
  • MySql
  • Postgresql
  • Oracle Database
  • Firebird
  • SQLite
  • Sybase Adaptive Server Enterprise
  • ODBC
  • FoxPro
  • DBase
  • Paradox
  • Text fájl alapú adatbázis

A fenti hosszú felsorolásokat röviden összefoglalva a Free Pascal segítségével szinte bármely operációs rendszer és eszköz számára lehet programot fejleszteni, illetve az egyszer elkészült program az itt felsorolt rendszerek bármelyikére lefordítható.

Természetesen nem minden processzor-operációs rendszer-adatbázis kezelő hármasra lehet fejleszteni, de a gyakorlatban előforduló kombinációk támogatottak.

FPC
FPC pillanatkép

A free Pascal oldalon terminal módban (szöveges módban) működő programok fejlesztéséhez egy FPC nevű , a windows jellegű „ablakos” programok készítéséhez Lazarus néven ajánlanak kezelőfelületet.  Harmadik gyártótól is szerezhető be kezelőfelület, ilyen például  az MSEide+MSEgui.

A Pascal egyszerűen tanulható, jól használható eszköz egyszerű programok készítésére. Az elkészült kód gyakorlatlan szemnek olvashatóbb, mint a C vagy C++ programok, ugyanakkor a kész program sokkal gyorsabban fut mint az interpreteres nyelveken (például BASIC, PERL) készült társaik.

Az elkészült program minőségét nagyban meghatározzák a kiválasztott beállítások. Minden ellenőrzés javítja a kész program üzembiztosságát,

Beállítások
Beállítások

azonban a futásidejét és a kész program méretét növeli, és nem pótolja a gondos programozói munkát, de nagy mértékben segíti azt. Különösen a tanulási időszakban az ellenőrzések kikapcsolása nem célszerű, mivel a programhibák felderítést nehezíti, illetve a program üzembiztonságát rontja.
A különböző ellenőrzéseket ki/be kapcsolni az Options/Compiler.. menüben, vagy a programkódban elhelyezett direktívákkal lehet.

Range checking

A range checking jó példa arra, hogy a be és kikapcsolt állapotának is van létjogosultsága, attól függően, hogy az adott programrészletnek mi a célja, és azt hogyan szeretné elérni.

Megszámlálható típusoknál, illetve tömb indexeknél ellenőrzi, hogy a program futása során a változók értéke a megengedett értéktartományon belül marad-e, amennyiben nem, 201 számú hibával a program megáll. A Free Pascal esetén kifejezésenként, a Delphi esetén eljárásonként az itt beállított értéket a {$R+} illetve a {$R-} direktívákkal felül lehet írni a programban.

Egy példa:

Program Range;
Var
I:integer;
Begin
I:=maxint;
I:=I+1;
Writeln(I);
end.

A program kikapcsolt Range checking opcióval lefut és -32768 értéket ír ki. Bekapcsolt range checking esetén 201 hibával (range check errorr) a program végrehajtása megszakad.

Stack checking

A program által használt stack (verem) túlcsordulását figyeli. A program futása közben a {$S+} illetve a {$S-} direktívákkal lehet be- illetve kikapcsolni. A stack túlcsordulása olyan súlyos hiba, hogy a program üzemszerű működését minden körülmények között megakasztja, a rendszer biztonságát veszélyeztető mellékhatásai miatt mindig bekapcsolva tartjuk . Ha a stack túlcsordul, ismeretlen rendeltetésű memóriaterületet ír felül, ami rendszerösszeomláshoz vezethet, ritkán előforduló, azonban nehezen hibakereshető probléma.

I/O checking

I/O műveletnél végez alapvető ellenőrzéseket. Futásidőben a {$I+} és {$I-}  direktívákkal lehet ki- és bekapcsolni, akár I/O műveletenként.  Bekapcsolt állapotban nyilvánvalóan hibás bemeneti adatok esetén (szám helyett szöveg, az olvasandó fájl nem létezik) a program végrehajtása megszakad, kikapcsolt állapotban magunknak kell az ellenőrzéseket elvégezni. Mivel a legtöbb esetben a beérkező adatok ellenőrzése egyébként is szükséges, nem szoktuk bekapcsolni, illetve csak indokolt esetben.

Példa az I/O hibák kezelésére:

assign (f,’file.txt’);
{$I-}
rewrite (f);
{$I+}
if IOResult<>0 then
begin
Writeln (’Nem tudom megnyitni a  file.txt-t’);
exit
end;

A következő részben az optimalizációs lehetőségeket mutatom be egy egyszerű példaprogramon keresztül.

Az elsősorban a Pascal szintaxisának leírására használt szintaxisgráfokról Segesdy Gábor barátunk írt egy szép cikket.

Kapcsolódó cikkek

One thought on “Free Pascal

Vélemény, hozzászólás?

Az oldal használatával elfogadja, hogy az sütiket használ További információ

A sütik használatát érdemes engedélyezni a böngészőben.
The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Bezár