Free Pascal FAQ - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Delphi

Free Pascal FAQ

5. dubna 2001, 00.00 | Představení volně šiřitelného 32-bitového kompilátoru Pascalu. Free Pascal je dobrou alternativou pro ty, kteří chtějí programovat v Pascalu a z nějakého důvodu si nemohou (nechtějí) pořídit Turbo Pascal či Delphi. Vyzkoušejte ho také!

Co je to Free Pascal?

Free Pascal Compiler (FPC) je volně šiřitelný 32-bitový kompilátor Pascalu, kompatibilní s Turbo/Borland Pascalem. Je vyvíjen už od roku 1993 a je distribuován pod licencí GPL - to znamená, že ho můžete nejen zdarma šířit, ale máte k dispozici i jeho zdrojové kódy a můžete ho libovolně upravovat a vylepšovat.

Co všechno umí?

Zkompilovat program v Pascalu. Cílem je, aby se v něm daly přeložit (téměř) všechny programy psané v Turbo/Borland Pascalu. Tento cíl se kompilátoru daří splnit. Kromě kompatibility s TP však disponuje i mnohými rozšířeními.

Jakými rozšířeními?

Za první skupinou rozšíření je snaha o kompatibilitu s Delphi. Výsledkem je podpora tříd (nikoliv jen "klasických" pascalovských objektů), vyjímek, dlouhých řetězců apod. To, že je kompilátor 32-bitový, také znamená, že podobně jako v Delphi se při programování nemusíte příliš zatěžovat tím, aby se vaše datové struktury vešly do jednoho segmentu paměti apod. - použit je tzv. "flat" model, opět stejně jako v Delphi.

Další skupinou jsou rozšíření evidentně inspirovaná C/C++. Přibylo pár nových operátorů, které se navíc dají přetěžovat, stejně jako funkce. Vylepšen byl model direktiv, tedy konstrukcí typu {$if NĚCO} ... {$else} ... {$endif} apod. Nyní se v nich dají definovat makra (obdobně jako v #define v C/C++), používat operátory, prostě paráda. K úplnosti a komplexnosti, které právě C/C++ dosahuje asi nejlépe ze všech jazyků, chybí Free Pascalu snad jenom možnost tvořit šablony.

Tento seznam rozšíření není úplný, v případě zájmu (vyjádřete se prosím v diskuzi) na toto téma může vyjít samostatný článek.

Na čem to běží?

Hardwarové nároky pro Intelovskou platformu jsou nízké - 386 s 4-8 MB RAM, ostatní platformy jsou na tom obdobně. S hardwarem nebudete mít problém.

Co se platforem týče, je třeba říct, že Free Pascal je důsledně multiplatformní. Momentálně umí překládat pro dva typy procesorů (Intel x86 a Motorola m68k) a funguje v následujících operačních systémech:

  • DOS
  • Linux
  • FreeBSD (zatím beta)
  • OS/2
  • Win32 (Windows 95, 98, ME, 2000, NT)
  • Commodore Amiga
  • Atari ST

Pro všechny systémy vytváří nativní aplikace, které nepotřebují žádné externí knihovny apod. Jedinou vyjímkou z pravidla je DOS, u něhož je využívání DOS32V2 extenderu, známého z projektu DJGPP (port překladače GCC - GNU C Compiler - pod DOS). Extender je nutný, protože vytvořené programy běží v chráněném módu.

TP i Delphi mají rozsáhlé podpůrné knihovny. Jak je na tom FPC?

Dobře. Jednak je zde implementace základů knihovny Delphi VCL (nazvaná FCL - Free Component Library), takže můžete používat všechny třídy typu TList, TStrings, stejně jako takřka všechny příkazy unity SysUtils, Math apod.

Z TP byly převzaty standardní unity CRT a Graph a také unita Objects, známá z TurboVision.

Další unity jsou na používání myši, práci s MMX instrukcemi, podporu sítě pomocí socketů. Navíc jsou s FPC distribuovány unity pro komunikaci s Windows API, pod Linuxem se pak kromě systémových volání domluvíte i s X-Window a grafickou knihovnou GTK. Hodí se i pascalský port ZLib na kompresi/dekompresi dat, knihovny pro zpracovávání XML nebo pro grafické rozhraní OpenGL.

Zdaleka jsem nevyjmenoval všechno (jen to nejpodstatnější), ale asi je vidět, že co se knihoven týče, není si u FPC na co stěžovat.

A co IDE?

To je momentálně asi největší slabina projektu. Free Pascal je totiž program konzolový. To znamená, že zadáte něco jako:

ppc386 program.pas

a FPC odpoví:

Free Pascal Compiler version 1.00 [2000/07/10] for i386
Copyright (c) 1993-2000 by Florian Klaempfl
Target OS: Win32 for i386
Compiling program.pas
program.pas(3,1) Hint: unit PROGRAM can't be smart linked,
                       switching to static linking
Linking program.exe
2 Lines compiled, 0.7 sec

To je veškerá vaše komunikace s FPC. Někomu to možná vyhovuje, ale většina bude pravděpodobně toužit po nějakém "Delphi-like" prostředí. Momentálně máte čtyři možnosti:

Free Pascal IDE Jednoduché prostředí pro Windows, umí zvýrazňovat syntaxi v editoru a podporuje správu projektů.
Free Pascal Editor Podle mě asi nejlepší dostupný editor Free Pascalu pro Windows. Oproti předchozímu je promyšlenější. Podporuje zvýrazňování syntaxe, správu projektů, vlastní makra apod. Jeho bližší popis je téma na samostatný článek.
Lazarus Projekt, kladoucí si za cíl vyvinout na bázi FPC jakýsi klon Delphi pro Linux. Ambice mají vývojáři tohoto projektu velké, ale IDE samotné je v době psaní článku ještě nepoužitelné. Projekt je ale velmi mladý, takže nás za pár měsíců může čekat příjemné překvapení.
RHIde Prostředí, navržené původně pro překladač GCC a simulující vzhled Borlandského IDE v DOSu. Obsahuje speciální položku v konfiguraci, která zapne spolupráci s FPC. Vhodné pro programátory zvyklé na klasický Turbo/Borland Pascal.
Kde mám FPC sehnat?

Na stránkách www.freepascal.org najdete kompletní distribuce pro všechny platformy a navíc i balíčky pro některé Linuxy (RedHat, Debain). S instalací se dodává i velice kvalitní dokumentace (formát PDF), za kterou by se nemusel stydět ani leckterý komerčně vyvýjený produkt.

Jen malá praktická rada: Pokud budete instalovat Win32 verzi, umístěte ji do adresáře dostupného pomocí starých "8.3" názvů. Předejdete tím problémům při hledání použitých standardních unit a i samotného ppc386.exe.

Závěr

Free Pascal je dobrou alternativou pro ty, kteří chtějí programovat v Pascalu a z nějakého důvodu si nemůžou pořídit Turbo Pascal či Delphi. FPC je také jedinou rozumnou implementací Pascalu na Linuxu (u ostatních ne-Win32 si tohle tvrdit nedovolím, protože nemám dostatečný přehled). Nic vám nebrání si ho alespoň vyzkoušet. Časem určitě využijete i některé jeho knihovny (dají se po drobných úpravách použít i v Delphi - vyzkoušeno osobně) a možná mu přijdete na chuť tak, že se už nebudete chtít vrátit :-)

Tématické zařazení:

 » Rubriky  » Delphi  

 » Rubriky  » Windows  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: