Free Pascal

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Free Pascal

Screenshot
Integrierte Entwicklungsumgebung, IDE von Free Pascal 2.2.x
Basisdaten

Entwickler Carl Eric Codère, Daniël Mantione, Florian Klämpfl und andere
Erscheinungsjahr 1997
Aktuelle Version 3.2.2[1]
(20. Mai 2021)
Betriebssystem Unix, Linux, Windows, macOS, u. a.
Programmier­sprache Object Pascal, Pascal[2], Assemblersprache
Kategorie Compiler
Lizenz GPL/LGPL
deutschsprachig nein
freepascal.org

Free Pascal oder Free Pascal Compiler (abgekürzt FPC) ist ein freier Compiler für die Programmiersprachen Pascal und Object Pascal. Die Delphi-ähnliche Lazarus-Entwicklungsumgebung nutzt Free Pascal.

Entstehungsgeschichte

[Bearbeiten | Quelltext bearbeiten]

Free Pascal entstand aus dem Wunsch heraus, 32-Bit-Pascal-Programme einfach und portierbar erstellen zu können. Damals konzentrierte Borland seine Entwicklung ganz auf Windows (das spätere Delphi) und lehnte die Weiterentwicklung des bis heute an Qualität und Geschwindigkeit immer noch vorbildlichen, aber fast komplett in Assembler programmierten Borland-Pascal-Compilers ab (selbst einfache Fehler wie der seit BP7 auftretende „Runtime Error 200“ – ein Überlauf in einer Schleife, welche die Geschwindigkeit der Hardware bestimmen sollte – wurden nicht mehr beseitigt).[3] Der Student Florian Paul Klämpfl entwickelte daraufhin einen eigenen 32-Bit-Pascal-Compiler. Er nannte ihn zunächst FPK, nach den Initialen seines Namens.

Der Pascal-Compiler zeichnet sich durch folgende Eigenschaften aus:

Die Entwickler pflegen auch einen Transpiler für Pascal zu JavaScript (pas2js).

Free Pascal beherrscht die Borland-Pascal-Dialekte. In der Version 2.x ist Free Pascal nahezu Delphi-7-kompatibel. Begrenzt unterstützt werden außerdem die ANSI/ISO-Pascal-Dialekte und Apple Pascal. Außerdem existiert ein OBJFPC-Modus, der umfangreiche Objekt-Pascal-Erweiterungen und zahlreiche Schnittstellen z. B. zu Datenbanken aktiviert.

Die verschiedenen Dialekte können sowohl über Kommandozeilenschalter als auch im Quelltext durch $MODE ausgewählt werden. Derzeit sind folgende Einstellungen möglich:

  • Delphi – Delphi-Kompatibilitätsmodus
  • TP – Turbo-Pascal-Kompatibilitätsmodus (Object-Pascal-Erweiterungen werden abgeschaltet)
  • FPC – Der Vorgabemodus
  • OBJFPC – FPC mit Object-Pascal-Erweiterungen
  • MACPAS – Kompatibilitätsmodus für Pascaldialekte unter klassischem Mac OS, wie Think Pascal, Metrowerks Pascal und MPW Pascal

Bis zur Version 2.2 gab es noch den GNU-Pascal-Kompatibilitätsmodus GPC.

In der Version 2.0.4 unterstützt Free Pascal folgende Architekturen:

Folgende Betriebssysteme werden unterstützt:

In Entwicklung:

Entwicklungsumgebungen

[Bearbeiten | Quelltext bearbeiten]
Lazarus-IDE v0.9.26.2

Für die Nutzung stehen verschiedene (ebenfalls frei verfügbare) integrierte Entwicklungsumgebungen (IDE) zur Verfügung:

  • Lazarus ist eine freie, Delphi-ähnliche IDE für Rapid Application Development (RAD). Lazarus, das von einer großen Community gepflegt wird, unterstützt eine Vielzahl an Plattformen und Betriebssystemen, unter anderem macOS, BSD, Solaris, Linux und Windows.
  • CodeTyphon ist eine freie, Delphi-ähnliche IDE für Rapid Application Development (RAD). CodeTyphon hat Multi-CPU-, Multi-OS- und Cross-Build-Fähigkeiten.[5]
  • Eine Textmodus-IDE, die der Borland-Turbo-Pascal-IDE sehr ähnlich ist (ist Teil des FPC-Paketes).
  • Eine Kommandozeilenversion, die sich mit den meisten Editorprogrammen (z. B. QEdit, Emacs) sehr gut kombinieren lässt (ist Teil des FPC-Paketes).
  • Open Sibyl ist eine Free Pascal-basierte Entwicklungsumgebung für OS/2 und eCS.
  • PascalGUI ist eine Entwicklungsumgebung, die direkt auf Android-basierten Geräten läuft.
  • MSEide ist eine Umgebung für die Entwicklung leichtgewichtiger Programme mit Free Pascal. Die dazugehörige MSEgui ist eine Klassenbibliothek, die über Xlib direkt mit X11 auf Linux und gdi32 unter Windows kommuniziert. Sie entspricht damit der LCL und den Widgetsets von Lazarus.
  • OmniPascal ist ein Free Pascal und Delphi Plugin für Visual Studio Code. Es ermöglicht erweiterte Navigation in Quelltext-Dateien, Codevervollständigung sowie die Integration des Compilers.

