Pascal libre

leanup-blanchisserie

Le Pascal libre (ou FPK Pascal ou même FPC Pascal) est un libre, portable, le compilateur de Pascal .

Introduction

Le Pascal libre est une architecture multi- du 32/64-bit et le compilateur du système de multi-fonctionnement de . Le compilateur met en application les dialectes de Pascal de Borland ( Turbo Pascal et Delphes ) comme quelques constructions de MacPascal et est disponible pour la plupart des logiciels d'exploitation communs.

Libérer Pascal a employé pour être connu comme FPK Pascal, puisque FPK sont les initiales de l'auteur, Florian Paul Klämpfl . FPK Pascal n'a jamais signifié le " ; Pascal libre Kompiler" ;. " d'écriture ; Compiler" ; avec du K est rare en allemand. Pour éviter cette confusion, à l'extrémité du 1997 le nom du projet a été changé en compilateur de Pascal libre (FPC).

Pascal libre vient avec un mode ide des textes ressemblant à l'ide de Turbo Pascal. Cet ide détérioré pendant quelque temps en raison d'un défenseur absent, mais dans un effort commun en la deuxième moitié du 2005 et les premiers mois du 2006 , la plupart des bogues importants étaient fixe et l'ide est devenu libérer-digne encore.

Comme le Turbo Pascal et le Delphes , Pascal libre a l'excellent soutien de l'intégration du langage d'assemblage dans le code de Pascal. FPC soutient des architectures multiples et des notations dans l'assembleur interne.

Les parties visuelles des bibliothèques de Delphes (le VCL ) et la création d'un visuel ide et du rad font partie d'un projet séparé, Lazarre .

Dialecte de langue

pdate FPC a adopté les dialectes de norme de fait des programmeurs de Pascal : les dialectes de Borland. (Spécifiquement : Borland Pascal 7 et Delphes 2 pour la version 1.x, et pour la version 2.x les versions de cible pour la compatibilité de Delphes changée en 6/7). Cependant, le projet a un concept de mode de compilation, et les réalisateurs indiqués clairement qu'ils incorporeraient les pièces rapportées fonctionnantes pour l'ANSI/ISO ont normalisé des dialectes pour créer un mode conforme de normes.

Un petit effort a été fait de soutenir une partie de la syntaxe d'Apple Pascal, pour soulager l'interface à OS de Mac (x). Puisque le dialecte d'Apple met en application certains des dispositifs standard de Pascal que le coup manqué de TP/Delphi, FPC est un peu plus d'OIN compatible que ces derniers.

Le projet a la fonctionnalité absente de Delphes, par exemple interfaces duelles automatiques de COM IDispatch de (dispinterfaces). comme l'importation/exportation soutenues par compilateur des classes de/à les bibliothèques partagées (utiles pour par exemple Lazarre , qui met en application des paquets des composants)

Histoire

Les premières années

Libérer Pascal a émergé quand le Borland fait clairement là ne serait aucun Borland Pascal 8 , et la prochaine version être un produit de Windows-seulement (qui est devenu Delphes plus tard), et un étudiant (Florian Paul Klämpfl) a commencé à travailler à son propre compilateur. Le compilateur a été écrit dans ( Borland ) le dialecte de Turbo Pascal dès le début et a produit le code à 32 bits pour l'unité d'extension de DOS du go32v1 employée et développée par le projet du DJGPP actuellement. À l'origine le compilateur lui-même était un exécutable de 16 bits de DOS du compilé par le Turbo Pascal . Après deux ans, le compilateur pouvait en mesure au se compilent ainsi c'est devenu le à 32 bits aussi.

Expansion

Le compilateur à 32 bits initial a été édité sur le filet, et les premiers contribuants ont rejoint le projet. En années après l'édition sur l'Internet, un port de Linux a été fait par Michael van Canneyt (des cinq années complètes avant Kylix ), le port de DOS a été adapté pour l'usage dans OS/2 par l'unité d'extension d'EMX. La version de DOS également s'est améliorée graduellement, et a émigré à l'unité d'extension go32v2.5 dégagement avant lequel était beaucoup plus employée couramment que les versions, et le dernier dégagement visant seulement pour la conformité de Turbo Pascal : les dégagements postérieurs ajouteraient un mode de compatibilité de Delphes.5 a été également mis en communication aux systèmes using une unité centrale de traitement du 680x0 .8, la cible Win32 a été ajoutée, et un début a été fait avec incorporer quelques dispositifs de Delphes. La stabilisation pour un dégagement 1.0 a commencé, et cette étape importante a été atteinte en juillet 2000.x (et bogue-fixer/stabilisation qui ont suivi, derniers, 1.10 les dégagements en juillet 2003) était employée couramment, comme entreprise et outil éducatif. Pour les dégagements 1.x, le port aux unités centrales de traitement 680x0 a été refait, et le compilateur produit le code stable pour un certain nombre 68k de Unixes et AmigaOS .

La prochaine génération

Pendant la stabilisation de ce qui deviendrait 1.x, et particulièrement en mettant en communication aux systèmes de m68k, il était clair la conception du générateur de code était lointaine trop limitée de plusieurs manières. Les principaux problèmes étaient cela ajoutant des processeurs fondamentalement signifiés récrivant le générateur de code, et que l'attribution de registre a été basée sur le principe de garder toujours trois registres libres entre les blocs constitutifs, qui était inflexible et difficile de maintenir.

