Turbo Pascal ist eine integrierte Entwicklungsumgebung der Firma Borland für die Programmiersprache Pascal.
Inhaltsverzeichnis |
Der Compiler basierte auf dem Blue Label Pascal Compiler, der von Anders Hejlsberg ursprünglich für das Kassetten-basierte Betriebssystem NasSys des Mikrocomputers Nascom entwickelt wurde. Dieser Compiler wurde zunächst als Compass Pascal Compiler für das Betriebssystem CP/M und dann als Turbo Pascal Compiler für MS-DOS und CP/M weiterentwickelt.
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). 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 2000 US-Dollar und mehr), musste oft sogar noch mehrmals die Diskette gewechselt werden.
In diese Situation hinein kam Turbo Pascal mit dem IDE-Konzept, 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.
Ohne Turbo Pascal hätte die Sprache Pascal sicher das gleiche Schicksal ereilt wie viele an Universitäten vorher und nachher geborene „Kunstsprachen“, z. B. Prolog, Modula-2 oder Oberon (die letzten beiden auch von Niklaus Wirth), die heute praktisch verschwunden sind. A. Hejlsberg entwickelte die Sprache und das System pragmatisch weiter: Von Anfang an wurde die Laufzeitbibliothek um Routinen 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 z. B. C++ diese Konzepte übernommen haben.
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 stark bewährt hatte: Die grafischen Elemente einer Windows-Anwendung werden mit der Maus zusammengestellt, der zugehörige Code wird automatisch generiert. Dieses Produkt wurde Delphi genannt, die zugrundeliegende Sprache ist Object Pascal von Borland.
begin – Beginnt eine Anweisung / die Konsole
uses crt; – Bibliotheken, die verwendet werden (hier crt zur Text Ein- und Ausgabe)
var a, b, c: String – Variablendeklaration.
Writeln ('Text'); – Text anzeigen.
Readln (text); – Texteingabe und Speicherung.
ClrScr; – Löscht den Bildschirm.
Textcolor (1); – Textfarbe 0-15, 16-32 blinkender Text.
Textbackground (1); – Hintergrundfarbe von 0-7.
Sound (x); – Tonhöhe von x-Hertz.
Delay (x); – Wartezeit von x ms.
Nosound; – Stoppt den Sound.
if a = 'x' then x – Wenn-Dann-Bedingung
end; – Beendet eine Anweisung
end. – Beendet die Konsole
writeln(zahl10:2): -rundet die Zahl auf 2 Stellen nach dem Komma.