# Turbo Pascal

Turbo Pascal ist eine integrierte Entwicklungsumgebung (IDE) des Unternehmens Borland für die Programmiersprachen Pascal und Object Pascal.

## Geschichte

Der Compiler basierte auf dem Blue Label Software Pascal Compiler, der von Anders Hejlsberg ursprünglich für das Kassetten-basierte Betriebssystem NAS-SYS des Mikrocomputers Nascom entwickelt wurde. Dieser Compiler wurde zunächst als Compas Pascal Compiler für das Betriebssystem CP/M und dann als Turbo Pascal Compiler für MS-DOS und CP/M weiterentwickelt. Kurzzeitig war 1986 auch eine Macintosh-Version, für Mac OS ab System 6, verfügbar.

### Turbo Pascal 1.0

Die erste Version von Turbo Pascal erschien im November 1983, zu einer Zeit, als das Konzept der integrierten Entwicklungsumgebungen noch recht neu war. Ein Programmierer hatte zu dieser Zeit auf einem IBM-kompatiblen PC im Wesentlichen die Wahl zwischen dem mit DOS mitgelieferten Microsoft BASIC-Interpreter oder einem professionellen und teuren BASIC-, C-, Fortran- oder Pascal-Compiler (UCSD Pascal). Die Compiler waren eher umständlich zu benutzen: Mangels Multitasking unter MS-DOS bestand jeder Testlauf aus dem Verlassen, Starten und Neuladen der verschiedenen Tools (Editor, Compiler, Linker, Debugger), die für die Softwareentwicklung notwendig sind. Da die meisten PCs zu dieser Zeit keine Festplatten hatten (eine solche kostete zum damaligen Zeitpunkt mindestens 2000 US-Dollar), musste je nach Anzahl der Diskettenlaufwerke sogar noch mehrmals die Diskette gewechselt werden.
In diese Situation hinein kam Turbo Pascal mit dem Konzept einer integrierten Entwicklungsumgebung, das die verschiedenen Tools in einem Programm vereinte. Es war zudem gerade einmal rund 60 kB groß und lief damit auf jedem damaligen PC in hoher Geschwindigkeit. Selbst auf einem PC mit nur einem Diskettenlaufwerk konnte auf Diskettenwechsel verzichtet werden, da auf der Turbo-Pascal-Diskette noch genug Platz für das gerade bearbeitete eigene Programm war. Schließlich war das System preislich selbst für Schüler und Studenten erschwinglich – mit dem Ergebnis, dass es im Laufe der 1980er Jahre auf dem PC zum Quasistandard wurde.

### Folgeversionen

Ohne Turbo Pascal hätte die Sprache Pascal sicher das gleiche Schicksal ereilt wie viele an Universitäten vorher und nachher geborene Programmiersprachen, z. B. Modula-2 oder Oberon (beide auch von Niklaus Wirth), die heute praktisch verschwunden sind. Hejlsberg entwickelte die Sprache und das System pragmatisch weiter: Von Anfang an wurde die Laufzeitbibliothek um Routinen (Unterprogramme) ergänzt, die Zugriff auf das System ermöglichten – ganz entgegen dem ursprünglichen Konzept von Wirth. Dabei wurde – anders als z. B. bei der Sprache C – die für Pascal typische strenge Typprüfung etc. beibehalten (beides hat Vor- und Nachteile: Eine strenge Prüfung vermindert die Gefahr ungewollten Fehlverhaltens eines Programms, macht den Quelltext aber meist länger und zwingt dazu, bewusst Funktionen zur Typumwandlung zu nutzen). Je umfangreicher ein Programmpaket wird, desto wichtiger werden solche Funktionen, weshalb auch andere Programmiersprachen, wie beispielsweise C++, Java und C, diese Konzepte in unterschiedlicher Strenge übernommen haben.

#### Version 3

    Im September 1986 kam in der MS-DOS-Version Grafik dazu. Dies war die letzte Version, die auch noch für CP/M erschien, allerdings ohne die Grafikmöglichkeiten (ausgenommen die Graphix Toolbox des Schneider CPC), da die meisten CP/M-Rechner nicht grafikfähig sind. Es gab drei unterschiedliche Versionen für MS-DOS, die es ermöglichten, unterschiedlichen Code zu generieren, und zwar für emulierten Gleitkomma-Code, Coprozessor-orientierten Code, und BCD-Code. Es werden kommerzielle Programmbibliotheken angeboten, diese müssen allerdings mittels Include im Quelltext eingebunden werden. Das Einfügen von Maschinencode in den Quelltext wurde mit Inline-Codes unterstützt. Version 3 unterstützte nur COM-Dateien, weswegen der Programmcode auf 64 KiB begrenzt war. Bezüglich der Datensegmente wurde near data (64 KiB Segmentgröße) und far heap-allocated data (dynamic variables) unterstützt.

