Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Free Pascal - Teknopedia
Free Pascal - Teknopedia
Niente fonti!
Questa voce o sezione sull'argomento Software non cita le fonti necessarie o quelle presenti sono insufficienti.

Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti del progetto di riferimento.
Free Pascal Compiler
software
Logo
Logo
Free Pascal eseguito tramite riga di comando
Free Pascal eseguito tramite riga di comando
Free Pascal eseguito tramite riga di comando
GenereCompilatore
SviluppatoreThe Free Pascal Compiler team
Data prima versione1997
Ultima versione3.2.2 (20 maggio 2021)
Sistema operativoMultipiattaforma
LinguaggioPascal
linguaggio assembly
Object Pascal
LicenzaGPL
(licenza libera)
Sito webwww.freepascal.org/
Modifica dati su Wikidata · Manuale

Free Pascal (chiamato anche FPK Pascal od ancora FPC Pascal) è un compilatore Pascal multipiattaforma. È un software libero.

Introduzione

[modifica | modifica wikitesto]

Free Pascal è un compilatore multipiattaforma per processori a 32/64 bits. Il compilatore implementa il linguaggio Pascal della Borland: Turbo Pascal e Delphi (Object Pascal). Inoltre possiede alcune caratteristiche tipiche del MacPascal ed è disponibile per i più comuni sistemi operativi.

Free Pascal era conosciuto con il nome di FPK Pascal, poiché le lettere FPK erano le iniziali del suo autore, Florian Paul Klämpfl. FPK non ha mai significato "Free Pascal Kompiler" anche se molte persone pensavano ciò. Inoltre, scrivere "Compiler" con la "K" non è molto comune in Tedesco. Alla fine del 1997, il nome del progetto fu cambiato in Free Pascal Compiler (FPC) per evitare confusioni e perché sempre più persone stavano contribuendo al progetto.

FPC è un progetto ragionevolmente ben documentato, con manuali per un totale di 1800 pagine. Le parti visuali delle librerie di Delphi (la VCL) e la creazione d'un IDE e di un RAD visuali fanno parte di un progetto separato, Lazarus.

Free Pascal è distribuito con un IDE in modalità testuale somigliante a quello del Turbo Pascal. Questo IDE si è deteriorato per un certo periodo di tempo per la mancanza di un manutentore, ma con uno sforzo comune tra la seconda metà del 2005 e i primi mesi del 2006, la maggior parte dei bug maggiori sono stati risolti e l'IDE è tornato di nuovo ad essere pronto per le release.

Come il Turbo Pascal e Delphi, Free Pascal ha un eccellente supporto per l'integrazione del linguaggio Assembly all'interno del codice Pascal. FPC supporta perfino architetture e notazioni multiple nell'assembler interno.

Free Pascal è stato eletto 'progetto del mese' nel dicembre 2018 su SourceForge.

Dialetto del linguaggio

[modifica | modifica wikitesto]

Necessita di un aggiornamento
FPC adottava il dialetto standard dei programmatori Pascal: quello Borland (nello specifico: Borland Pascal 7 e Delphi 2 nella versione 1.0.x; nella versione 2.0.x si è avuto il passaggio a Delphi 6/7 per compatibilità).

Comunque sia, il progetto utilizza il concetto di modalità di compilazione e il team ha chiarito che è disponibile ad incorporare delle patch per i dialetti standardizzati ANSI/ISO per creare una modalità di compilazione conforme agli standard.

Inoltre è stato fatto un piccolo sforzo per supportare una parte della sintassi del Pascal Apple per facilitare l'interfacciamento con il Mac OS (X). Poiché il dialetto Apple implementa alcune caratteristiche del Pascal Standard che mancano in TP/Delphi, FPC è leggermente più compatibile con gli standard ISO rispetto a questi ultimi, con ulteriori caratteristiche supportate in arrivo.

Funzionalità di Delphi mancanti

[modifica | modifica wikitesto]

