Free Pascal
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.
Autor | Wolontariusze |
---|---|
Pierwsze wydanie | 2000 |
Aktualna wersja stabilna | 3.2.2 (20 maja 2021) [±] |
System operacyjny | Wieloplatformowy |
Rodzaj | Kompilator |
Licencja | GPL |
Strona internetowa |
Wprowadzenie
edytujKompilator 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
edytujSkł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
edytujFree 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
edytujWersja 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ż
edytujPrzypisy
edytuj- ↑ Textmode IDE development – Free Pascal wiki [online], wiki.freepascal.org [dostęp 2017-11-23] (ang.).
- ↑ Generics – Free Pascal wiki [online], wiki.freepascal.org [dostęp 2017-11-23] (ang.).
- ↑ FPC New Features 2.6.0 – Free Pascal wiki [online], wiki.freepascal.org [dostęp 2017-11-23] (ang.).
Linki zewnętrzne
edytuj- Oficjalna strona projektu (ang.)