Programmversionen

[Bearbeiten | Quelltext bearbeiten]

1993 begannen Arbeiten an Free Pascal. Die erste Version war noch in Turbo Pascal ausschließlich für den DOS-Extender go32v1 geschrieben, was jedoch bereits ein enormer Fortschritt war, da jetzt bis zu 2 GB große Datenbereiche (z. B. Felder für Fast-Fourier-Analysen oder digitale Filter) äußerst einfach verwaltet werden konnten. Bald konnte Free Pascal sich selbst kompilieren, so dass es zu einem 32-Bit-Programm wurde. Die Entwicklergemeinde erweiterte sich rasch und nach einiger Zeit portierte Michaël Van Canneyt Free Pascal auf Linux. Für OS/2 wurde die DOS-Portierung angepasst, sodass sie mit dem EMX-Extender zusammenarbeitet. Auch eine Win32-Portierung wurde durchgeführt.

Legende:
Ältere Version; nicht mehr unterstützt
Ältere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version
Version Veröffentlichung Plattform Bemerkungen
Ältere Version; nicht mehr unterstützt: 0.2.0 26. Juni 1994 MS-DOS
Ältere Version; nicht mehr unterstützt: 0.6.2 unbekannt MS-DOS
Ältere Version; nicht mehr unterstützt: 0.6.4 unbekannt MS-DOS Neues Unit-Format, integrierte Assembler-Option, Korrekturen und Erweiterungen des Compilers und der RTL
Ältere Version; nicht mehr unterstützt: 0.6.5 23. Juli 1996 MS-DOS Korrekturen und Erweiterungen des Compilers und der RTL
�ltere Version; nicht mehr unterst�tzt: 0.9.0 2. Dezember 1996 MS-DOS
�ltere Version; nicht mehr unterst�tzt: 0.9.1 2. April 1997 MS-DOS
�ltere Version; nicht mehr unterst�tzt: 0.99.5 unbekannt MS-DOS Erste ver�ffentlichte Betaversion
�ltere Version; nicht mehr unterst�tzt: 0.99.8 unbekannt MS-DOS, Windows Unterst�tzung von Win32 und erster Delphi-Funktionen
�ltere Version; nicht mehr unterst�tzt: 0.99.10 23. Dezember 1998 MS-DOS, Windows
�ltere Version; nicht mehr unterst�tzt: 0.99.12 25. Juni 1999 MS-DOS, Windows
�ltere Version; nicht mehr unterst�tzt: 0.99.14 27. Januar 2000 MS-DOS, Windows
�ltere Version; nicht mehr unterst�tzt: 1.0 12. Juli 2000 MS-DOS, Windows, OS/2 Erste finale Version
�ltere Version; nicht mehr unterst�tzt: 1.0.2 12. Oktober 2000 Windows, FreeBSD, OS/2, MS-DOS Erste Unterst�tzung f�r FreeBSD
�ltere Version; nicht mehr unterst�tzt: 1.0.4 31. Dezember 2000 Windows, FreeBSD, OS/2, MS-DOS Debug-Unterst�tzung f�r Klassen, Bereichspr�fung f�r Int64 und Cardinals, Fehlerbehebungen.
�ltere Version; nicht mehr unterst�tzt: 1.0.6 30. April 2002 Windows, FreeBSD, OS/2, MS-DOS
�ltere Version; nicht mehr unterst�tzt: 1.0.10 11. Juli 2003 Windows, FreeBSD, OS/2, MS-DOS In erster Linie Fehlerbehebungen, einige Erweiterungen f�r Lazarus.
�ltere Version; nicht mehr unterst�tzt: 1.9 5. November 2003 Windows, FreeBSD, Linux, OS/2, MS-DOS Unterst�tzung f�r Linux und PowerPC-Prozessoren
�ltere Version; nicht mehr unterst�tzt: 1.9.2 11. Januar 2004 Windows, FreeBSD, Linux
�ltere Version; nicht mehr unterst�tzt: 1.9.4 31. Mai 2004 Windows, Mac OS X, Linux, FreeBSD, OS/2, MS-DOS Erste Version, die Mac OS X unterst�tzte
�ltere Version; nicht mehr unterst�tzt: 1.9.6 1. Januar 2005 Windows, Mac OS X, Linux, FreeBSD, OS/2, MS-DOS Unterst�tzung f�r ARM, SPARC und x64
�ltere Version; nicht mehr unterst�tzt: 1.9.8 24. Februar 2005 Windows, Mac OS X, Linux, FreeBSD, OS/2, MS-DOS
�ltere Version; nicht mehr unterst�tzt: 2.0 15. Mai 2005 Windows, Mac OS X (Intel und PPC), Linux, FreeBSD, OS/2, MS-DOS Umfangreiche Erweiterungen und Verbesserungen
�ltere Version; nicht mehr unterst�tzt: 2.0.1 3. Oktober 2005 Windows, Mac OS X (Intel und PPC), Linux, FreeBSD, OS/2, MS-DOS Enthalten in Lazarus 0.9.10
�ltere Version; nicht mehr unterst�tzt: 2.0.2 8. Dezember 2005 Windows, Mac OS X (Intel und PPC), Linux, FreeBSD, OS/2, MS-DOS Insbesondere Fehlerbehebungen, enthalten in Lazarus 0.9.16
�ltere Version; nicht mehr unterst�tzt: 2.0.4 28. August 2006 Windows, Mac OS X (Intel und PPC), Linux, FreeBSD, OS/2, MS-DOS Enthalten in Lazarus 0.9.22
�ltere Version; nicht mehr unterst�tzt: 2.2 10. September 2007 Windows, Mac OS X (Intel und PPC), Linux, FreeBSD, OS/2, MS-DOS, Windows CE, Game Boy Advance, Nintendo DS Erweiterungen in Sprache und Infrastruktur, Lazarus-Unterst�tzung verbessert, enthalten in Lazarus 0.9.24
�ltere Version; nicht mehr unterst�tzt: 2.2.2 11. August 2008 Windows, Mac OS X (Intel und PPC), Linux, FreeBSD, OS/2, MS-DOS, Windows CE, Game Boy Advance, Nintendo DS Erweiterungen in Sprache und Infrastruktur, enthalten in Lazarus 0.9.26.2 (�lteste auf SourceForge gehostete Version).
�ltere Version; nicht mehr unterst�tzt: 2.2.4 12. April 2009 Windows, Mac OS X (Intel und PPC), Linux, FreeBSD, OS/2, MS-DOS, Windows CE, Game Boy Advance, Nintendo DS Erweiterungen der Sprache und der Infrastruktur, enthalten in Lazarus 0.9.28
�ltere Version; nicht mehr unterst�tzt: 2.4 1. Januar 2010 Windows, Mac OS X (Intel und PPC), Linux, FreeBSD, iOS, OS/2, MS-DOS, Windows CE, Game Boy Advance, Nintendo DS Spracherweiterungen und Fehlerbehebungen, Unterst�tzung f�r Multithreading und Mehrkernprozessoren sowie Packages.
�ltere Version; nicht mehr unterst�tzt: 2.4.2 12. November 2010 Windows, Mac OS X (Intel und PPC), Linux, FreeBSD, Solaris, iOS, OS/2, MS-DOS, Windows CE, Game Boy Advance, Nintendo DS Enthalten in Lazarus 0.9.30, Unterst�tzung f�r FreeBSD auf x86-64 und Solaris
�ltere Version; nicht mehr unterst�tzt: 2.4.4 22. Mai 2011 Windows, Mac OS X (Intel und PPC), Linux Enthalten in Lazarus 0.9.30.2RC1
�ltere Version; nicht mehr unterst�tzt: 2.6.0 1. Januar 2012 Windows, Mac OS X (Intel und PPC), Linux Unterst�tzung f�r Objective Pascal, Enthalten in Lazarus 0.9.30.4RC1 und Lazarus 1.0
�ltere Version; nicht mehr unterst�tzt: 2.6.2 23. Februar 2013 Windows, Mac OS X (Intel und PPC), Linux Verbesserung des Compilers f�r ARM-Architektur, Erweiterungen von Paketen und Plattformsupport
�ltere Version; nicht mehr unterst�tzt: 2.6.4 11. M�rz 2014 Windows, Mac OS X (Intel und PPC), Linux Fehlerkorrekturen, web- und json-Pakete synchronisiert, chm-cmd-Compiler verbessert
�ltere Version; nicht mehr unterst�tzt: 3.0.0-rc2 21. Oktober 2015 Windows, Mac OS X (Linux und PPC), Linux, Android u. a. Release Kandidat RC2 des neuen Entwicklungszweiges 3.0
�ltere Version; nicht mehr unterst�tzt: 3.0.0
(Pestering Peacock)
25. November 2015 Windows, OS/2, Mac OS X (Intel und PPC), BSD, Linux, AIX, Android u. a.[6] Etliche neue Funktionen, u. a. 16-, 32- und 64-Bit-Kompatibilit�t, Type Helper, Namensraumhierarchie f�r Units und Konstruktoren f�r Klassen, dynamische Arrays und Records.
�ltere Version; nicht mehr unterst�tzt: 3.0.2 15. Februar 2017 Windows, macOS (Intel), BSD, Linux, AIX, Android u. a. Fehlerbehebungen und aktualisierte Pakete
�ltere Version; nicht mehr unterst�tzt: 3.0.4 28. November 2017 Windows, macOS (Intel), BSD, Linux, AIX, Android u. a. Fehlerbehebungen und aktualisierte Pakete, die z. T. hohe Priorit�t hatten
�ltere Version; noch unterst�tzt: 3.2.0 19. Juni 2020 Windows, macOS (Intel), BSD, Linux, AIX, Android u. a. Einf�hrung u. a. von Standard-Namensr�umen, generischen Routinen, verwalteten Records und erweiterten Funktionen f�r dynamische Arrays. Au�erdem Fehlerbehebungen, Bereitstellung neuer Standard-Units und Unterst�tzung f�r zus�tzliche Plattformen.
Aktuelle Version: 3.2.2 20. Mai 2021 Windows, macOS (Intel+AArch64), BSD, Linux, AIX, Android u. a. Offizielle Unterstützung für den Apple M1 SoC und Implementierung zur Benennung von Threads. Außerdem Fehlerbehebungen und Bereitstellung neuer bzw. aktualisierter Standard-Units.

