Pascal lliure

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
Compilador Pascal gratuït
programari
Logotip
Pascal lliure s’executa a través de la línia d’ordres
Pascal lliure s’executa a través de la línia d’ordres
Tipus Compilador
Desenvolupador L’equip Free Pascal Compiler
Data de la primera versió 1997
Última versió 3.2.2 (20 de maig de 2021)
Sistema operatiu Multiplataforma
Llenguatge Pascal
muntatge
Objecte Pascal
Llicència GLP
( llicència gratuïta )
Lloc web www.freepascal.org/

Free Pascal (també anomenat FPK Pascal o de nou FPC Pascal ) és un compilador multiplataforma Pascal . És programari lliure .

Introducció

Free Pascal és un compilador multiplataforma per a processadors de 32/64 bits. El compilador implementa el llenguatge Pascal de Borland : Turbo Pascal i Delphi ( Object Pascal ). També té algunes funcions típiques de MacPascal i està disponible per als sistemes operatius més habituals.

Free Pascal es coneixia amb el nom de FPK Pascal, ja que les lletres FPK eren les inicials del seu autor, Florian Paul Klämpfl . FPK mai no va voler dir "Pascal Kompiler gratuït", tot i que molta gent ho pensava. A més, escriure "Compilador" amb "K" no és molt comú en alemany. A finals de 1997 , el nom del projecte es va canviar per Free Pascal Compiler (FPC) per evitar confusions i perquè cada vegada hi havia més persones que contribuïen al projecte.

FPC és un projecte raonablement ben documentat, amb manuals que sumen 1800 pàgines. Les parts visuals de les biblioteques Delphi (VCL) i la creació d’un IDE visual i RAD formen part d’un projecte separat, Lazarus .

Free Pascal es distribueix amb un IDE basat en text similar al de Turbo Pascal . Aquest IDE s'ha deteriorat durant algun temps a causa de la manca d'un mantenidor, però amb un esforç conjunt entre la segona meitat del 2005 i els primers mesos del 2006, la majoria dels errors principals s'han corregit i l'IDE ha tornat. llest per a llançaments .

Igual que Turbo Pascal i Delphi , Free Pascal té un excel·lent suport per integrar el llenguatge Assembly al codi Pascal. FPC fins i tot admet múltiples arquitectures i notacions a l'assemblador intern.

Free Pascal va ser elegit "projecte del mes" el desembre de 2018 a SourceForge.

Dialecte del llenguatge

Necessita una actualització
FPC va adoptar el dialecte estàndard dels programadors Pascal : el de Borland (específicament: Borland Pascal 7 i Delphi 2 a la versió 1.0.x; a la versió 2.0.x hi va haver la transició a Delphi 6/7 per compatibilitat).

Sigui com sigui, el projecte utilitza el concepte de mode de compilació i l' equip ha deixat clar que està disposat a incorporar pegats per als dialectes estandaritzats ANSI / ISO per crear un mode de compilació que compleixi els estàndards.

A més, s’ha fet un petit esforç per donar suport a algunes de la sintaxi d’ Apple Pascal per facilitar la interfície amb Mac OS (X). Atès que el dialecte d'Apple implementa algunes característiques de l'estàndard Pascal que no tenen TP / Delphi, l'FPC és lleugerament més compatible amb els estàndards ISO que aquest últim, amb més funcions compatibles en el camí.

Falten les funcions de Delphi

Tot i gaudir d’una bona compatibilitat, hi ha algunes funcions de Delphi que no són compatibles amb Free PascaL:

  • Delegació mitjançant l'ús de la paraula clau " implementos " (2.0.x, corregit a 2.1+);
  • Interfícies dobles COM IDispatch automàtiques ( interfícies );
  • dispid en interfícies normals (2.0.x, fixat en 2.1+);
  • paquets : compatibilitat del compilador per importar / exportar classes de / a biblioteques compartides (útil, per exemple, per a Lazarus , que implementa paquets de components);
  • els tipus de conjunt poden tenir mides diferents. (2.0.x, corregit a 2.1+);

Història

Primers anys

quan Borland va anunciar que no hi hauria Borland Pascal 8 i les versions posteriors només serien Windows (que després es convertiria en Delphi), un estudiant (Florian Paul Klämpfl) va començar a treballar al seu compilador. El compilador es va escriure inicialment en el dialecte ( Borland ) Turbo Pascal i va produir codi de 32 bits per a l’ extensor go32v1 DOS , utilitzat i desenvolupat pel projecte DJGPP . Originalment, el mateix compilador era un executable DOS de 16 bits compilat amb Turbo Pascal . Al cap de dos anys, el compilador va poder compilar i també es va convertir en 32 bits .

Expansió

El compilador inicial de 32 bits es va publicar en línia i els primers col·laboradors es van unir al projecte. Els anys posteriors a la seva publicació a Internet, el compilador va ser portat a Linux per Michael van Canneyt (5 anys abans de Kylix ) i la versió DOS es va adaptar per utilitzar-la a OS / 2 mitjançant l'extensor EMX. La versió DOS i tres també es va millorar gradualment i es va migrar a l'extensor go32v2. Aquest procés va culminar amb la versió 0.99.5, que era molt més utilitzada que les versions anteriors, i que era la darrera versió destinada només al compliment de Turbo Pascal: les versions posteriors també afegiran un mode compatible amb Delphi. La versió 0.99.5 també es va portar a sistemes amb CPU de 680x0 .