#### Version 4

    Im Dezember 1987 kam das Unit-Konzept dazu, das Bibliotheken und große Projekte ermöglichte. Zudem war erstmals die Grafikbibliothek Borland Graphics Interface (BGI) enthalten, deren Funktionen zentral in der Unit Graph bereitgestellt wurden.
    Die zeichenorientierte Benutzerschnittstelle wurde grundlegend erneuert, indem sie den Editor zur zentralen Komponente der Entwicklungstätigkeit machte. Das Übersetzen und Ausführen von Programmen waren jederzeit über das Menü erreichbar, der Zwischenschritt über das Hauptmenü entfiel. Die Ausgabe des vorherigen Programmlaufs konnte unterhalb des Editors eingeblendet werden. Auf Computern mit Farbbildschirmen erschienen die Menüs in charakteristischem Gelb auf Magenta. Der Programmtext war einheitlich in Gelb auf Schwarz geschrieben, es gab noch keine Syntaxhervorhebung. Ab Version 4 waren 16 Bit EXE-Dateien möglich. Damit konnte Programmcode mehrere Codesegmente überspannen und Far Sprünge verwendet werden. Bezüglich der Datensegmente blieb es bei near data (64 KiB Segmentgröße) und far heap-allocated data(dynamic variables).

#### Version 5

    Im Oktober 1988 wurde der Debugger in die Entwicklungsumgebung integriert. Damit wurde es möglich, innerhalb der IDE zu debuggen, Haltepunkte zu setzen und Variablenwerte zu beobachten.

#### Version 5.5

    Im Mai 1989 kam die Objektorientierung hinzu. Im selben Jahr veröffentlichte Microsoft das Konkurrenzprodukt QuickPascal 1.0, welches zu Turbo Pascal 5.5 weitestgehend kompatibel war. Im Hinblick auf die Möglichkeiten der objektorientierten Programmierung war Turbo Pascal allerdings QuickPascal überlegen.

#### Version 6

    Im November 1990 kam eine objektorientierte GUI-Bibliothek hinzu (Turbo Vision), ähnlich den späteren MFC für Windows. Turbo Vision war für den Textmodus des PCs konzipiert, enthielt aber bereits Steuerelemente wie Fenster, Schaltflächen und Bildlaufleisten, die durch Textsymbole dargestellt wurden. Außerdem konnten (auch umfangreichere) Assemblerfunktionen in Intelsyntax direkt im Quelltext realisiert werden. Die Entwicklungsumgebung wurde entsprechend erweitert, so dass auch Assemblerteile im Einzelschrittmodus bei gleichzeitiger Kontrolle aller Flag- und Registerinhalte ausgeführt werden konnten.

#### Turbo Pascal für Windows 1.0

    kam parallel zu Version 6 auf den Markt. Das GUI war komplett als Windows-Anwendung ausgelegt; es wurde in Version 7 (Borland Pascal) übernommen und ausgebaut.

#### Version 7

    Im Oktober 1992 wurde in der professionellen Variante (Borland Pascal) die Entwicklung von Protected-Mode-Anwendungen innerhalb der IDE möglich – allerdings ohne integrierten Debugger. Im April 1993 folgte noch eine nachgeschobene/fehlerbereinigte Version 7.01; dies war zugleich auch die letzte von Borland veröffentlichte Pascal-Version.
Der Editor hob Schlüsselwörter und Zeichenketten farbig hervor (Syntaxhervorhebung).
Anfang der 1990er Jahre wurde Turbo Pascal auf Windows portiert. Dies war allerdings eine Sackgasse. Die Programmierung war unter Turbo Pascal für Windows ähnlich aufwendig wie in C – mit dem zusätzlichen Nachteil, dass Windows selbst in C programmiert ist, weshalb die Schnittstellen zwischen Windows und Pascalprogramm mindestens grundlegende C-Kenntnisse erfordern. Borland adaptierte in der Folgezeit das Rapid-Application-Development-Prinzip, das sich vorher schon bei Visual Basic von Microsoft sehr bewährt hatte: Die grafischen Elemente einer Windows-Anwendung werden mit der Maus zusammengestellt, der zugehörige Code wird automatisch erzeugt. Dieses Produkt wurde Delphi genannt, die zugrundeliegende Sprache ist Object Pascal von Borland.

### Veröffentlichung als Freeware

Borland veröffentlichte 2002 mehrere Turbo-Pascal-Versionen als Freeware auf der eigenen Webseite, nachdem sie zu „antique software“ (Abandonware) wurden. Die neueste veröffentlichte internationale Version ist TP 5.5, jedoch wurde von dem neueren TP 7.01 die französische Version veröffentlicht. Die Downloads sind weiterhin auf der Nachfolgerwebsite von Embarcadero verfügbar.

### Alternativen / Weiterentwicklungen

Mit Free Pascal und GNU Pascal gibt es zwei Turbo-Pascal-kompatible freie Compiler, die für zahlreiche Betriebssysteme zur Verfügung stehen. Die Entwicklung von Virtual Pascal wurde hingegen eingestellt, obwohl es noch eine große Gemeinschaft gibt.