Borland Turbo Pascal, Version 6.01

W/2015/11/00014k

Die Programmiersprache Pascal (benannt nach dem Mathematiker Blaise Pascal) wurde von Niklaus Wirth an der ETH Zürich im Jahr 1971 als Lehrsprache eingeführt, um die strukturierte Programmierung zu lehren.Pascal ist eine Weiterentwicklung von Algol 60. Es lehnt sich in seiner Syntax stark an die englische Grammatik an. Dies soll die Lesbarkeit für Programmiereinsteiger verbessern und ist daher besonders gut als Lehrsprache geeignet. Seine große Verbreitung in der professionellen Programmierung fand es als Borland/Turbo Pascal (später Object Pascal) – gegenüber dem Ur-Pascal wesentlich erweiterte und verbesserte Versionen.Unterschiede zu C[Bearbeiten] Wesentliche Unterschiede zur Programmiersprache C bestehen in folgenden Punkten: Sehr hohe Prozesssicherheit Da Pascal sowie der Quasi-Standard Borland/Turbo-Pascal eine strikte Trennung unterschiedlicher Typen vorsehen und die Zuweisungskompatibilität von Ausdrücken beachten, kommen implizite Typumwandlungen, anders als in C, praktisch nicht vor. Insbesondere bei der Übergabe von Daten (z. B. aus externen Dateien, aber auch innerhalb des Programms) an Funktionen oder Prozeduren kann der Compiler schon beim Kompilieren die Korrektheit der Typen kontrollieren. Keine nullterminierten Zeichenketten Standard Pascal hatte zwar Zeichenketten-Literale, aber keinen Typ string (s. oben). In den meisten späteren Implementierungen wurden Zeichenketten als char-Arrays definiert, bei denen das erste Feld (Byte) zur Speicherung der Länge verwendet wurde. Daraus ergab sich eine Längenbegrenzung von 255 Zeichen. Bei den in der C-Standard-Bibliothek verwendeten Strings handelt es sich dagegen um NUL-terminierte Strings. Durch die Längenspeicherung in Pascal können verschiedene Operationen wie Stringverkettung effizienter durchgeführt werden (kein Durchsuchen bis zum NUL-Zeichen erforderlich). Größere Zeichenketten mussten selbst definiert werden (z. B. als Array of char), sofern sie nicht (wie z. B. in Borland Pascal 7) durch die Compilerhersteller bereits implementiert wurden. Im Extended-Pascal-Standard wurden Zeichenketten als Scheme-Typ definiert. Auch hier muss die Kapazität angegeben werden, sie wird aber in runde Klammern geschrieben, und es gibt keine formale Längenbeschränkung: String(10240). Strikte Trennung zwischen Programm, Funktionen und Prozeduren Pascal trennt strikt zwischen einer Funktion (mit Rückgabewert) und einer Prozedur (kein Rückgabewert). Eine Funktion darf nicht als Prozedur aufgerufen werden – d. h. der Rückgabewert muss stets entgegengenommen werden. Seit Turbo Pascal 4.0 (1991) ist es jedoch möglich, Funktionen auch ohne Entgegennahme des Funktionsergebnisses aufzurufen. Weiterhin wird ein ausführbares Programm in Pascal durch das Schlüsselwort PROGRAM gekennzeichnet, wohingegen in C der Einstiegspunkt für ein Programm die Funktion main ist, die sich außer durch ihren Namen nicht von anderen Funktionen unterscheidet. Deklarationen Programme, Funktionen und Prozeduren sind im Gegensatz zu C dreigegliedert: Es gibt neben dem Kopfteil, der den Namen und die Signatur enthält, einen separaten Deklarationsteil, in dem Typen, Variablen und verschachtelte Prozeduren/Funktionen deklariert werden und einen Definitionsteil, in dem implementiert wird. In C gibt es nur einen Funktionskopf und Funktionsrumpf, der den Deklarations- und Definitionsteil vereinigt. In C dürfen Funktionen nicht verschachtelt definiert werden. Case sensitivity Im Gegensatz zu C ist Pascal in Bezug auf Schlüsselwörter, Bezeichner von Variablen, Funktionen oder Prozeduren case in-sensitive. Semikolon Das Semikolon wird nicht wie in C als Befehlsabschluss interpretiert, sondern als Trennzeichen zwischen Anweisungen. Vor einem END oder UNTIL kann es somit weggelassen werden. Vor einem ELSE darf es in der Regel gar nicht stehen, da sonst der IF-Zweig als abgeschlossen angesehen werden würde. Ein Fall, bei dem es vor dem ELSE steht (und stehen muss), ist am Ende einer CASE-Auflistung. Delimiter Für Zeichenketten-Literale und Zeichen-Literale wird dasselbe Begrenzungszeichen (Delimiter), nämlich der Apostroph, verwendet. Zuweisungen Zuweisungen an Variablen werden durch die Sequenz := definiert, das Gleichheitszeichen allein dient dem Gleichheitsvergleich und der Definition von Konstanten. Damit werden „mathematisch falsche“ Ausdrücke z. B. i = i + 1 vermieden. Verkürzte Schreibweisen für Zuweisungen wie i++ statt i = i + 1 oder i *= 2 statt i = 2 * i existieren in Pascal nicht. Operatoren Pascal verwendet die Operatoren and, or, not, div (nur für Integer, bei Real ist es /), mod und <> anstatt der C-Operatoren &&, || , !, /, % und !=. Die „Short Circuit“-Funktionalität von && und || in C (sobald das Ergebnis feststeht, nämlich wenn der linke Teil beim and FALSE beziehungsweise beim or TRUE ist, wird der rechte nicht mehr ausgewertet) schloss Niklaus Wirth explizit aus, da compilerinterne Optimierungsvorgänge die Reihenfolge der Auswertung verändern können. Spätere Pascalversionen implementierten eine lokal oder global zuschaltbare „Short Circuit“-Funktionalität, so dass der Programmierer im Einzelfall entscheiden kann, welche Art der Auswertung er wünscht. In Standard-Pascal gibt es keine Bitoperationen für Integer (wie &, |, ^ und ~ von C), aber stattdessen den Typ set of (mit den Operatoren *, + und - für Durchschnitt, Vereinigung und Mengendifferenz). Strenge Typentrennung Unter anderem ist Char nicht austauschbar mit Integer, die Umwandlung muss mit den Funktionen ord() und chr() durchgeführt werden. Dadurch werden verdeckte (oder ungewollte) Umwandlungen vermieden; z. B. führt die Anweisung i = 7/2 zu einer Fehlermeldung, wenn i vom Typ Integer = Ganzzahl ist da 7/2 = 3.5 keine Ganzzahl ist. Spätere Pascalversionen (z. B. Turbo Pascal) führten zusätzlich „explizite“ Typumwandlungen, sog. „type casts“, ein, so dass z. B. mit longint(i) der Wertebereich der Ganzzahlvariablen i erweitert oder eingeschränkt werden konnte. In Standard-Pascal musste dafür ein Umweg über (den Missbrauch von) Variantenrecords (union in C) genommen werden. Quelle: Wikipedia https://de.wikipedia.org/wiki/Pascal_(Programmiersprache) 3 Disketten