Nonostante goda di una buona compatibilità, ci sono alcune funzionalità di Delphi non supportate da Free Pascal:

  • Delegazione tramite l'utilizzo della parola chiave "implements" (2.0.x, corretta in 2.1+);
  • Automatic COM IDispatch dual interfaces (dispinterfaces);
  • dispid in normal interfaces (2.0.x, corretta in 2.1+);
  • packages: supporto nel compilatore di importazione/esportazione di classi da/verso librerie condivise (utile, per esempio, per Lazarus, che implementa package di componenti);
  • set types possono avere dimensioni differenti. (2.0.x, corretta in 2.1+);

Storia

[modifica | modifica wikitesto]

Primi anni

[modifica | modifica wikitesto]

Quando Borland annunciò che non ci sarebbe stato nessun Borland Pascal 8 e le successive versioni sarebbero state solo per Windows (che sarebbe divenuto Delphi in seguito), uno studente (Florian Paul Klämpfl) iniziò a lavorare sul suo compilatore. Il compilatore inizialmente era scritto nel dialetto (Borland) Turbo Pascal e produceva codice a 32-Bit per il DOS extender go32v1, utilizzato e sviluppato dal progetto DJGPP. Originariamente lo stesso compilatore era un eseguibile DOS a 16-bit compilato con il Turbo Pascal. Dopo due anni, il compilatore fu capace di autocompilarsi e diventò anche a 32-bit.

Espansione

[modifica | modifica wikitesto]

L'iniziale compilatore a 32-bit fu pubblicato in rete e i primi contributori si unirono al progetto. Negli anni successivi alla pubblicazione in Internet, il compilatore venne portato verso Linux da Michael van Canneyt (5 anni prima di Kylix) e la versione per DOS venne adattata per l'utilizzo in OS/2 tramite l'EMX extender. Anche la versione per DOS venne migliorata gradualmente e migrata verso l'extender go32v2. Questo processo culminò nella release 0.99.5 che fu molto più utilizzata delle versioni precedenti, e che fu l'ultima release mirata soltanto alla conformità con il Turbo Pascal: le release successive aggiungeranno anche una modalità compatibile con Delphi. La release 0.99.5 fu anche portata verso i sistemi dotati di CPU 680x0.