Pour ces raisons, FPC 1.x s'est embranché de la branche 1.x principale en décembre 1999. Au début, les changements étaient la plupart du temps des nettoyages et récrivent/conceptions à toutes les parties du compilateur, et puis le distributeur de générateur et de registre de code ont été récrits. Comme bonification, la compatibilité absente restante de Delphes a été ajoutée.

Le travail sur 1.x a continué lentement mais solidement, et dans 2003 en retard le port de PowerPC a commencé le travail, suivi de ARM et de ports de SPARC en été/chute 2004. Le gauche AMD64 suivi début 2004. Le port AMD64 a effectivement fait le compilateur 32/64-bit.

En novembre 2003, un premier bêta dégagement de la branche 1.x a été empaqueté, et pour l'occasion, le nombre de version a été changé en 1. Ceux-ci ont été rapidement suivis de la version 1.4 était spéciale parce que c'était la première version avec l'appui d'OS X de Mac.

Le travail a continué la version 1.8 (défunt février 2005), 2.2 (décembre 2005), 2.4 (août 2006), et le dégagement stable courant, 2.

Le futur

pdate Les dispositifs suivants sont absents de 2.x et sont nécessaires. Ceux identifiés par le † actuellement activement sont travaillés dessus dans la branche 2.

créent/améliorent l'appui de COM/OLE. Ceci a des facettes multiples :
Interfaces compatibles de COM/vmt
(VIEILLES) variantes (requises pour VIEUX)
le de † met en application la délégation de modèle de
L'enchaînement/corrigent/formats de fichier connexes :
Le † améliorent (se débarasser des dossiers de .a, de moins d'utilisation de mémoire) wince/32/64 de enchaînement futé seulement.
" amélioré ; packages" ; et bibliothèques dynamiques (PIC !) appui en général.
Le † améliorent l'enchaînement en travers.
croisement de stabs->dwarf de †. (plates-formes 64-bit à mettre en application d'abord)
Une certaine forme de ressources compatibles de Kylix. (Toujours à l'étude)
Apple Pascal connexe
Pouvant passer un subprocedure à un procédé différent en tant que procvar.
Récursion de queue
omission de stackframe.
le temp (registre) a basé l'optimisation de CSE

Certains de ces dispositifs, particulièrement dans la section de enchaînement, peuvent exiger des changements :
Réécriture de

la manipulation de module (unité), remise à plus tard pour signaler 2.2

Cibles

La disponibilité du compilateur de FPC dépend de la version principale.x (version de développement) En plus de toutes les cibles soutenues par 2.2, cette version soutient :
de

Symbian OS - avec la trousse à outils d'UIQ
OS X de Mac 64-bit (Darwin/x86_64)

Version 2.x (écurie courante)

Le soutien stable courant de la version 2.0 adds des systèmes suivants, sur les plates-formes existantes dans 2.x :
Win64
Mac de OS x (sur Intel, i386)
PowerPC 64-bit
Windows CE (Windows Mobile)
Nintendo Game Boy Advance (BRAS standard seulement)
Nintendo DS

Version 2.x


s processeurs IA-32 : Intel 80386 , processeurs compatibles, et processeurs postérieurs d'Intel de la même famille ( 80486 et le Pentiums ).
AMD64 : x86_64
PowerPC
BRAS
SPARC v8 et v9

Logiciels d'exploitation :
Linux : toutes les unités centrales de traitement
Schéma et famille
FreeBSD
Mac de OS x et Darwin (PowerPC)
OS de Mac de
DOS ; Unité d'extension Go32V2. Unité d'extension de PMode parfois utilisée pour les systèmes inclus
Win32 ( Microsoft Windows 95 et tous versions postérieures)
OS/2 : EMX et indigène
Novell NetWare
MorphOS

Version 1.x

Le stable précédent 1.x de dégagement était disponible pour les processeurs * Intel 80386 et
compatibles Motorola 680x0

et soutenu les logiciels d'exploitation suivants * Linux :
x86/m68k Schémas
FreeBSD
NetBSD : x86/m68k
DOS : Unité d'extension Go32V2. Unité d'extension de PMode parfois utilisée pour des projets inclus
Win32
OS/2 : EMX
Classique d'Amiga , m68k

et les bêtas plates-formes :
BeOS , bêta
Un bêta pour le OpenBSD /x86 a existé à un certain point.
SunOS , Solaris
QNX
Windows CE

Le logiciel d'applications a produit avec Pascal libre

Rédacteur d'image de Pixel : Photoshop-comme le rédacteur d'image fait avec FPC
Peazip : archiver de source ouverte, fait avec le Lazarre /FPC
Morfik : Morfik WebOS AppBuilder emploie Pascal libre pour produire les binaires en résultant de cgi

Voir également


Lazarre : un environnement de développement Integrated rapide de du développement d'applications (rad) (ide)

.

Random links:Viacheslav Fetisov | de vallée d'USS 1839) ( | Dollar de Fijian | Hans Daigeler | Russell Weigley | Pascal_libre