Gratis Pascal

Gratis Pascal

Gratis Pascal-kompilator
Generell informasjon
programtype kompilator
utvikler Florian Paul Klämpfl og frivillige
Første utgivelse 1997
Tillatelse GNU
Teknisk informasjon
Planlagt inn
Versjoner
Siste stabile versjon plage påfugl25. november 2015
lesbare filer
FreePascal-kompilert enhet
redigerbare filer
FreePascal-kompilert enhet
Lenker
Offesiell nettside kodelager feilsporing

Free Pascal er en gratis og åpen kildekode bærbar Pascal kompilator , som representerer et alternativ til de kommersielle Turbo Pascal og Delphi produktene .

Introduksjon

Free Pascal er både en 32-biters og 64-biters kompilator for flere CPU-arkitekturer og flere operativsystemer . Kompilatoren implementerer Borland Turbo Pascal- og Delphi - dialektene til Pascal , pluss noen MacPascal- konstruksjoner . Den er tilgjengelig for de fleste populære operativsystemer .

Free Pascal ble opprinnelig kjent som FPK Pascal. Fordi FPK er initialene til forfatteren, Florian Paul Klämpfl, sto FPK Pascal aldri for "Fri Pascal Kompiler", selv om mange trodde det; å skrive "Compiler" med "K" er imidlertid sjelden i Tyskland. På slutten av 1997 ble navnet på prosjektet endret til Free Pascal Compiler (FPC) for å unngå denne forvirringen og på grunn av det økende antallet mennesker som bidrar.

FPC er et rimelig godt dokumentert prosjekt, med manualer på totalt 1800 sider.

De visuelle delene av Delphi-bibliotekene ( VCL ) og opprettelsen av en visuell IDE og RAD er en del av et eget prosjekt, kalt Lazarus .

Free Pascal-distribusjonen inkluderer en tekstmodus- IDE som ligner på Turbo Pascal. Selv om denne IDE-en hadde blitt dårligere en stund på grunn av mangel på vedlikehold, ble de fleste feilene rettet opp i fellesskap , så nå er den i ganske god form.

I likhet med Turbo Pascal og Delphi har Free Pascal utmerket støtte for å integrere assembly-språk i Pascal-kode. Videre støtter den flere arkitekturer og notasjoner.

Språkdialekt

FPC tok i bruk de facto standarddialektene til Pascal-programmerere, Borland-dialektene, spesielt Borland Pascal 7 og Delphi 2 for versjon 1.0.x av FPC, og Delphi 6/7 for versjon 2.0.x av FPC.

Imidlertid har prosjektet et "kompilatormodus"-konsept, og teamet gjorde det klart at de ville innlemme oppdateringene for ANSI/ISO-standardiserte dialekter for å lage en standardkompatibel modus.

Det er også gjort en liten innsats for å støtte noe av Apple Pascal-syntaksen, for enkel grensesnitt med Mac OS (X).

Mangler Delphi-funksjonalitet i Free Pascal:

Historikk

Tidlige år

Free Pascal dukket opp da Borland gjorde det klart at det ikke ville bli noen Borland Pascal 8 , og at neste versjon ville være et Windows-only produkt (som senere viste seg å være Delphi). En student, Florian Paul Klämpfl, begynte å jobbe med sin egen kompilator. Kompilatoren ble skrevet fra begynnelsen på Borlands Turbo Pascal-dialekt og produserte 32 - biters kode for DOS-utvideren go32v1, utviklet på den tiden av DJGPP -prosjektet . Opprinnelig var selve kompilatoren en 16-bits DOS-kjørbar kompilert av Turbo Pascal. Etter to år kunne kompilatoren kompilere seg selv, så den ble også 32-bit.

Utvidelse

Den første 32-bits kompilatoren ble lagt ut på nettet, og tidlige bidragsytere ble med i prosjektet. I årene etter utgivelsen på Internett gikk Michael van Canneyt over til Linux, hele 5 år før Kylix . DOS-porten ble tilpasset for bruk på OS/2 gjennom EMX-utvideren. DOS-versjonen ble også gradvis forbedret, og migrerte til go32v2-utvideren. Dette kulminerte med utgivelsen av versjon 0.99.5 som ble brukt mye mer enn tidligere versjoner, og den siste utgivelsen som kun var rettet mot Turbo Pascal-overholdelse. Senere utgivelser vil legge til en Delphi-kompatibilitetsmodus. 0.99.5 ble også portert til systemer som bruker 680x0 -serien CPUer .

I versjon 0.99.8 ble kompileringen for Win32 lagt til som et mål, og inkorporeringen av noen Delphi-funksjoner ble startet. Stabilisering ble startet for versjon 1.0-utgivelsen, og denne milepælen ble nådd i juli 2000. 1.0.x-serien, og stabiliserings- og feilrettingsutgivelsene som fulgte opp til versjon 1.0.10 i juli 2003 ble mye brukt både som bedrift og pedagogisk verktøy. For utgivelser i denne serien ble overgangen til 680x0 CPUer gjort igjen, så kompilatoren var i stand til å produsere stabil kode for en rekke datamaskiner med 68k prosessorer, som UNIX- og AmigaOS- systemer .

Den neste generasjonen

Under stabiliseringen av det som ble versjon 1.0.x, og spesielt ved portering til m68k-systemer, var det tydelig at kodegeneratordesignet var sterkt begrenset på mange måter. De to største problemene var at (1) å legge til prosessorer innebar i utgangspunktet omskriving av kodegeneratoren, og (2) registerallokering var basert på et prinsipp som var vanskelig å vedlikeholde og lite fleksibelt, og tvang deg til å ha 3 registre mellom byggeblokkene.

Av disse grunnene ble FPC 1.1.x delt fra hovedgrenen 1.0.x i desember 1999. Til å begynne med var endringene stort sett oppryddinger, kodeomskrivinger, i alle deler av kompilatoren; deretter ble kodegeneratoren og registerkartleggingen skrevet om. Som en bonus ble manglende Delphi-støtte lagt til.

Arbeidet med 1.1.x fortsatte sakte, men jevnt og trutt, og på slutten av 2003 begynte PowerPC-porten å fungere, etterfulgt av ARM- og Sparc-portene sommeren og høsten 2004. AMD64-porten fortsatte tidlig i 2004. Sistnevnte gjorde kompilatoren til både 32-bit og 64-bit.

I november 2003 ble en første betaversjon av 1.1.x-grenen pakket, og for anledningen ble versjonsnummeret økt til 1.9.0. Disse ble raskt fulgt av 1.9.2 og 1.9.4. Versjon 1.9.4 var spesiell fordi det var den første versjonen med Mac OS X -støtte .

Arbeidet fortsatte med versjon 1.9.6 i januar 2005, 1.9.8 i slutten av februar 2005, 2.0.0 i mai 2005, 2.0.2 i desember 2005 og 2.0.4 i august 2006. siste versjon er 3.0.3.

Fremtiden

Kortsiktig veikart (2.1.x)

Noe av målfunksjonaliteten (spesielt i linkerdelen) kan kreve restrukturering relatert til

Tilgjengelige plattformer

Tilgjengeligheten til FPC-kompilatoren avhenger av hovedversjonen.

Versjon 2.4.0, 2.4.2, 2.4.4, 2.6.0

Versjon 2.2.4

Versjon 2.1.x

Versjon 2.0.x

Den nåværende stabile versjonen 2.0.4 støtter følgende

Versjon 1.0.x

Den forrige stabile utgivelsen 1.0.x var tilgjengelig for:

Se også

Eksterne lenker