Oggetto Pascal

Oggetto Pascal
Paradigmi : procedurale , orientato agli oggetti
Anno di pubblicazione: 1986
Sviluppatore: Apple , Niklaus Wirth , Anders Hejlsbergls
Digitando : forte, esplicito (anche implicito se lo si desidera), statico
Implementazioni importanti : Embarcadero Delphi ( x86 e CLI ), Free Pascal (varie architetture), Oxygene (CLI, Java ), Virtual Pascal (x86), TMT Pascal (x86), Turbo51 ( Intel 8051 )
Dialetti: Free Pascal , Delphi.NET , Oxygene
Influenzato da: Turbo Pascal , Simula , Smalltalkta
Interessato: .NET , C# , Genie , Java , Nim , C/AL

Object Pascal è un nome collettivo per diversi derivati ​​del linguaggio di programmazione parzialmente compatibili che estendono Pascal per includere la programmazione orientata agli oggetti . La variante più nota è il linguaggio di programmazione dell'ambiente di sviluppo Embarcadero Delphi , che è stato sviluppato da Borland ed è stato talvolta chiamato Delphi Language ed è ora implementato anche da altri ambienti di sviluppo.

sviluppo

Sviluppo iniziale in Apple

La prima variante Object Pascal è stata creata in Apple all'inizio del 1985 , quando un team guidato da Larry Tesler, in collaborazione con il fondatore di Pascal Niklaus Wirth, ha sviluppato un dialetto Pascal orientato agli oggetti che era necessario per lo sviluppo del framework di sviluppo MacApp per Macintosh computer. Era un ulteriore sviluppo di una precedente variante Pascal orientata agli oggetti chiamata Clascal , disponibile per i computer Lisa .

Una versione Object Pascal simile alla versione Apple e ampiamente compatibile è stata poco dopo disponibile nell'ambiente di sviluppo THINK Pascal per computer Macintosh.

Ulteriore sviluppo a Borland, Inprise, Codegear ed Embarcadero

Nel 1986 Borland ha ampliato il suo ambiente di sviluppo Turbo Pascal per Apple Macintosh per includere funzionalità del linguaggio orientato agli oggetti che inizialmente erano molto simili all'implementazione Apple. Una versione per DOS seguì nel 1989 con Turbo Pascal 5.5 . Nel 1993 Borland iniziò a sviluppare Delphi come successore di Turbo Pascal per Windows . Nel 1995 Borland ha rilasciato Delphi 1.0, introducendo nuove estensioni del linguaggio come un nuovo modello a oggetti con supporto di classi esteso e regole di visibilità più diverse. Il vecchio modello a oggetti di Apple e Turbo Pascal ("Tipi di oggetti vecchio stile") era ed è tuttora supportato.

Nel tempo, la lingua è stata ulteriormente sviluppata e tra le altre cose. esteso da funzioni generiche e anonime .

Oltre al popolare Delphi, ci sono molti altri compilatori per Object Pascal come. i progetti open source Free Pascal e GNU Pascal . Miri ad essere parzialmente compatibile con Delphi, ma mantieni la tua definizione di lingua con le tue estensioni. L'attuale versione 3.0 di Free Pascal supporta sia gli oggetti vecchio stile che i concetti di classe più moderni introdotti con Delphi.

proprietà

La funzionalità di Object Pascal è paragonabile a quella di C++ , sebbene la sintassi sia molto diversa. Le variabili devono essere dichiarate e assegnate a un tipo di dati. Esistono classi con costruttori e distruttori , metodi e proprietà. I metodi possono essere virtuali . L' ereditarietà supporta solo una classe base ; Le interfacce consentono l'ereditarietà multipla . Il programmatore è responsabile della gestione della memoria degli oggetti. Le stringhe non sono interessate perché sono supportate come tipo di dati elementare.

Fino a Delphi 2005, gli oggetti venivano sempre creati sull'heap . Ciò rende possibile in Delphi passare qualsiasi oggetto al chiamante come risultato di una funzione. In altri linguaggi di programmazione, come B.C ++ , gli oggetti possono essere creati sia nell'heap che nello stack . Gli oggetti nello stack non possono essere trasferiti come valore di ritorno, poiché questi vengono eliminati insieme al resto del frame dello stack della funzione quando si esce dalla funzione. Pertanto, qui è stata presa una decisione di progettazione che solleva il programmatore Delphi dal decidere tra heap/stack e sceglie sempre la soluzione più flessibile. Lo svantaggio diretto di questa tecnica è che il programmatore deve rimuovere dalla memoria gli oggetti che ha creato. Questo non è necessario per gli oggetti nello stack. Da Delphi 2006, sono stati supportati anche i record con metodi, che possono essere utilizzati per creare oggetti stack simili a C++.

Programma di esempio

(Per Delphi e Free Pascal)

program ObjectPascalExample;