Con la 0.99.8 venne aggiunto il target Win32 e si cominciò ad aggiungere alcune caratteristiche di Delphi. La pietra miliare della release 1.0 stabile fu raggiunta nel luglio 2000. La serie 1.0.x (e le release con bug-fix/stabilizzazioni che seguirono, l'ultima, la 1.0.10, nel luglio 2003) fu usata largamente, sia a fini commerciali che educativi. Per le release 1.0.x venne rifatto il porting verso le CPU 680x0 e il compilatore fu in grado di produrre codice stabile per i sistemi Unix dotati di CPU 68k e per l'AmigaOS.

La generazione successiva

[modifica | modifica wikitesto]

Durante il processo di stabilizzazione di quella che sarebbe diventata la release 1.0.x, in particolar modo durante il porting verso i sistemi m68k, risultò chiaro che il design del generatore di codice era troppo limitato sotto diversi aspetti. I problemi principali riguardavano l'aggiunta di un nuovo processore, che significava fondamentalmente riscrivere il generatore di codice, e l'allocazione del registro, che si basava sul principio di mantenere sempre 3 registri liberi tra i building blocks, cosa poco flessibile e difficile da mantenere.

Per questi motivi, nel dicembre 1999 venne ramificato il ramo FPC 1.1.x dal ramo principale 1.0.x. All'inizio, i cambiamenti riguardarono principalmente la pulizia e la riscrittura di tutte le parti del compilatore; vennero quindi riscritti il generatore di codice e l'allocatore del register. Come bonus vennero aggiunte le caratteristiche che mancavano alla compatibilità con Delphi.

Il lavoro sul 1.1.x continuò lentamente ma costantemente, e verso la fine del 2003 cominciò a funzionare il porting per PowerPC, seguito da quello per ARM e SPARC verso l'estate/autunno del 2004 a cui seguì il porting per AMD64. Il porting per AMD64 rese il compilatore per 32/64-bit.

Nel novembre 2003, una prima release beta del ramo 1.1.x venne distribuita e, per l'occasione, il numero di versione venne modificato in 1.9.0. Seguirono rapidamente la 1.9.2 e la 1.9.4. La versione 1.9.4 risultò speciale perché fu la prima con il supporto per Mac OS X.

Il lavoro continuò con la versione 1.9.6 (gennaio 2005), 1.9.8 (fine febbraio 2005), 2.0.0 (maggio 2005), 2.0.2 (dicembre 2005), 2.0.4 (agosto 2006) e 2.2.0 (settembre 2007).

Sviluppi successivi

[modifica | modifica wikitesto]

Le seguenti caratteristiche mancano nella versione 2.0.x e sono richieste. Quelle segnate con † sono attualmente in lavorazione nel ramo 2.1.x/2.3.1.

  • Creare/migliorare il supporto per COM/OLE. Questo compito ha diverse sfaccettature:
    • Interfacce/vmt compatibili con COM
    • (OLE)Variants (richiesto per OLE)
    • † delegazione tramite implements
  • Linking/debug/formato di file:
    • † Migliorare lo smart linking (eliminare i file .a, minor uso di memoria), al momento solo per wince/32/64.
    • Migliorare i "package" e in generale il supporto per le librerie dinamiche (PIC!).
    • † Migliorare il cross linking.
    • † Stabs->dwarf crossover. (da implementare prima le piattaforme a 64-bit)
    • Creare una sorta di compatibilità per le risorse di Kylix. (Ancora in discussione)
  • Apple Pascal:
    • Possibilità di passare una sotto procedura ad una differente procedura come procvar.
    • † Bitpacking dei record
  • Ottimizzazione:
    • Tail recursion
    • Stackframe omission
    • Ottimizzazione CSE basata su temp (register)

Alcune di queste caratteristiche, in particolar modo quelle nella sezione relativa al linking, possono richiedere alcune modifiche:

  • † Introduzione di un linker interno per alcune piattaforme. (rimozione del linker esterno, LD) (da implementare solo per wince/32/64)
  • Riscrittura della gestione dei moduli (unit), rimandato a dopo la versione 2.2

Target

[modifica | modifica wikitesto]

La disponibilità del compilatore FPC dipende dalle versioni maggiori.

Versione 3.2.2 (stabile corrente)

[modifica | modifica wikitesto]
Sezione vuotaQuesta sezione sull'argomento informatica è ancora vuota. Aiutaci a scriverla!

Versione 2.4.x

[modifica | modifica wikitesto]

In questa versione sono state aggiunte ed ultimate diverse piattaforme:

  • Migliorato il target macOS 64-bit (x86_64/ppc64)
  • iPhone (Mac OS X/Arm)
  • Haiku (dalla famiglia BeOS)
  • Migliorato il supporto ad ARM EABI

Versione 2.3.x

[modifica | modifica wikitesto]

Oltre a tutti i target supportati dalla versione 2.2, questa versione supporta:

  • Symbian OS - con il toolkit UIQ
  • Mac OS X 64-bit (Darwin/x86_64)

Versione 2.2.x

[modifica | modifica wikitesto]

La versione stabile corrente 2.2.0 aggiunge il supporto per:

  • Win64
  • macOS (su Intel, i386)
  • PowerPC 64-bit
  • Windows CE (Windows Mobile)
  • Nintendo Game Boy Advance (standard ARM only)
  • Nintendo DS (standard ARM only)

Versione 2.0.x

[modifica | modifica wikitesto]

Processore:

  • iA-32: Intel 80386, processori compatibili e successivi processori Intel della stessa famiglia (80486 e Pentium).
    • AMD64: x86_64
  • PowerPC
  • ARM
  • SPARC v8 e v9

Sistemi operativi:

  • Linux: tutte le CPU
  • BSD e famiglia
    • FreeBSD
    • macOS e Darwin (PowerPC)
  • Mac OS
  • DOS; Go32V2 extender. PMode extender utilizzato talvolta nei sistemi embedded
  • Win32 (Microsoft Windows 95 e tutte le versioni successive)
  • OS/2: EMX e nativo
  • Novell NetWare
  • MorphOS

Versione 1.0.x

[modifica | modifica wikitesto]

La precedente versione stabile 1.0.x era disponibile per Processore

  • Intel 80386 e compatibili
  • Motorola 680x0

e supportava i seguenti sistemi operativi

  • Linux: x86/m68k
  • BSDs
    • FreeBSD
    • NetBSD: x86/m68k
  • DOS: Go32V2 extender. PMode extender utilizzato talvolta nei sistemi embedded
  • Win32
  • OS/2: EMX
  • Amiga Classic, m68k

e le piattaforme beta:

  • BeOS, beta
  • Una versione beta per OpenBSD/x86 è esistita per un determinato periodo.
  • SunOS, Solaris
  • QNX
  • Windows CE

Software applicativi prodotti con Free Pascal

[modifica | modifica wikitesto]
  • Pixel image editor Archiviato il 28 settembre 2007 in Internet Archive.: Editor di immagini simile a Photoshop
  • Peazip: Programma di archiviazione a sorgente aperto, prodotto con Lazarus/FPC
  • Morfik: Morfik WebOS AppBuilder utilizza Free Pascal per produrre binari CGI

Voci correlate

[modifica | modifica wikitesto]
  • Lazarus (software)
  • Pascal (linguaggio di programmazione)

Altri progetti

[modifica | modifica wikitesto]

Altri progetti

  • Wikibooks
  • Wikimedia Commons
  • Collabora a Wikibooks Wikibooks contiene testi o manuali su Pascal
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su Free Pascal

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) Sito ufficiale, su freepascal.org. Modifica su Wikidata
  • Repository sorgenti di Free Pascal, su gitlab.com. Modifica su Wikidata
  • Sito di segnalazione bug, su bugs.freepascal.org. Modifica su Wikidata
  • (EN) Free Pascal, su Free Software Directory. Modifica su Wikidata
