Développé par | Florian Klämpfl |
---|---|
Première version | |
Dernière version | 3.2.2 ()[1] |
Dépôt | gitlab.com/freepascal.org |
Écrit en | Object Pascal, Pascal et assembleur |
Système d'exploitation | GNU/Linux, Microsoft Windows, BSD et macOS |
Environnement | Multiplate-forme |
Formats lus | FreePascal compiled Unit (d) |
Formats écrits | FreePascal compiled Unit (d) |
Type | Compilateur |
Licences | GNU GPL |
Site web | www.freepascal.org |
Free Pascal (ou Free Pascal Compiler ou FPC) est un compilateur pour le langage Pascal, développé en tant que logiciel libre.
Le projet a été initié par Florian Klämpfl en 1992, sous le nom FPK Pascal. La version 0.9.1 est publiée en [2]. En , le projet est placé sous le système de gestion de version CVS[3]. Il est aujourd'hui maintenu par une équipe de développeurs[4]. Le changement de nom de FPK Pascal en Free Pascal a eu lieu entre 1996 (FPK Pascal version 0.6.5[5]) et 1998 (Free Pascal version 0.99.5[3]). La version 1.0 de Free Pascal a été distribuée en , et la version 2.0 en [6].
Ses caractéristiques les plus notables sont :
À noter que si Free Pascal vise à une grande compatibilité, il introduit également des fonctionnalités qui ne sont pas prises en charge par Delphi, comme le mot-clef bitpacked
[7].
La généricité est définie avec les mots-clés generic et specialize, alors que dans Delphi, ces mots-clés ne sont pas utilisés. Voici un exemple :
type
generic TList<T> = class
...
end;
TIntegerList = specialize TList<Integer>;
Il est possible d'utiliser la syntaxe C pour ajouter, multiplier, etc. :
function Somme(a,b: integer): integer;
begin
{ calcul de la somme de a et de b }
result := 0;
result += a;
result += b;
end;
Comme la plupart des compilateurs modernes, Free Pascal peut être intégré à un environnement de développement intégré (EDI).
Lazarus est le plus populaire des EDI basés sur Free Pascal. Son objectif est de fournir aux programmeurs Pascal Objet un environnement de développement s'approchant le plus possible de Delphi. Il peut être utilisé pour créer des applications en console ou graphiques.
Lazarus vient avec un jeu de composants visuels et non visuels nommé Lazarus Component Library (LCL). Les applications graphiques créées à l'aide de la LCL peuvent être portées vers une autre plate-forme par simple recompilation (écrire une fois, compiler partout).
MSEide est un autre EDI basé sur Free Pascal. MSEgui, tout comme la LCL de Lazarus, est la bibliothèque logicielle fournie avec MSEide. Il communique directement avec X11 via Xlib sous Linux, et gdi32 sous Windows, et supporte le multiple document interface (MDI) ainsi que l'héritage visuel.