Claus SchönleberHitchhacker´s Guide To PASCAL [Vol. 1] |
||||||||
|
[ Start | Beispielprogramme Download | Home ] | |||||||
InhaltCompilerProgrammieren Datentypen, Variablen, Standardfunktionen Logik Verzweigung, Strukturierung Schleifen Felder (Arrays) Verteiler: CASE Zeichenketten (Strings) Textdateien Module (Prozeduren, Funktionen) Anhang (Operatoren, abgeleitete Funktionen) |
Dieser Text entstand aus Skripten (und später
Büchern), die im Unterricht an den Volkshochschulen im BOW-Verbund
eingesetzt wurden. Als Programmierumgebung dient(e) Borlands
TurboPASCAL 5.x für MS-DOS.
Wo möglich, wurde auch in diesem Text versucht, sich an die ISO-Definition
zu halten. Die Praxis zeigt jedoch, daß das nicht immer geht. Vor
allem zur Bildschirmansteuerung werden Turbo-spezifische Funktionen eingesetzt.
Dieser Kurs ist gleichzeitig eine Einführung in das Programmieren. Viele Aussagen und Verfahren gelten auch für andere Programmiersprachen, sie werden dort nur syntaktisch anders dargestellt. CompilerWo findet man PASCAL Compiler?Wenn Sie eine Linux-Distribution (z.B. Suse, Red Hat, etc.) besitzen, haben Sie bereits einen freien PASCAL-Compiler. Schauen Sie einfach unter den Programmpaketen nach. Andernfalls schauen Sie unter einem der folgenden Verweise [Links korrigiert; 20090111]: Weitere freie PASCAL-Compiler...Was ist ein Compiler?Bei der Programmierung von Computern hat man die Wahl zwischen zwei verschiedenen Methoden:1. Maschinensprache/ASSEMBLER Man schreibt das Programm in der Sprache, die der Prozessor "versteht". Das ist die vom Prozessortyp abhängige Maschinensprache. Sie besteht einfach aus einer Folge von Binärmustern. Man kann sich das als eine scheinbar wirre Folge von zwei Zeichen, beispielsweise '0' und 'I', vorstellen. Eine Folge von 8 oder mehr solcher Zeichen kann dabei einen Befehl oder ein Datum für einen Befehl darstellen. Eine Erleichterung dieser Art der Programmierung stellt dabei die ASSEMBLER-Programmierung dar. Hier bekommen die Binärmuster, die einen Befehl darstellen, ein Kürzel (Mnenomic) zugewiesen, Daten werden in Form von Zahlen oder Zeichenfolgen aus Zeichen des Alphabets dargestellt. Die Programmierung mit dieser Methode hat den Vorteil, daß man sehr "nahe an der Maschine" programmieren kann und die Programme optimal schnell werden. Der Nachteil ist die Tatsache, daß nur elementare Operationen möglich sind (Addition, Vergleiche, Sprünge,..). Alles, was komplizierter ist, muß selbst dazugebaut werden (Makros). ASSEMBLER-Programme, und noch mehr Maschinenprogramme, sind nur schwer
zu überblicken, und es gehört schon sehr viel Erfahrung in der
Architektur des Prozessors und der Hardware dazu, größere Programme
in halbwegs sinnvoller Zeit fehlerfrei fertig zu stellen.
2. Programmiersprache Man schreibt das Programm in einer der Umgangssprache ähnlichen Sprache, in einer Programmiersprache. Solche Sprachen stellen mehr oder weniger komplexe Funktionen zur Verfügung, so daß der Programmierer sich auf die Lösung seines Problems konzentrieren kann. Ein Programm, das in einer solchen Sprache geschrieben worden ist, kann der Prozessor nicht "verstehen". Es muß vor der Ausführung in Maschinensprache übersetzt werden. Dies besorgen Compiler und Interpreter. Der Unterschied zwischen der Umgangssprache und einer Programmiersprache ist die Eindeutigkeit des Regelwerkes, mit dem solch eine primitive Sprache, eine Programmiersprache, definiert ist.
Programmiersprachen sind nicht nur zur Formulierung von Programmen für
Computer im Sinne dieses Buches geeignet. Als "Urvater" aller modernen
Programmiersprachen kann ALGOL
gelten. ALGOL (ALGOrithmic Language) wurde Ende der 50er
Jahre von einer Gruppe von Experten entwickelt, um einem Zustand abzuhelfen,
der diesen Experten lange schon ein Dorn im Auge war. Zwar hatte man in
der mathematischen Formelsprache ein Werkzeug gefunden, das eindeutig genug
mathematische und formal logische Zusammenhänge zu formulieren erlaubte.
Schwierigkeiten hatte man jedoch bei der Formulierung von Rechenverfahren,
die in der Praxis benötigt werden, gerade in der aufkommenden Welt
der Computer. So entwickelte man eine Formelsprache zur schriftlichen Fixierung
von praktischen Rechenverfahren, um auch diese eindeutig und präzise
formulieren zu können. Die neuen Eigenschaften dieser Formelsprache
erwiesen sich außerdem als höchst geeignet für die neuen
Rechenmaschinen, die Computer; wenigstens in der Theorie. Auch Programme,
die ja nichts weiter als Verfahrensvorschriften für diese Maschinen
sind, konnten mit Hilfe solcher neuen Formelsprachen formuliert werden.
ALGOL hat sich jedoch nie durchgesetzt, da man zur Zeit der Entwicklung
noch nicht in der Lage war, Compiler für derartig komplexe Sprachen
zu bauen. Moderne Sprachen wie PASCAL, C, C++, JAVA u.s.w. haben jedoch
das erfolgreiche Konzept von ALGOL übernommen und sind heute tagtäglich
im Einsatz.
Compiler und Interpreter sind, grob gesagt, Übersetzungsprogramme, die nach verschiedenen Methoden vorgehen. Compiler bearbeiten den Quelltext (Das ist der in einer Programmiersprache geschriebene Programmtext) und übersetzen ihn in die Maschinensprache. Das entstandene Gebilde erst ist dann das ausführbare Programm, der Quelltext nur noch für Änderungen oder zur Dokumentation wichtig. Interpreter übersetzen erst nach der Aufforderung, das Programm zu starten. Dabei wird der Quelltext bei jedem Ablauf des Programms wieder übersetzt, was die Ausführungsdauer stark heraufsetzt. Es ist ungefähr der gleiche Unterschied wie zwischen einem Simultandolmetscher und einem Übersetzer: der Dolmetscher übersetzt im Augenblick der Anforderung, der Übersetzer bekommt einen vollständigen Text, hat zum Übersetzen genügend Zeit und legt einen komplett übersetzten Text vor. Hier interessieren uns jedoch nur Compiler, da speziell im Falle von PASCAL nur sehr selten (meist nur für Lehrzwecke) Interpreter zu finden sind.
Zusätzlich zum Compiler benötigt man ein weiteres Programm, das die Erstellung und Korrektur eines Quelltextes erlaubt. Solche Programme heißen Programmeditoren. Sie unterscheiden sich von Textverarbeitungsprogrammen, die auch Texteditoren heißen, in der Art der Editorfunktionen, da beim Erstellen eines Programmquelltextes andere Voraussetzungen gelten als beim Schreiben eines normalen Textes in Umgangssprache. Oftmals sind solche Programmeditoren syntaxsensitiv, das bedeutet, daß sie Syntaxfehler während des Schreibens erkennen und darstellen können (zum Beispiel durch Farbcodierung). Kauft man heute einen "Compiler", so bekommt man nicht nur den eigentlichen Compiler, sondern ein ganzes Entwicklungssystem. Dazu gehören im allgemeinen:
|
|||||||
|
(c) 2001 Schoenleber.com |