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:
|
a FPC odpoví:
|
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. |
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ěrFree 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 :-)
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007