Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Object Pascal

aus Wikipedia, der freien Enzyklopädie
Object Pascal
Basisdaten
Paradigmen:prozedural,objektorientiert
Erscheinungsjahr:1986
Entwickler:Apple,Niklaus Wirth,Anders Hejlsberg
Typisierung:stark, explizit (auf Wunsch auch implizit), statisch
WichtigeImplementierungen:Embarcadero Delphi (x86 undCLI),Free Pascal (diverse Architekturen), Oxygene (CLI,Java),Virtual Pascal (x86),TMT Pascal (x86),Turbo51 (Intel 8051)
Dialekte:Free Pascal,Delphi.NET, Oxygene
Beeinflusst von:Turbo Pascal,Simula,Smalltalk
Beeinflusste:.Net-Framework,C#,Genie,Java,Nim,C/AL

Object Pascal ist eine Sammelbezeichnung für mehrere teilweise miteinander kompatibleProgrammiersprachen-Derivate, diePascal umobjektorientierte Programmierung erweitern. Die bekannteste Variante ist die Programmiersprache derEntwicklungsumgebungEmbarcadero Delphi, die vom UnternehmenBorland entwickelt und zeitweiseDelphi Language genannt wurde und mittlerweile auch von anderen Entwicklungsumgebungen implementiert wird.

Entwicklung

[Bearbeiten |Quelltext bearbeiten]

Frühe Entwicklung bei Apple

[Bearbeiten |Quelltext bearbeiten]

Die erste Object Pascal-Variante entstand Anfang 1985 beiApple, als ein Team umLarry Tesler in Zusammenarbeit mit dem Pascal-GründerNiklaus Wirth einen objektorientierten Pascal-Dialekt entwickelte, der für die Entwicklung des Entwicklungs-Frameworks MacApp fürMacintosh-Computer notwendig war[1]. Es handelte sich um eine Weiterentwicklung einer früheren objektorientierten Pascal-Variante namensClascal, die fürLisa-Computer verfügbar war.

Eine zur Apple-Version ähnliche und weitgehend kompatible Object Pascal-Version stand kurz darauf in der THINK Pascal-Entwicklungsumgebung für Macintosh-Computer zur Verfügung.

Weiterentwicklung bei Borland, Inprise, Codegear und Embarcadero

[Bearbeiten |Quelltext bearbeiten]

1986 erweiterteBorland seineEntwicklungsumgebungTurbo Pascal für denApple Macintosh umobjektorientierte Sprachmerkmale, die anfangs der Apple-Implementierung stark ähnelten. Mit Turbo Pascal 5.5 folgte 1989 eine Version fürDOS. 1993 begann Borland mit der Entwicklung vonDelphi als Nachfolger von Turbo Pascal fürWindows. 1995 veröffentlichte Borland Delphi 1.0 und führte damit neue Spracherweiterungen wie ein neues Objektmodell mit erweiterter Klassenunterstützung und vielfältigeren Sichtbarkeitsregeln ein. Das alte Objektmodell von Apple und Turbo Pascal („Old-Style Object Types“) wurde und wird aber weiterhin unterstützt[2].

Mit der Zeit wurde die Sprache immer wieder weiterentwickelt und u. a. umGenerics undanonyme Funktionen erweitert.

Neben dem verbreiteten Delphi gibt es viele andereCompiler für Object Pascal wie u. a. dieOpen-Source-ProjekteFree Pascal undGNU Pascal. Sie streben teilweise Kompatibilität zu Delphi an, pflegen aber eine eigene Sprachdefinition mit eigenen Erweiterungen. Die aktuelle Free Pascal-Version 3.0 unterstützt sowohl Old-Style-Objekte als auch die mit Delphi eingeführten moderneren Klassenkonzepte.

Eigenschaften

[Bearbeiten |Quelltext bearbeiten]

Der Funktionsumfang von Object Pascal ist vergleichbar mit dem vonC++, wobei sich die Syntax stark unterscheidet. Variablen müssen deklariert und einem Datentyp zugeordnet werden. Es gibt Klassen mitKonstruktoren und Destruktoren, Methoden und Properties. Methoden könnenvirtuell sein. DieVererbung unterstützt nur eineBasisklasse;Interfaces ermöglichenMehrfachvererbung. Für dieSpeicherverwaltung von Objekten ist der Programmierer selbst verantwortlich.Strings sind davon nicht betroffen, da sie als elementarer Datentyp unterstützt werden.

Bis Delphi 2005 wurden Objekte grundsätzlich auf demHeap angelegt. Dies ermöglicht es, in Delphi jedes Objekt als Ergebnis einer Funktion an den Aufrufenden zu übergeben. In anderen Programmiersprachen, wie z. B.C++, können Objekte sowohl im Heap als auch imStack angelegt werden. Objekte im Stack können nicht als Rückgabewert übergeben werden, da diese beim Verlassen der Funktion zusammen mit dem restlichen Stackframe der Funktion gelöscht werden. Somit wurde hier eine Designentscheidung getroffen, die dem Delphi-Programmierer die Entscheidung zwischen Heap/Stack abnimmt und immer die flexiblere Lösung wählt. Als Nachteil dieser Technik ergibt sich unmittelbar, dass der Programmierer seine erzeugten Objekte selbst aus dem Speicher entfernen muss. Bei Objekten im Stack ist dies nicht notwendig. Seit Delphi 2006 werden auchRecords mit Methoden unterstützt, womit sich Stackobjekte ähnlich wie in C++ erstellen lassen.

Programmbeispiel

