Skip to main content
main-content

Inhaltsverzeichnis

Frontmatter

1. Computer-Grundlagen

Zusammenfassung
Es wirkt vielleicht befremdend, ein Buch über das Programmieren mit Pascal mit einem Kapitel zu beginnen, das sich mit dem Innenleben des Rechners beschäftigt. In den meisten Büchern werden solche Informationen an das Ende verbannt, was bei höheren Programmiersprachen auch seine Berechtigung haben mag. Schließlich ist Portabilität, d.h. die Unabhängigkeit von bestimmten Rechnern eine wichtige Eigenschaft der höheren Programmiersprachen. Turbo Pascal 4.0 und 5.0 weichen an diesem Punkt erheblich vom Standard ab: sie können nur bei IBM und IBM-kompatiblen Rechnern eingesetzt werden. Die enorme Flexibilität und Effektivität von Turbo Pascal ist das Ergebnis seiner Anpassung an die interne Struktur und Arbeitsweise dieser Rechner.
C. Emmanuilidis

2. Programmqualitäten

Zusammenfassung
Auch wenn ein Programm noch so schön implementiert wurde, ist es wertlos, wenn es seine Aufgabe nicht fehlerfrei erfüllt. Korrektheit ist die wichtigste Forderung an einen Programmierer. Ein Programm sollte aber auch effizient sein, d.h. nicht mehr Rechenzeit als notwendig und möglichst wenig Speicherplatz aufwenden.
S. Alexakis

3. Units in Turbo Pascal 4.0 und 5.0

Zusammenfassung
Es gibt mehrere Möglichkeiten, ein Programm zu entwickeln. Die bekannteste ist wohl das top down-Verfahren (schrittweise Verfeinerung): das Problem wird solange in Unterprobleme zerlegt, bis diese einfach zu lösen sind oder auf bekannte Lösungsansätze zurückgeführt werden können. Im Gegensatz dazu steht die bottom up-Methode. Entsprechend den Anweisungen der eingesetzten Programmiersprache werden Module entwickelt, die zusammengefügt die Aufgabenstellung erfüllen. In der Praxis wird meistens eine Mischung dieser zwei Strategien angewandt, wobei jedoch die top down-Methode die größere Rolle spielt.
S. Alexakis, C. Emmanuilidis

4. Daten und Datenstrukturen in Turbo Pascal 4.0 und 5.0

Zusammenfassung
Computer können im Grunde nur Zahlen verarbeiten, obwohl Programme oft den Eindruck vermitteln, sie könnten Texte oder sogar deren Sinn erfassen, graphische Muster erkennen oder mit logischen Begriffen umgehen, kurz gesagt, intelligent sein. Wir wollen aber an dieser Stelle nicht etwa die Arbeitsweise der Computer erklären, sondern vielmehr einen einfachen Sachverhalt erläutern, der vor allem für die Programmierer, die sich nur mit einer höheren Programmiersprache beschäftigt haben, nicht immer selbstverständlich ist.
C. Emmanuilidis

5. Zeigervariablen in Turbo Pascal 4.0 und 5.0

Zusammenfassung
Zeiger enthalten Adressen von Daten, nicht die Daten selbst. Zeiger des MS-DOS spezifischen Turbo Pascal bestehen deshalb aus zwei Wörtern (4 Bytes), die Segment und Offset der entsprechenden Adresse kennzeichnen.
S. Alexakis

6. Datenmaschinen :Listen, Warteschlangen, Stacks und binäre Bäume

Zusammenfassung
Wir haben in Kapitel 4 erfahren, daß Daten rechnerintern als Zahlenfolgen kodiert werden. Auf der nächsten Ebene befinden sich die einfachen vordefinierten Datentypen wie word oder char. Danach kommen Arrays, also Folgen der einfachen Datentypen, und Records, d.h. Strukturen die aus mehreren Datentypen zusammengesetzt sind. Es gibt jedoch noch eine Ebene, die der Datenmaschinen. Datenmaschinen definieren Regeln, nach denen Informationen gespeichert und abgerufen werden. Wir werden uns in diesem Abschnitt mit vier Arten von Datenmaschinen befassen :mit verketteten Listen, binären Bäumen, Warteschlangen und Stacks.
S. Alexakis

7. Suchen und Sortieren

Zusammenfassung
Suchen und Sortieren von Datenbeständen nach bestimmten Eigenschaften sind zwei der häufigsten Aufgaben, die in der Computerwelt vorkommen. Sortieren ist das Ordnen einer Menge von Daten nach einer bestimmten Relation in aufsteigender oder absteigender Reihenfolge. Suchen ist die Lokalisierung eines bestimmten Elementes aus einer Datenmenge. Such- und Sortieralgorithmen werden im Speicher oder auf der Platte eingesetzt. Dieses Kapitel stellt einige der wichtigsten dieser Verfahren vor.
S. Alexakis

8. Assemblerschnittstelle

Zusammenfassung
Turbo Pascal ist eine vielseitige Programmiersprache. Trotzdem kann es u.U. vorkommen, daß die Programmierung von Routinen in Assembler die bessere Lösung darstellt. Turbo Pascal 4.0 und 5.0 bieten die Möglichkeit, in einem Programm Assembleranweisungen oder -routinen zu übernehmen, worauf in diesem Kapitel näher eingegangen werden soll. Wo immer es möglich ist, werden kontextbezogene Hintergrundinformationen gegeben. Gewisse Assemblergrundkenntnisse werden jedoch vorausgesetzt.
C. Emmanuilidis