Amb 0.99.8 es va afegir a l'objectiu Wii32 i es van començar a afegir algunes funcions de Delphi no. La fita de la versió 1.0 estable es va assolir el juliol de 2000. La sèrie 1.0.x (i les versions posteriors de correcció d'errors / estabilització, la última, 1.0.10, al juliol de 2003) es van utilitzar àmpliament, tant a nivell comercial com educatiu. finalitats. Per a versions 1.0.x, es va tornar a fer la portació a CPU de 680x0 i el compilador va ser capaç de produir codi estable per a sistemes Unix equipats amb CPU de 68 k i per a AmigOS .

La propera generació

Durant el procés d'estabilització del que seria la versió 1.0.x, particularment quan es portava a sistemes m68k, va quedar clar que el disseny del generador de codi era massa limitat en diversos aspectes. Els principals problemes consistien en l’addició d’un nou processador, que bàsicament significava reescriure el generador de codi, i l’assignació del registre, que es basava en el principi de mantenir sempre 3 registres lliures entre els blocs de construcció, que era inflexible i difícil de mantenir.

Per aquests motius, el desembre de 1999 es va ramificar la branca FPC 1.1.x des de la branca 1.0.x principal. Al principi, els canvis consistien principalment en netejar i reescriure totes les parts del compilador; es va tornar a escriure el generador de codi i l'assignador de registres . Com a bonificació, es van afegir funcions que faltaven a la compatibilitat de Delphi.

El treball a 1.1.x va continuar lentament però de manera constant, i cap a finals del 2003 va començar a funcionar el port per a PowerPC, seguit del port per a ARM i SPARC a l’estiu / hivern del 2004, que va ser seguit pel port per a AMD64. La portabilitat a AMD64 va fer que el compilador fos de 32/64 bits.

Al novembre de 2003, es va llançar una primera versió beta de la sucursal 1.1.x i, per a l'ocasió, el número de versió es va canviar a 1.9.0. 1.9.2 i 1.9.4 seguiren ràpidament. La versió 1.9.4 era especial perquè era la primera amb suport per a Mac OS X.

El treball es va continuar amb les versions 1.9.6 (gener de 2005 ), 1.9.8 (finals de febrer de 2005), 2.0.0 (maig de 2005), 2.0.2 (desembre de 2005), 2.0.4 (agost de 2006 ) i 2.2.0 (setembre) 2007 ).

Desenvolupaments futurs

Falten les funcions següents a la versió 2.0.x i són necessàries. Els marcats amb † es treballen actualment a la branca 2.1.x / 2.3.1.

  • Crear / millorar el suport per COM / OLE . Aquesta tasca té diverses facetes:
    • Interfícies compatibles amb COM / vmt
    • (OLE) Variants (obligatòries per a OLE)
    • † delegació mitjançant eines
  • Format d'enllaç / depuració / fitxer:
    • † Milloreu l'enllaç intel·ligent (suprimiu fitxers .a, menys ús de memòria), actualment només per a wince / 32/64.
    • Milloreu els "paquets" i, en general, el suport per a biblioteques dinàmiques (PIC!).
    • † Millorar la reticulació.
    • † Stabs-> crossover nan. (per implementar primer plataformes de 64 bits)
    • Creeu algun tipus de compatibilitat per als recursos de Kylix . (Encara s'està debatent)
  • Apple Pascal :
    • Possibilitat de passar un subprocediment a un procediment diferent com procvar.
    • Embalatge de registres
  • Optimització :
    • Recursió de la cua
    • Omissió de Stackframe
    • Optimització CSE basada en temporals (registre)

Algunes d'aquestes funcions, especialment les de la secció d' enllaços , poden requerir alguns canvis:

  • † Introducció d'un enllaçador intern per a algunes plataformes. (elimineu l'enllaçador extern, LD) (només s'implementarà per a wince / 32/64)
  • Reescriptura de la gestió de mòduls (unitat), posposada fins després de la versió 2.2

Objectiu

La disponibilitat del compilador FPC depèn de les versions principals.

Versió 3.2.2 (corrent estable)

Versió 2.4.x

En aquesta versió, s’han afegit i completat diverses plataformes:

  • Millora de la destinació de macOS de 64 bits (x86_64 / ppc64)
  • iPhone (Mac OS X / Arm)
  • Haiku (de la família BeOS )
  • Millora del suport a ARM EABI

Versió 2.3.x

A més de tots els objectius compatibles amb la versió 2.2, aquesta versió admet:

Versió 2.2.x

La versió estable actual 2.2.0 afegeix compatibilitat amb:

Versió 2.0.x

Processador :

Sistemes operatius:

Versió 1.0.x

L’anterior versió estable 1.0.x estava disponible per al processador

i va donar suport als següents sistemes operatius

i plataformes beta:

Programari d'aplicació produït amb Free Pascal

Articles relacionats

Altres projectes

Enllaços externs

Notes generals

Llocs web oficials

Eina de desenvolupament

Llocs especialitzats en desenvolupament de videojocs

Control de l'autoritat GND ( DE ) 7659226-1
Programari lliure Portal de programari lliure : accediu a les entrades de Viquipèdia relacionades amb programari lliure