type
    THelloWorld = class
    public
        procedure Greet;
    end;

procedure THelloWorld.Greet;
begin
    Writeln('Hello, World!');
end;

var
    HelloWorld: THelloWorld;            { impliziter Zeiger }
begin
    HelloWorld := THelloWorld.Create;   { Konstruktor gibt einen Zeiger auf eine Instanz der Klasse THelloWorld zurück }

    try
        HelloWorld.Greet;
    finally
        HelloWorld.Free;                { Freigeben der Instanz }
    end;
end.

implementazioni

I compilatori e gli interpreti che supportano Object Pascal includono:

Librerie di classe

Esistono diverse librerie di classi per Object Pascal. Sotto Delphi, la Runtime Library (RTL) e la Visual Component Library (VCL) costituiscono tradizionalmente la base per lo sviluppo. Mentre il primo contiene funzionalità di base come le funzioni di elaborazione per le stringhe di caratteri, il secondo è una libreria di classi, in particolare per i componenti visivi (pulsanti, ecc.). A volte c'era anche la Component Library for Cross Platform (CLX) oltre alla VCL . Tuttavia, questo è stato interrotto. Firemonkey , una libreria di componenti basata su vettori e indipendente dalla piattaforma, in contrasto con la VCL, è stata introdotta con Delphi XE2 .

La maggior parte delle funzionalità si basa su librerie di classi, ma altre funzioni richieste molto frequentemente sono implementate direttamente dal compilatore, ad es. B. la perfetta integrazione della tecnologia COM in Windows . È possibile l' accesso diretto all'API di Windows . Esiste un gran numero di componenti di altri fornitori per un'ampia varietà di applicazioni. Alcune librerie open source e raccolte di componenti si sono affermate, in particolare JEDI Class Library (JCL), JEDI Visual Component Library (JVCL) e Internet Direct (Indy).

Per Free Pascal /Lazarus esistono librerie equivalenti a RTL e VCL, che differiscono nella gestione solo nel dettaglio e sono chiamate Free Component Library FCL e Lazarus Component Library LCL.

Influenza su altri linguaggi di programmazione

Alcuni degli elementi e delle idee di Object Pascal sono stati incorporati nel linguaggio di programmazione C# di Microsoft. Uno dei motivi è che numerosi co-sviluppatori Delphi a Borland sono stati catturati da Microsoft e hanno svolto un ruolo chiave nello sviluppo di C #. Tra questi c'erano il project manager di Delphi Anders Hejlsberg , per il quale il passaggio a Microsoft è stato reso appetibile con un bonus milionario, così come Chuck Jazdzewski (Delphi Chief Architect), Corbin Dunn (sviluppatore dell'IDE Delphi), Danny Thorpe ( Delphi, capo scienziato di Borland), Eddie Churchill e Ramin Halviatti. Hejlsberg è diventato capo dell'architettura software di Microsoft, co-inventore di .NET e capo sviluppatore di C#.

letteratura

  • Richard Kaiser: Object Pascal con Delphi - Un'introduzione alla programmazione Windows orientata agli oggetti ,
    Springer, (Ristampa del 1997) Berlino 2013, ISBN 3-540-60340-9
  • Martin Pyka: DirectX 9 in Delphi , BoD, 2004, ISBN 3-8334-0835-9
  • Thomas Binzinger: Ora sto imparando Delphi, La semplice introduzione a Object Pascal - per tutte le versioni fino a Delphi 2006 inclusa , Markt und Technik, Monaco di Baviera 2006, ISBN 3-8272-4108-1
  • Walter Doberenz, Thomas Kowalski: Delphi 7 - Nozioni di base, conoscenze professionali, libro di cucina ,
    Hanser, Monaco 2007, ISBN 3-446-41216-6
  • Hans-Georg Schumann: Delphi for Kids , bhv-Verlag, 4a edizione 2009, ISBN 3-826-68662-4
  • Wolf-Gert Matthäus: Programmazione del corso base con Delphi , Vieweg, 4a edizione 2011, ISBN 3-834-81668-X
  • Chris Rolliston: Fondamenti Delphi XE2 , CreateSpace, 2012, ISBN 978-1-4775-5089-2
  • Nick Hodges: Coding in Delphi , Nepeta Enterprises, 2014, ISBN 978-1-941266-03-8

link internet

Wikibooks: Corso di programmazione: Delphi  - materiali per l'apprendimento e l'insegnamento

Evidenze individuali

  1. Larry Tesler: Report Pascal dell'oggetto . In: Mondo linguistico strutturato . 9, n. 3, 1985, pp. 10-7.
  2. Ray Lischner: Delphi in poche parole: un riferimento rapido per il desktop , 1st. Edition, O'Reilly and Associates, Sebastopol, CA 2000, ISBN 1565926595 .
  3. Capo Borland: Microsoft ci sta derubando dei nostri dipendenti - Computer Week