9. Die Systemschnittstelle von Turbo Pascal

Zusammenfassung
Bereits in Kapitel 1 wurde über Interrupts und ihre Funktionsweise gesprochen. BIOS-Interrupts und die DOS-Interruptfunktionen stellen eine wichtige Sammlung von Routinen dar, auf die Programme häufig zugreifen. Viele dieser Routinen verhalten sich wie Funktionen, da sie Ergebnisse zurückliefern. Viele dieser Funktionen werden durch dasselbe Interrupt aufgerufen. Die spezielle Funktion wird dann durch einen bestimmten Wert im Register AH angewählt. Ein typisches Beispiel dafür sind alle DOS-Interruptfunktionen, die durch das Interrupt 21 hex ausgelöst werden.
C. Emmanuilidis

10. Overlays

Zusammenfassung
Durch das Overlay-Konzept können viel größere Programme erzeugt werden, als der Hauptspeicher fassen kann. Eine Reihe von Units (Overlay-Units) werden nach diesem Konzept abwechselnd in denselben Speicherbereich geladen. Dieser Bereich wird zwischen Stack und Heap reserviert und ist mindestens so groß wie das größte der Overlay-Units. Im Beispiel von Bild 10.1 wird die Mindestgröße des Overlay-Bereichs von Overlay-Unit 2 bestimmt. Um es genau zu sagen: der Overlay-Bereich enthält nicht nur den Overlay-Code, sondern auch eine Tabelle mit Querverweisen - bei einem 64K großen Unit übersteigt er deshalb die Maximalgröße eines Segments.
S. Alexakis

11. Graphik mit Turbo Pascal 4.0 und 5.0

Zusammenfassung
Wer bereits vertraut ist mit der Graphix Toolbox der Turbo Pascal Version 3.0, wird viel Bekanntes im Unit graph wiederfinden. In graph wurde jedoch das gesamte Konzept neu bearbeitet und vor allem hinsichtlich der Portabilität ein und desselben Programms auf Rechnern mit verschiedenen Graphik-Karten erweitert. So wurden High-Level-Routinen wie graph.line, graph.circle, graph.drawpoly etc. klar von Low-Level-Routinen abgetrennt, die die direkte Steuerung der Hardware übernehmen und deren absolute Eckwerte definieren (maximale Auflösung, Unterstützung verschiedener Modi, Definition der Größe der Farbpaletten usw). Solche Hardware-spezifischen Größen lassen sich mit Hilfe einer Reihe vordefinierter Funktionen und Prozeduren ermitteln (graph. getmaxx, graph.getpalette, graph.getmoderange usw.). Turbo Pascal 4.0 und 5.0 Programme sind imstande, während der Laufzeit die installierte Graphik-Karte zu identifizieren. Auf diese Weise und unter Berücksichtigung der Hardware-spezifischen Größen ist es möglich, Programme zu entwickeln, die auf allen unterstützten Graphik-Karten ohne spezielle Anpassungen lauf-fähig sind.
C. Emmanuilidis

12. Ansätze zum Parserbau

Zusammenfassung
Vor einiger Zeit bat mich ein Freund, ein kleines Programm zu schreiben, das den Verlauf einer bestimmten mathematischen Funktion graphisch auf dem Bildschirm darstellt. Doch nach Fertigstellung des Programms kam er immer wieder, um sich neue Funktionsgraphiken anzusehen. Jedesmal mußte ich den Turbo Pascal Compiler aufrufen, das Programm laden, die neue zu zeichnende Funktion im Quellcode editieren und eine Neukompilierung vornehmen; kurz eine mühselige Arbeit, da die Funktion jedesmal Bestandteil des Programmcodes war. Schließlich entschloß ich mich, ein neues Programm zu erstellen, bei dem die Eingabe die Gleichung der Funktion im ASCII-Format ist. Um Funktionswerte zu ermitteln, sollte dieses Programm in der Lage sein, die Texteingabe richtig zu interpretieren. In diesem Kapitel stellen wir eine neubearbeitete Version dieses Programms vor, nicht nur, weil es eine interessante Anwendung ist, sondern auch, um ansatzweise die Funktion eines Parsers und Interpreters zu zeigen und den Umgang mit einigen in diesem Buch vorgestellten Units zu demonstrieren. Doch bevor wir uns auf die Entwicklung des Programms stürzen, möchten wir kurz auf die Problematik der Aufgabe eingehen.
C. Emmanuilidis

13. Objektorientiertes Programmieren mit Turbo Pascal 5.5

Zusammenfassung
Objektorientiertes Programmieren (OOP) ist das Schlagwort, das in letzter Zeit die Computerszene beherrscht. Nun ist es soweit: die neueste Ausgabe von Turbo Pascal, Version 5.5, unterstützt objektorientierte Softwareentwicklung. Durch das Zusammenspiel von OOP und konventionellen Programmiertechniken ist Turbo Pascal 5.5 ein mächtiges Programmierwerkzeug, mit dem ein höherer Grad der Abstraktion bei der Programmentwicklung erreicht werden kann.
S. Alexakis

Backmatter

Weitere Informationen