Free Pascal

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 28. Januar 2016 um 12:47 Uhr durch 213.144.5.151 (Diskussion) (Informationen über OmniPascal hinzugefügt). Sie kann sich erheblich von der aktuellen Version unterscheiden.
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.0.0
(25. November 2015)
Betriebssystem Unix, Linux, Windows, Mac OS X, u. a.
Programmier­sprache Object Pascal, Pascal[1], 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.

Eigenschaften

Der Pascal-Compiler zeichnet sich besonders durch folgende Eigenschaften aus:

Da sich Pascal durch eine sehr weitreichende Trennung zwischen Hardware/Betriebssystem und Programmcode auszeichnet, sind FPC-Programme in hohem Maße portierbar (in aller Regel genügt einfaches Compilieren auf dem Zielsystem, um aus einem Windows-Programm ein Linux- oder DOS-Programm zu machen). Mit Hilfe von InstantFPC ist es sogar möglich, Pascal-Programme als bedarfsweise kompilierte Unix- und CGI-Skripte auszuführen.

Entwicklungsumgebungen

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, u. a. Mac OS X, BSD, Solaris, Linux und Windows.
  • 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).
  • Megido ist ein inzwischen aufgegebener Versuch, eine IDE für Free Pascal zu entwickeln. Das Projekt wurde von Lazarus abgelöst.
  • Open Sibyl ist eine Free Pascal-basierte Entwicklungsumgebung für OS/2 und eCS.
  • 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.
  • PascalGUI ist eine Entwicklungsumgebung, die direkt auf Android-basierten Geräten läuft.
  • OmniPascal ist ein Free Pascal und Delphi Plugin für Visual Studio Code. Es ermöglicht u.A. erweiterte Navigation in Quelltext-Dateien, Codevervollständigung, sowie die Integration des Compilers.

Sprachdialekte

Free Pascal beherrscht den De-facto-Standard, die Borland-Pascal-Dialekte. In der Version 2.x ist Free Pascal nahezu Delphi-7-kompatibel. Weitere (bereits zu großen Teilen realisierte) Ziele sind: Implementierung der ANSI/ISO-Pascal-Dialekte und von 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
  • GPC – GNU-Pascal-Kompatibilitätsmodus
  • MACPAS – Kompatibilitätsmodus für Pascaldialekte auf Mac OS, wie Think Pascal, Metrowerks Pascal und MPW Pascal

Lieferumfang und Installation

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
  • Mehrere Pakete (Units):
    • bfd – Schnittstelle zur GNU-Binary-Format-Beschreibung
    • cdrom – CD-ROM-Schnittstelle
    • forms – Schnittstelle zu X-Forms
    • fpgtk – GTK
    • fv – Free Vision
    • gconf
    • gdbint – Schnittstelle zum gdb-Debugger
    • gdbm
    • ggi
    • gnome – Gnome-Schnittstelle
    • gtk – GTK+-Schnittstelle
    • gtk2 – GTK+-2-Schnittstelle
    • ibase – Schnittstelle zur InterBase-API
    • imlib
    • inet – Routinen zur Internet-Programmierung
    • libasync – Prozeduren für asynchrones I/O
    • libc
    • libgd
    • libpng
    • md5 – Routinen zur Berechnung von MD5-Prüfsummen
    • mysql – Schnittstelle zu MySQL
    • ncurses – Ncurses-Schnittstelle
    • netdb
    • newt
    • odbc – Schnittstelle zu ODBC
    • opengl – OpenGL-Schnittstelle
    • oracle – Schnittstelle zur Oracle-Datenbank
    • paszlib – Implementation der zlib-Routinen
    • pasjpeg
    • postgres – Schnittstelle zu PostgreSQL
    • pthreads
    • regexpr – Reguläre Ausdrücke
    • sqlite – SQLite-Schnittstelle
    • svgalib
    • syslog
    • tcl – Tcl-Schnittstelle
    • unixutil
    • unzip
    • utmp
    • uuid
    • x11 – X11-Schnittstelle
    • zlib
    • zvt
    • weitere Pakete/Units von Free-Pascal-Nutzern

Geschichte