Note generali
  • Introduzione al Free Pascal 2.0, di Daniël Mantione, con una introduzione approfondita alla nuova versione e un breve escursus della storia del suo sviluppo.
  • Iniziare con FPC.
Siti web ufficiali
  • Free Pascal, su freepascal.org.
  • Lazarus, RAD per FPC, su lazarus.freepascal.org.
  • FPC sul Mac—Pagina dello stato del compilatore FPC per il Mac OS Classic. (Il port verso Mac OS X è curato dalla squadra Unix di FPC)
  • Community italiana di Lazarus, su lazaruspascal.it.
Tool di sviluppo
  • FPS un completo IDE Win32 per FPC, comprensivo di debugger (trace, breakpoint e finestre di watch)
  • DevPascal IDE Win32 per FPC.
  • FPCShell un altro IDE Win32 per FPC.
  • MSEide+MSEgui un sistema di sviluppo GUI RAD/multipiattaforma per FPC
  • CrossFPC un toolkit libero per integrare il compilatore Free Pascal, capace di produrre eseguibili per svariati sistemi operativi e per diverse piattaforme, nell'IDE Borland Delphi. Altre informazioni sul progetto su questa discussione nella mailing list Archiviato il 22 agosto 2007 in Internet Archive..
Siti specializzati nello sviluppo di videogiochi
  • Pascal Game Development.
  • FPC 4 GBA Initiative Sito di supporto al progetto per il porting del Free Pascal su piattaforma GameBoy Advance
  • Francesco's knick-knacks Sito del progetto per il porting del compilatore Free Pascal e relative librerie su piattaforma Nintendo (GameBoy Advance e Nintendo DS)
V · D · M
Ambienti di sviluppo integrati
C e C++
Open source
  • Android Studio
  • Anjuta
  • Code::Blocks
  • CodeLite
  • Dev-C++
  • Eclipse
  • Geany
  • GNAT Programming Studio
  • GNOME Builder
  • KDevelop
  • MonoDevelop
  • NetBeans
  • QDevelop
  • Qt Creator
  • SharpDevelop
  • Ultimate++
  • OpenWatcom
Freeware
  • Oracle Developer Studio
  • Visual Studio Community
  • Xcode
Retail
  • C++Builder
  • Basati su Eclipse
    • CodeWarrior
    • MyEclipse
  • Visual Studio
  • Di JetBrains
    • IntelliJ IDEA
    • AppCode
    • CLion
  • LabWindows/CVI
  • LccWin32
  • IBM Rational Software Architect
  • Understand
Fuori produzione
  • IBM VisualAge
  • Visual C++ Express
  • Borland Turbo C