[Bearbeiten |Quelltext bearbeiten]

(Für Delphi und Free Pascal)

programObjectPascalExample;typeTHelloWorld=classpublicprocedureGreet;end;procedureTHelloWorld.Greet;beginWriteln('Hello, World!');end;varHelloWorld:THelloWorld;{ impliziter Zeiger }beginHelloWorld:=THelloWorld.Create;{ Konstruktor gibt einen Zeiger auf eine Instanz der Klasse THelloWorld zurück }tryHelloWorld.Greet;finallyHelloWorld.Free;{ Freigeben der Instanz }end;end.

Implementierungen

[Bearbeiten |Quelltext bearbeiten]

Compiler bzw.Interpreter, die Object Pascal unterstützen, sind u. a.:

Klassenbibliotheken

[Bearbeiten |Quelltext bearbeiten]

Für Object Pascal existieren mehrereKlassenbibliotheken. Unter Delphi bilden dieRuntime Library (RTL) und dieVisual Component Library (VCL) traditionell die Basis für die Entwicklung. Während erstere grundlegende Funktionalitäten wie beispielsweise Verarbeitungsfunktionen für Zeichenketten enthält, ist letztere eine Klassenbibliothek, insbesondere für visuelle Komponenten (Buttons etc.). Zeitweise gab es neben der VCL noch dieComponent Library for Cross Platform (CLX). Diese wurde aber wieder eingestellt. Mit Delphi XE2 wurdeFiremonkey, eine im Gegensatz zur VCL plattformunabhängige, vektorbasierte Komponentenbibliothek eingeführt.

Der größte Teil der Funktionalität beruht auf Klassenbibliotheken, andere sehr häufig benötigte Funktionen werden aber direkt vom Compiler umgesetzt, so z. B. die nahtlose Integration derCOM-Technik unterWindows. Der direkte Zugriff auf dieWindows-API ist möglich. Von anderen Anbietern gibt es eine Vielzahl von Komponenten für die unterschiedlichsten Anwendungen. So haben sich auch einige Open-Source-Bibliotheken und -Komponentensammlungen etabliert, insbesondere dieJEDI Class Library (JCL),JEDI Visual Component Library (JVCL) undInternet Direct (Indy).

FürFree Pascal/Lazarus existieren äquivalente Bibliotheken zu RTL und VCL, die sich in der Handhabung nur im Detail unterscheiden und dortFree Component Library FCL undLazarus Component Library LCL heißen.

Einfluss auf andere Programmiersprachen

[Bearbeiten |Quelltext bearbeiten]

Einige der Elemente und Ideen von Object Pascal wurden in die ProgrammierspracheC# von Microsoft übernommen. Einer der Gründe ist, dass zahlreiche Mitentwickler von Delphi bei Borland von Microsoft abgeworben wurden und maßgeblich an der Entwicklung von C# beteiligt waren. Darunter waren unter anderem der Delphi-ProjektleiterAnders Hejlsberg, welchem der Wechsel zu Microsoft mit einem Bonus in Millionenhöhe schmackhaft gemacht wurde, sowie Chuck Jazdzewski (Delphi Chief Architect), Corbin Dunn (Entwickler der Delphi-IDE), Danny Thorpe (Delphi, Borland Chief Scientist), Eddie Churchill und Ramin Halviatti.[3] Hejlsberg wurde bei Microsoft Software-Architekturchef, Miterfinder von .NET und Chefentwickler von C#.

Literatur

[Bearbeiten |Quelltext bearbeiten]
  • Richard Kaiser:Object Pascal mit Delphi – Eine Einführung in die objektorientierte Windows-Programmierung,
    Springer, (Reprint v. 1997) Berlin 2013,ISBN 3-540-60340-9
  • Martin Pyka:DirectX 9 in Delphi, BoD, 2004,ISBN 3-8334-0835-9
  • Thomas Binzinger:Jetzt lerne ich Delphi, Der einfache Einstieg in Object Pascal – für alle Versionen bis einschließlich Delphi 2006, Markt und Technik, München 2006,ISBN 3-8272-4108-1
  • Walter Doberenz, Thomas Kowalski:Delphi 7 – Grundlagen, Profiwissen, Kochbuch,
    Hanser, München 2007,ISBN 3-446-41216-6
  • Hans-Georg Schumann:Delphi für Kids, bhv-Verlag, 4. Auflage 2009,ISBN 3-8266-8662-4
  • Wolf-Gert Matthäus:Grundkurs Programmieren mit Delphi, Vieweg, 4. Auflage 2011,ISBN 3-8348-1668-X
  • Chris Rolliston:Delphi XE2 Foundations, CreateSpace, 2012,ISBN 978-1-4775-5089-2
  • Nick Hodges:Coding in Delphi, Nepeta Enterprises, 2014,ISBN 978-1-941266-03-8

Weblinks

[Bearbeiten |Quelltext bearbeiten]
Wikibooks: Programmierkurs: Delphi – Lern- und Lehrmaterialien

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Larry Tesler:Object Pascal Report. In:Structured Language World. 9. Jahrgang,Nr. 3, 1985,S. 10–7 (englisch). 
  2. Ray Lischner:Delphi in a nutshell: a desktop quick reference. 1. Auflage. O’Reilly and Associates, Sebastopol, CA 2000,ISBN 1-56592-659-5 (englisch). 
  3. Borland-Chef: Microsoft raubt uns die Mitarbeiter - Computerwoche
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Object_Pascal&oldid=262067104
Kategorien:

[8]ページ先頭

©2009-2026 Movatter.jp