<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Object_Pascal</id>
	<title>Object Pascal - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Object_Pascal"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Object_Pascal&amp;action=history"/>
	<updated>2026-05-17T19:23:54Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Object_Pascal&amp;diff=984680&amp;oldid=prev</id>
		<title>imported&gt;Siegbert v2: + GND</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Object_Pascal&amp;diff=984680&amp;oldid=prev"/>
		<updated>2026-04-03T03:02:16Z</updated>

		<summary type="html">&lt;p&gt;+ GND&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Programmiersprache&lt;br /&gt;
| Name                          = Object Pascal&lt;br /&gt;
| Logo                          = &lt;br /&gt;
| Beschreibung                  = &lt;br /&gt;
| Paradigma                     = [[Prozedurale Programmierung|prozedural]], [[Objektorientierung|objektorientiert]]&lt;br /&gt;
| Erscheinungsjahr              = 1986&lt;br /&gt;
| Designer                      = &lt;br /&gt;
| Entwickler                    = [[Apple]], [[Niklaus Wirth]], [[Anders Hejlsberg]]&lt;br /&gt;
| AktuelleVersion               = &lt;br /&gt;
| AktuelleVersionFreigabeDatum  = &lt;br /&gt;
| AktuelleVorabVersion          = &lt;br /&gt;
| AktuelleVorabVersionFreigabeDatum = &lt;br /&gt;
| Typisierung                   = stark, explizit (auf Wunsch auch implizit), statisch&lt;br /&gt;
| Implementierung               = [[Embarcadero Delphi]] ([[X86-Prozessor|x86]] und [[Common Language Infrastructure|CLI]]), [[Free Pascal]] (diverse Architekturen), Oxygene (CLI, [[Java (Programmiersprache)|Java]]), [[Virtual Pascal]] (x86), [[TMT Pascal]] (x86), [[Turbo51]] ([[Intel 8051]])&lt;br /&gt;
| Dialekte                      = [[Free Pascal]], [[Delphi.NET]], Oxygene&lt;br /&gt;
| Standardisierungen            = &lt;br /&gt;
| Beeinflusst_von               = [[Turbo Pascal]], [[Simula]], [[Smalltalk (Programmiersprache)|Smalltalk]]&lt;br /&gt;
| Beeinflusste                  = [[.Net-Framework]], [[C-Sharp|C#]], [[Genie (Programmiersprache)|Genie]], [[Java (Programmiersprache)|Java]], [[Nim (Programmiersprache)|Nim]], [[C/AL]]&lt;br /&gt;
| Betriebssystem                = &lt;br /&gt;
| Lizenz                        = &lt;br /&gt;
| Website                       = &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Object Pascal&amp;#039;&amp;#039;&amp;#039; ist eine Sammelbezeichnung für mehrere teilweise miteinander kompatible [[Programmiersprache]]n-Derivate, die [[Pascal (Programmiersprache)|Pascal]] um [[objektorientierte Programmierung]] erweitern. Die bekannteste Variante ist die Programmiersprache der [[Integrierte Entwicklungsumgebung|Entwicklungsumgebung]] [[Embarcadero Delphi]], die vom Unternehmen [[Borland]] entwickelt und zeitweise &amp;#039;&amp;#039;&amp;#039;Delphi Language&amp;#039;&amp;#039;&amp;#039; genannt wurde und mittlerweile auch von anderen Entwicklungsumgebungen implementiert wird.&lt;br /&gt;
&lt;br /&gt;
== Entwicklung ==&lt;br /&gt;
&lt;br /&gt;
=== Frühe Entwicklung bei Apple ===&lt;br /&gt;
&lt;br /&gt;
Die erste Object Pascal-Variante entstand Anfang 1985 bei [[Apple]], als ein Team um [[Larry Tesler]] in Zusammenarbeit mit dem Pascal-Gründer [[Niklaus Wirth]] einen objektorientierten Pascal-Dialekt entwickelte, der für die Entwicklung des Entwicklungs-Frameworks MacApp für [[Apple Macintosh|Macintosh]]-Computer notwendig war&amp;lt;ref&amp;gt;{{cite journal |last1=Tesler |first1=Larry |title=Object Pascal Report |journal=Structured Language World |date=1985 |volume=9 |issue=3 |pages=10–7 |language=en}}&amp;lt;/ref&amp;gt;. Es handelte sich um eine Weiterentwicklung einer früheren objektorientierten Pascal-Variante namens [[Clascal]], die für [[Apple Lisa|Lisa]]-Computer verfügbar war.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Weiterentwicklung bei Borland, Inprise, Codegear und Embarcadero ===&lt;br /&gt;
&lt;br /&gt;
1986 erweiterte [[Borland]] seine [[Integrierte Entwicklungsumgebung|Entwicklungsumgebung]] [[Turbo Pascal]] für den [[Apple Macintosh]] um [[Objektorientierte Programmierung|objektorientierte Sprachmerkmale]], die anfangs der Apple-Implementierung stark ähnelten. Mit Turbo Pascal 5.5 folgte 1989 eine Version für [[PC-kompatibles DOS|DOS]]. 1993 begann Borland mit der Entwicklung von [[Embarcadero Delphi|Delphi]] als Nachfolger von Turbo Pascal für [[Microsoft Windows|Windows]]. 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&amp;lt;ref&amp;gt;{{cite book |last1=Lischner |first1=Ray |title=Delphi in a nutshell: a desktop quick reference |date=2000 |publisher=O’Reilly and Associates |location=Sebastopol, CA |isbn=1565926595 |edition=1 |language=en}}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Mit der Zeit wurde die Sprache immer wieder weiterentwickelt und u.&amp;amp;nbsp;a. um [[Generischer Typ|Generics]] und [[anonyme Funktion]]en erweitert.&lt;br /&gt;
&lt;br /&gt;
Neben dem verbreiteten Delphi gibt es viele andere [[Compiler]] für Object Pascal wie u.&amp;amp;nbsp;a. die [[Open Source|Open-Source]]-Projekte [[Free Pascal]] und [[GNU 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.&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
&lt;br /&gt;
Der Funktionsumfang von Object Pascal ist vergleichbar mit dem von [[C++]], wobei sich die Syntax stark unterscheidet. Variablen müssen deklariert und einem Datentyp zugeordnet werden. Es gibt Klassen mit [[Konstruktoren und Destruktoren]], Methoden und Properties. Methoden können [[Virtuelle Methode|virtuell]] sein. Die [[Vererbung (Programmierung)|Vererbung]] unterstützt nur eine [[Basisklasse]]; [[Schnittstelle (Objektorientierung)|Interfaces]] ermöglichen [[Mehrfachvererbung]]. Für die [[Speicherverwaltung]] von Objekten ist der Programmierer selbst verantwortlich. [[Zeichenkette|Strings]] sind davon nicht betroffen, da sie als elementarer Datentyp unterstützt werden.&lt;br /&gt;
&lt;br /&gt;
Bis Delphi 2005 wurden Objekte grundsätzlich auf dem [[Heap (Datenstruktur)|Heap]] angelegt. Dies ermöglicht es, in Delphi jedes Objekt als Ergebnis einer Funktion an den Aufrufenden zu übergeben. In anderen Programmiersprachen, wie z.&amp;amp;nbsp;B. [[C++]], können Objekte sowohl im Heap als auch im [[Stapelspeicher|Stack]] 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&amp;amp;nbsp;2006 werden auch [[Verbund (Datentyp)|Records]] mit Methoden unterstützt, womit sich Stackobjekte ähnlich wie in C++ erstellen lassen.&lt;br /&gt;
&lt;br /&gt;
=== Programmbeispiel ===&lt;br /&gt;
(Für Delphi und Free Pascal)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
program ObjectPascalExample;&lt;br /&gt;
&lt;br /&gt;
type&lt;br /&gt;
    THelloWorld = class&lt;br /&gt;
    public&lt;br /&gt;
        procedure Greet;&lt;br /&gt;
    end;&lt;br /&gt;
&lt;br /&gt;
procedure THelloWorld.Greet;&lt;br /&gt;
begin&lt;br /&gt;
    Writeln(&amp;#039;Hello, World!&amp;#039;);&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
    HelloWorld: THelloWorld;            { impliziter Zeiger }&lt;br /&gt;
begin&lt;br /&gt;
    HelloWorld := THelloWorld.Create;   { Konstruktor gibt einen Zeiger auf eine Instanz der Klasse THelloWorld zurück }&lt;br /&gt;
&lt;br /&gt;
    try&lt;br /&gt;
        HelloWorld.Greet;&lt;br /&gt;
    finally&lt;br /&gt;
        HelloWorld.Free;                { Freigeben der Instanz }&lt;br /&gt;
    end;&lt;br /&gt;
end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Implementierungen ==&lt;br /&gt;
&lt;br /&gt;
[[Compiler]] bzw. [[Interpreter]], die Object Pascal unterstützen, sind u.&amp;amp;nbsp;a.:&lt;br /&gt;
* [[Turbo Pascal]] (kommerziell)&lt;br /&gt;
* [[Embarcadero Delphi]] (ehemals Borland Delphi, kommerziell, Windows)&lt;br /&gt;
* [[Kylix (Entwicklungsumgebung)|Borland Kylix]] (kommerziell, Linux)&lt;br /&gt;
* [[Free Pascal]] (Open Source, multiplattform)&lt;br /&gt;
* [[GNU Pascal]] (Open Source)&lt;br /&gt;
* [[Virtual Pascal]] (Closed Source Freeware)&lt;br /&gt;
* Oxygene&lt;br /&gt;
* DWScript (Open Source)&lt;br /&gt;
&lt;br /&gt;
== Klassenbibliotheken ==&lt;br /&gt;
Für Object Pascal existieren mehrere [[Klassenbibliothek]]en. Unter Delphi bilden die &amp;#039;&amp;#039;Runtime Library&amp;#039;&amp;#039; (RTL) und die &amp;#039;&amp;#039;Visual Component Library&amp;#039;&amp;#039; (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 die &amp;#039;&amp;#039;Component Library for Cross Platform&amp;#039;&amp;#039; (CLX). Diese wurde aber wieder eingestellt. Mit Delphi&amp;amp;nbsp;XE2 wurde &amp;#039;&amp;#039;Firemonkey&amp;#039;&amp;#039;, eine im Gegensatz zur VCL plattformunabhängige, vektorbasierte Komponentenbibliothek eingeführt.&lt;br /&gt;
&lt;br /&gt;
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.&amp;amp;nbsp;B. die nahtlose Integration der [[Component Object Model|COM]]-Technik unter [[Microsoft Windows|Windows]]. Der direkte Zugriff auf die [[Windows Application Programming Interface|Windows-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 die &amp;#039;&amp;#039;JEDI Class Library&amp;#039;&amp;#039; (JCL), &amp;#039;&amp;#039;JEDI Visual Component Library&amp;#039;&amp;#039; (JVCL) und &amp;#039;&amp;#039;Internet Direct&amp;#039;&amp;#039; (Indy).&lt;br /&gt;
&lt;br /&gt;
Für [[Free Pascal]]/[[Lazarus (Entwicklungsumgebung)|Lazarus]] existieren äquivalente Bibliotheken zu RTL und VCL, die sich in der Handhabung nur im Detail unterscheiden und dort &amp;#039;&amp;#039;Free Component Library&amp;#039;&amp;#039; FCL und &amp;#039;&amp;#039;Lazarus Component Library&amp;#039;&amp;#039; LCL heißen.&lt;br /&gt;
&lt;br /&gt;
== Einfluss auf andere Programmiersprachen ==&lt;br /&gt;
&lt;br /&gt;
Einige der Elemente und Ideen von Object Pascal wurden in die Programmiersprache [[C-Sharp|C#]] 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-Projektleiter [[Anders 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.&amp;lt;ref&amp;gt;[https://www.computerwoche.de/a/borland-chef-microsoft-raubt-uns-die-mitarbeiter,1098820 Borland-Chef: Microsoft raubt uns die Mitarbeiter - Computerwoche]&amp;lt;/ref&amp;gt; Hejlsberg wurde bei Microsoft Software-Architekturchef, Miterfinder von .NET und Chefentwickler von C#.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
&lt;br /&gt;
* Richard Kaiser: &amp;#039;&amp;#039;Object Pascal mit Delphi – Eine Einführung in die objektorientierte Windows-Programmierung&amp;#039;&amp;#039;,&amp;lt;br&amp;gt;Springer, (Reprint v. 1997) Berlin 2013, ISBN 3-540-60340-9&lt;br /&gt;
* Martin Pyka: &amp;#039;&amp;#039;DirectX 9 in Delphi&amp;#039;&amp;#039;, BoD, 2004, ISBN 3-8334-0835-9&lt;br /&gt;
* Thomas Binzinger: &amp;#039;&amp;#039;Jetzt lerne ich Delphi, Der einfache Einstieg in Object Pascal – für alle Versionen bis einschließlich Delphi 2006&amp;#039;&amp;#039;, Markt und Technik, München 2006, ISBN 3-8272-4108-1&lt;br /&gt;
* Walter Doberenz, Thomas Kowalski: &amp;#039;&amp;#039;Delphi 7 – Grundlagen, Profiwissen, Kochbuch&amp;#039;&amp;#039;,&amp;lt;br&amp;gt;Hanser, München 2007, ISBN 3-446-41216-6&lt;br /&gt;
* Hans-Georg Schumann: &amp;#039;&amp;#039;Delphi für Kids&amp;#039;&amp;#039;, bhv-Verlag, 4. Auflage 2009, ISBN 3-8266-8662-4&lt;br /&gt;
* Wolf-Gert Matthäus: &amp;#039;&amp;#039;Grundkurs Programmieren mit Delphi&amp;#039;&amp;#039;, Vieweg, 4. Auflage 2011, ISBN 3-8348-1668-X&lt;br /&gt;
* Chris Rolliston: &amp;#039;&amp;#039;Delphi XE2 Foundations&amp;#039;&amp;#039;, CreateSpace, 2012, ISBN 978-1-4775-5089-2&lt;br /&gt;
* Nick Hodges: &amp;#039;&amp;#039;Coding in Delphi&amp;#039;&amp;#039;, Nepeta Enterprises, 2014, ISBN 978-1-941266-03-8&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Wikibooks|Programmierkurs: Delphi}}&lt;br /&gt;
* [https://castle-engine.io/modern_pascal_introduction.html Modern Object Pascal Introduction for Programmers] Überblick von Michalis Kamburelis (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten |TYP=s |GND=4521774-9}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Pascal (Programmiersprache)]]&lt;br /&gt;
[[Kategorie:Objektorientierte Programmiersprache]]&lt;br /&gt;
[[Kategorie:Imperative Programmiersprache]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Siegbert v2</name></author>
	</entry>
</feed>