Java
Open source
  • BlueJ
  • DrJava
  • Eclipse
  • Geany
  • Greenfoot
  • IntelliJ IDEA Community Edition
    • Android Studio
  • NetBeans
  • Servoy Community Edition
Freeware
  • jGRASP
  • JDeveloper
  • Xcode
Retail
  • JCreator
  • MyEclipse
  • IBM
    • Rational Application Developer
    • WebSphere Integration Developer
  • JetBrains IntelliJ IDEA
  • Servoy Business Application Platform Edition
  • Understand
Fuori produzione
  • Metrowerks CodeWarrior Pro for Java
  • JBuilder
  • Visual J++
CLI
Open source
  • MonoDevelop
  • SharpDevelop
  • Visual Studio Code
  • PascalABC.NET
Freeware
  • Visual Studio Community
Retail
  • Visual Studio
  • Rider
  • Understand
Fuori produzione
  • Xamarin Studio
  • Suite Microsoft Visual Studio Express
PHP
  • Aptana
  • NetBeans
  • PhpStorm
  • KDevelop
Python
  • Eric
  • Light Table
  • Ninja-IDE
  • PyCharm
  • PyDev
  • Spyder
  • Wing IDE
  • KDevelop
  • Visual Studio Code
  • Thonny
Pascal e Object Pascal
Open source
  • Free Pascal IDE
  • Lazarus
  • Dev-Pascal
  • GNAVI
Freeware
  • Delphi Community
Retail
  • Delphi
Fuori produzione
  • Turbo Pascal for Windows
  • Virtual Pascal
BASIC
Open source
  • MonoDevelop
  • SharpDevelop
  • Gambas
  • HBasic
  • Basic For Qt
  • QB64
Freeware
  • Microsoft Small Basic
  • FutureBASIC
  • RapidQ
  • thinAir
Retail
  • B4X (Basic4ppc)
  • Microsoft Visual Studio
  • NS Basic
  • PureBasic
  • GLBasic
  • Liberty BASIC
  • Xojo
Fuori produzione
  • QuickBASIC
  • QBASIC
  • Visual Basic
Categoria
V · D · M
Software libero e open source
GeneraleCopyleft · Eventi · Software libero · Definizione · Gratis versus libre · Open source
Famiglie di sistemi operativiAros Research Operating System · BSD · Darwin · eCos · FreeDOS · GNU · Haiku · Inferno · Linux · Mach · Minix · OpenSolaris · Plan 9 · ReactOS · Redox · Symbian OS
Sviluppo software open sourceEclipse · Free Pascal · GCC · Gambas · Java · LLVM · Lua · NetBeans · Octave · Open64 · Perl · PHP · Python · ROSE · Ruby · Tcl
Storia del software liberoGNU · Haiku · Linux · Mozilla (Application Suite · Firefox · Thunderbird)
OrganizzazioniApache Software Foundation · Blender Foundation · Eclipse Foundation · freedesktop.org · Free Software Foundation (Europe · India · Latin America) · FSMI · GNOME Foundation · Google Code · KDE · Linux Foundation · Mozilla Foundation · Open Source Geospatial Foundation · Open Source Initiative · Software Freedom Conservancy · SourceForge · Symbian Foundation · The Document Foundation · Ubuntu Foundation · Xiph.Org Foundation · XMPP Standards Foundation · X.Org Foundation · Software Freedom Law Center
Licenze libereApache · Artistica · BSD · GNU GPL · GNU LGPL · ISC · MIT · MPL · Ms-PL/RL · zlib · Licenze approvate da FSF
Standard di licenzeOpen Source Definition · The Free Software Definition · Debian Free Software Guidelines
SfideBlob binario · Canonical's contributor agreement · Digital rights management · Rebranding dei programmi Mozilla · Software proprietario · Causa SCO-IBM · Restrizioni hardware · Trusted computing · Licenza virale · Guerra dei browser · Halloween Documents
Altri argomentiTermini alternativi · Comunità software libero · Distribuzione Linux · Forking · Movimento software libero · Microsoft Open Specification Promise · Revolution OS
Controllo di autoritàGND (DE) 7659226-1
  Portale Software libero: accedi alle voci di Teknopedia che trattano di software libero
Estratto da "https://it.wikipedia.org/w/index.php?title=Free_Pascal&oldid=147772056"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022