Im Allgemeinen sind veröffentlichte Versionen mit geraden Versionsnummern bezeichnet. Wie bei Lazarus stehen ungerade Versionsnummern für Test- und Entwicklungsversionen sowie Snapshots. Daher schreiten die Bezeichnungen der publizierten Versionen in Zweierschritten voran.

Version 1.0 erschien im Juli 2000. Diese Version hatte schon nahezu Turbo-Pascal‑7/​Delphi‑2-Kompatibilität. In der Folgezeit wurde Free Pascal noch auf zahlreiche andere Plattformen und Architekturen portiert, u. a. auf PowerPC, SPARC und ARM. Version 1.9.4 unterstützte erstmals auch Mac OS X.

Version 2.0.0 wurde nach langer Weiterentwicklung schließlich im Mai 2005 veröffentlicht.

Version 2.2 wurde im September 2007 veröffentlicht und unterstützt nun Windows CE, Game Boy Advance und Nintendo DS als Plattform.

Version 2.4 wurde am 1. Januar 2010 fertiggestellt und unterstützt nun 64-Bit-Mac-OS‑X, iPhone OS und Haiku.

Seit August 2011 kann Free Pascal Byte-Code für die Java Virtual Machine erzeugen.[7]

Im Januar 2012 wurde die Version 2.6 veröffentlicht, die u. a. den Objective-Pascal-Dialekt implementiert. Objective Pascal ist eine Pascal-Schnittstelle zur unter OS X und iOS vorrangig eingesetzten Programmiersprache Objective-C.

