Free Pascal (również: FPK Pascal, FPC) – 32- oraz 64-bitowy kompilator języka Pascal, dostępny na wiele różnych platform sprzętowych i systemów operacyjnych.

Free Pascal
logo
Ilustracja
Autor Wolontariusze
Pierwsze wydanie 2000
Aktualna wersja stabilna 3.2.2
(20 maja 2021) [±]
System operacyjny Wieloplatformowy
Rodzaj Kompilator
Licencja GPL
Strona internetowa

Wprowadzenie edytuj

Kompilator Free Pascal jest rozpowszechniany zgodnie z licencją GPL. Biblioteki wykonawcze oraz dodatkowe pakiety rozpowszechniane razem z kompilatorem objęte są jednak zmodyfikowaną licencją LGPL. Modyfikacja owa polega na tym, że autorzy jasno wyrazili zgodę na dołączanie (linkowanie) tych bibliotek do innych programów bez względu na licencję tworzonego programu i sposób łączenia (statyczne lub dynamiczne).

Początkowo projekt nosił nazwę FPK Pascal. FPK stanowiło skrót od niemieckojęzycznej nazwy Frei Pascal Kompiler, a także oznaczało inicjały twórcy projektu (Florian P. Klaempfl). Podczas wydania wersji 1.0 skrót, jak i nazwę, zmieniono na odpowiednio FPC i Free Pascal Compiler.

Wizualną częścią bibliotek dla FPC, zgodną z VCL znanym z Delphi, a także stworzeniem narzędzia typu RAD, zajmuje się osobny projekt – Lazarus.

FPC posiada własne IDE stworzone w trybie tekstowym, jednak wiele błędów nie zostało naprawionych od wielu lat, mimo stosunkowej popularności środowiska[1].

FPC rozpoznaje i kompiluje kod Pascala zapisany w poniższych dialektach tego języka:

  • FPC – domyślny tryb pracy kompilatora,
  • obiektowy FPC – dialekt podobny do FPC, z tym że dopuszcza użycie rozszerzeń Object Pascala,
  • Delphi – tryb zgodności z Delphi w wersji 4 i późniejszymi,
  • GPC – zgodność z kompilatorem GPC z pakietu GCC,
  • Mac (wciąż w fazie tworzenia) – zgodność z dialektem Pascala firmy Apple,
  • TP – zgodność z dialektem użytym w kompilatorze Turbo Pascal 7.

Możliwości edytuj

Składnia języka jest semantycznie zgodna z TP 7.0, tak samo jak z większością wersji Delphi (klasy, RTTI, wyjątki, ansistrings). Free Pascal udostępnia pełny zakres programowania obiektowego. Możliwe jest przeciążanie funkcji i przeciążanie operatorów oraz zagnieżdżanie komentarzy. Free Pascal obsługuje arytmetykę 64-bitową, SSE. Wbudowana jest optymalizacja kodu maszynowego dla procesorów Pentium, AMD, AMD64. FPC wspiera klasy generyczne (Dodane w serii 2.2[2]). Jednak w związku z problemami w zastosowaniu operatorów w rekordach, które były używane przez klasy generyczne, od wersji 2.6.0 dodano wsparcie dla zaawansowanych rekordów, co umożliwiło ich szersze zastosowanie[3].

Historia edytuj

Free Pascal powstał w czasie, kiedy stało się jasne, że firma Borland nie wyda kolejnej – ósmej wersji dosowego kompilatora Turbo Pascal. Zamiast niego powstał kompilator Delphi dostępny tylko dla użytkowników Windows. Student Florian Klaempfl zaczął pisać swój własny 16-bitowy kompilator dla DOS-a. Po dwóch latach przepisał go na architekturę 32-bitową przy użyciu rozszerzenia go32v1.

Kompilator został opublikowany w internecie, co spowodowało przyłączenie się do projektu innych programistów. Na pięć lat przed powstaniem Kyliksa Michael van Canneyt stworzył port FPC dla Linuksa. W międzyczasie powstał port dla OS/2, a pierwotna wersja dla DOS-a została znacznie ulepszona. Programiści zdecydowali się wydać wersję 0.99.5, która doczekała się także portu dla procesorów 680x0.

W kolejnej wersji 0.99.8 został dodany port dla platformy Win32 i rozpoczęły się prace nad dodaniem kompatybilności z Delphi. 12 lipca 2000 ukazała się pierwsza stabilna wersja 1.0. Kolejne wydania z serii 1.0.x zawierały głównie poprawki błędów oraz wciąż rozwijany port dla procesorów 680x0. Kłopoty w implementacji tego portu skłoniły zespół programistów FPC do rozpoczęcia prac nad nową serią 1.1.x (przekształconą później w 1.9.x). Miała ona zawierać przepisany od nowa generator kodu ułatwiający portowanie kompilatora do zupełnie nowych architektur.

Na początku 2003 roku powstał port dla PowerPC, a niedługo potem dla AMD64. Rozpoczęto też prace nad portami ARM i SPARC. Wersja FPC dla AMD64 uczyniła go kompilatorem zarówno 32-, jak i 64-bitowym.

15 maja 2005 miała miejsce długo wyczekiwana premiera wersji 2.0. Przyniosła ona zmianę struktury kompilatora na bardziej modularną, by ułatwić jego przenoszenie na nowe platformy. Poprawiono obsługę wątków i optymalizację kodu. Kompilator przeniesiono na systemy Mac OS 9 i X, MorphOS oraz Novell Netware.

Kwiecień 2006 przyniósł pierwszy snapshot kompilatora dla platformy Win64 Vista.

W Sierpniu 2007 wydana została seria 2.2.X która przyniosła wewnętrzny linker dla platform Win32, Win64 oraz WinCE. Pozwolił on na znaczne zredukowanie czasu generowania plików wykonywalnych w porównaniu do linkera GCC. Poza tym w serii tej ulepszono usuwanie martwego kodu oraz smartlinking.

Platformy docelowe edytuj

Wersja 2.6.0 jest dostępna na następujących platformach:

ARM Intel/i386 PowerPC/PowerPC64 SPARC AMD64/x86_64
Windows 32-bit Nie Tak Nie Nie Nie
Windows 64-bit Nie Tak Nie Nie Tak
Windows CE Tak Tak Nie Nie Nie
Linux Tak Tak Tak Tak Tak
Mac OS X Nie Tak Tak Nie Nie
Solaris Nie Tak Nie Tak Nie
FreeBSD Nie Tak Nie Nie Tak
DOS Nie Tak Nie Nie Nie
Haiku Nie Tak Nie Nie Nie
OS/2 Nie Tak Nie Nie Nie
Game Boy Advance Tak Nie Nie Nie Nie
Nintendo DS Tak Nie Nie Nie Nie

Zobacz też edytuj

Przypisy edytuj

  1. Textmode IDE development – Free Pascal wiki [online], wiki.freepascal.org [dostęp 2017-11-23] (ang.).
  2. Generics – Free Pascal wiki [online], wiki.freepascal.org [dostęp 2017-11-23] (ang.).
  3. FPC New Features 2.6.0 – Free Pascal wiki [online], wiki.freepascal.org [dostęp 2017-11-23] (ang.).

Linki zewnętrzne edytuj