Free Pascal entstand aus dem Wunsch heraus, 32-Bit-Pascalprogramme 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). 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.

Versionen

Erste Arbeiten an Free Pascal begannen im Jahre 1993. 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 Windows
Ältere Version; nicht mehr unterstützt: 0.99.12 25. Juni 1999 Windows
Ältere Version; nicht mehr unterstützt: 0.99.14 27. Januar 2000 Windows
Ältere Version; nicht mehr unterstützt: 1.0 12. Juli 2000 Windows Erste finale Version
Ältere Version; nicht mehr unterstützt: 1.0.2 12. Oktober 2000 Windows, FreeBSD Erste Unterstützung für FreeBSD
Ältere Version; nicht mehr unterstützt: 1.0.4 31. Dezember 2000 Windows, FreeBSD 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
Ältere Version; nicht mehr unterstützt: 1.0.10 11. Juli 2003 Windows, FreeBSD In erster Linie Fehlerbehebungen, einige Erweiterungen für Lazarus.
Ältere Version; nicht mehr unterstützt: 1.9 5. November 2003 Windows, FreeBSD, Linux 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 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 Unterstützung für ARM, SPARC und AMD64
Ältere Version; nicht mehr unterstützt: 1.9.8 24. Februar 2005 Windows, Mac OS X, Linux
Ältere Version; nicht mehr unterstützt: 2.0 15. Mai 2005 Windows, Mac OS X (Intel und PPC), Linux Umfangreiche Erweiterungen und Verbesserungen
Ältere Version; nicht mehr unterstützt: 2.0.1 3. Oktober 2005 Windows, Mac OS X (Intel und PPC), Linux 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 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 Enthalten in Lazarus 0.9.22
Ältere Version; nicht mehr unterstützt: 2.2 10. September 2007 Windows, Windows CE, GameBoy Advance, Nintendo DS, Mac OS X (Intel und PPC), Linux Erweiterungen der Sprache und der Infrastruktur, Unterstützung für Lazarus verbessert, enthalten in Lazarus 0.9.24
Ältere Version; nicht mehr unterstützt: 2.2.2 11. August 2008 Windows, Windows CE, GameBoy Advance, Nintendo DS, Mac OS X (Intel und PPC), Linux Erweiterungen der Sprache und der 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, Windows CE, GameBoy Advance, Nintendo DS, Mac OS X (Intel und PPC), Linux 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, auch 64 Bit), iOS, Linux 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), iOS, Linux Enthalten in Lazarus 0.9.30
Ältere Version; nicht mehr unterstützt: 2.4.4 22. Mai 2011 Windows, Mac OS X (Intel und PPC), iOS, 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 des Plattformsupports
Ältere Version; nicht mehr unterstützt: 2.6.4-rc1 19. Dezember 2013 Release Candidate für Version 2.6.4
Ältere Version; noch unterstützt: 2.6.4 11. März 2014 Windows, Mac OS X (Intel und PPC), Linux Fehlerkorrekturen, web- and 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
Aktuelle Version: 3.0.0
(Pestering Peacock)
25. November 2015 Windows, OS/2, Mac OS X (Intel und PPC), BSD, Linux, AIX, Android u.a.[2] 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.

Im Allgemeinen sind veröffentlichte Versionen mit geraden Versionsnummern bezeichnet. Wie auch 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 auch 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 und Haiku.

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

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 auf Apple Macintosh- und Apple iOS-Geräten vorrangig eingesetzten Programmiersprache Objective-C.

Plattformen

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

Folgende Betriebssysteme werden unterstützt:

In Entwicklung:

Weblinks

 Wikinews: Free Pascal – in den Nachrichten
Commons: Free Pascal – Sammlung von Bildern, Videos und Audiodateien

Literatur

  • Michaël Van Canneyt: Free Pascal 2 - Handbuch und Referenz, Computer & Literatur, 2. Auflage 2012, ISBN 978-3-936546-53-8

Einzelnachweise

  1. The freepascal Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 26. September 2018).
  2. ftp-Verzeichnis
  3. freepascal wiki: FPC JVM, abgerufen am 23. August 2011
  4. PalmOS port