Lieferumfang und Installation

[Bearbeiten | Quelltext bearbeiten]

Auf der FPC-Website befinden sich direkt installierbare Versionen für die meisten Betriebssysteme. Die Installationen z. B. unter Windows lassen sich jederzeit problemlos und vollständig wieder entfernen. Es existieren u. a. folgende Komponenten/Erweiterungen (ein aktueller Überblick findet sich auf der FPC-Website):

  • FPC – Der Compiler selbst
  • RTL – Die Laufzeitbibliothek
  • FCL – Die Free Component Library (analog zur Delphi VCL)
  • Textmode IDE
  • Michaël Van Canneyt: Free Pascal 2 - Handbuch und Referenz, Computer & Literatur, 2. Auflage 2012, ISBN 978-3-936546-53-8
 Wikinews: Free Pascal – in den Nachrichten
Commons: Free Pascal – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. forum.lazarus.freepascal.org.
  2. The freepascal Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 26. September 2018).
  3. Turbo/Borland Pascal Patches for CRT problems on fast PC's. Abgerufen am 24. Oktober 2017.
  4. PalmOS port
  5. CodeTyphon About. Abgerufen am 24. Mai 2024 (britisches Englisch).
  6. ftp-Verzeichnis
  7. freepascal wiki: FPC JVM, abgerufen am 23. August 2011