Diplomarbeit
Ein Rechner-Baukasten -
Simulation und Visualisierung der Zeitabläufe in Rechnerarchitekturen
mit Java-Applets
Carsten Kelling
Universität Hamburg, Fachbereich Informatik
Arbeitsbereich Technische Grundlagen der Informatik
Vogt-Kölln-Str. 30, D-22527 Hamburg
Hamburg, im September 1997
Carsten Kelling
Ratiborweg 16
22043 Hamburg
Tel.: 6549 36 61
Fax: 6549 13 68
Email: Carsten_Kelling@public.uni-hamburg.de
Inhaltsverzeichnis
	
	
		
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
	
	
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
		
	
	
	
	
		
	
	
	
	
		
	
	
	
		
	
	
	
		
	
	
1 Einleitung
Die technischen Grundlagen der Informatik werden von Studenten vielfach als "trocken" und kompliziert
empfunden. Sie gehören aber zum Pflichtprogramm im Grundstudium, weil die Gesamt-Informatik sich als untrennbare
Einheit aus technischer, angewandter, theoretischer und praktischer Informatik versteht und jedem Studenten zumindest
einen Einblick in alle vier Bereiche vermitteln will. Dieser Einblick, d.h. das Wissen von den Inhalten und Grenzen
der Informatik, ergibt sich auch zwingend aus ihrem Anspruch auf Wissenschaftlichkeit. Auch ein programmierender
Informatiker sollte eben wissen, wie es der Maschine möglich ist, die Befehle in seinen Programmen auszuführen;
bei anspruchsvolleren Projekten wird er ohne technisches Grundlagenwissen nicht bestehen können. Am Fachbereich
Informatik der Universität Hamburg wird das angesprochene Wissen im Grundstudium im dreisemestrigen B-Zyklus
vermittelt. Zu den Vorlesungen sind umfangreiche Skripte vorhanden, die durch wöchentliche Übungsaufgaben
und -gruppen ergänzt werden. Außerdem richtet der Arbeitsbereich Technische Grundlagen der Informatik
(TECH) als Träger des B-Zyklus "Praxis-Tutorien" aus, in denen am Computer digitale Schaltungen
entworfen und sofort ausprobiert werden können. Das Ausbildungspensum scheint also ausreichend durch klassische
Formen der Wissensvermittlung abgedeckt zu werden.
Dennoch ist man am Arbeitsbereich TECH der Meinung, daß sich Form, Inhalt und Umfang der Materialien,
die man den Studenten zum (Selbst-)Studium an die Hand gibt, stets verbessern lassen. Ein erster Schritt besteht
in der Umsetzung des klassischen, auf Papier gedruckten, Vorlesungsskriptes in ein Hypertext-Dokument im im world
wide web (WWW) üblichen HTML-Format; dieses hat mehrere Vorteile:
	- Das Prinzip der Verweise (Links) erlaubt ein schnelles Bewegen im Gesamtdokument und ermöglicht
	so rasches Nachschlagen.
	
- Mehr noch, dieses Prinzip ermöglicht, ohne langwieriges Blättern, das Ersetzen von linearem Lernen
	(erzwungenes Durchlesen des Skriptes von vorne nach hinten) durch "interessengesteuertes" Verfolgen des
	Inhaltes. Ein Leser, der keine vollständige Behandlung des Gesamtthemas wünscht, sondern nur sein Wissen
	zu einzelnen Themen vertiefen möchte oder gar nur "schnuppert", wird durch die Verweise durch das
	Dokument geleitet. Für den Autor ist die Möglichkeit dieser Vorgehensweise Ansporn, jedes Kapitel inhaltlich
	abgeschlossen und für sich selbst genommen verständlicher zu gestalten. Wo Vorwissen unabdingbar und
	nicht in Kürze zu vermitteln ist, müssen Verweise auf andere Kapitel angebracht werden, so daß
	der Leser bei Bedarf leicht das Grundwissen nachschlagen kann. Auch Erklärungen zu Fachtermini in einem Glossar
	oder ein "anklickbarer" Index lassen sich durch Verweise, die möglicherweise sogar automatisiert
	erzeugt werden könnten, abdecken.
	
- Die Dokumentenbeschreibungssprache HTML ist in den wichtigsten Grundzügen standardisiert und hardwareunabhängig.
	HTML-Anzeigeprogramme (Browser; Erläuterungen zu diesem und anderen Fachbegriffen finden Sie in dem
	Glossar ab Seite 137) sind für nahezu jede Hardwareplattform verfügbar; jeder Student hat bereits heute
	die Möglichkeit, sich HTML-Dokumente an der Universität anzeigen zu lassen. Mit zunehmender Verbreitung
	von PCs, insbesondere natürlich bei Informatikstudenten, steigt auch die Wahrscheinlichkeit, daß der
	Student zu Hause in Ruhe im HTML-Text lesen kann.
	
- Elektronische Dokumente verbrauchen a priori kein Papier, lassen sich aber notfalls ausdrucken, um den großen
	Vorteil gedruckter Werke, die Mobilität, auszugleichen.
	
- Elektronische Dokumente lassen sich schnell und "spurlos" überarbeiten. Die neue Version wird
	über das Internet automatisch allen Lesern, die keine lokale Kopie benutzen, zur Verfügung gestellt.
Zusammengefaßt sind HTML-Dokumente, wie sie bisher verwendet wurden, bessere und schnellere Bücher,
bestehend aus starrem Text und unveränderlichen Illustrationen. Es ist aber eine unbestrittene mnemotechnische
Tatsache, daß Lerninhalte um so fester und dauerhafter im Gedächtnis verankert werden, je mehr "Sinne"
sie bei der Aufnahme beansprucht haben. Probanden, die sich einen Text laut vorlasen, erinnerten sich im Durchschnitt
an größere Teile des Inhalts als diejenigen, die denselben Text still gelesen haben; noch besser wird
im allgemeinen durch "Ausprobieren" gelernt, wenn das Gehirn nicht nur auf Konsum, sondern auch auf Eigenarbeit
eingestellt ist. Abgesehen davon aktiviert das Zulassen von "Experimenten" den oftmals unterschätzten,
übersehenen oder ungewollten Faktor "Spaß". Dieses mag ein Grund für den großen
Erfolg der Praxis-Tutorien sein.
Diese Diplomarbeit konzentriert sich auf die naheliegendste und eleganteste Möglichkeit, aus HTML-Dokumenten
interaktive Lernmaterialien für diverse Anwendungen zu machen: Die Anreicherung von HTML-Seiten mit Java-Applets,
also Programmen, abgefaßt in der rechnerunabhängigen Programmiersprache Java, die in der Umgebung des
Browsers ausgeführt werden.
1.1 Aufgabenstellung und Inhalt dieser Arbeit
Die Entscheidung, HTML-Seiten mit Java-Applets zu versehen, war bei Beginn dieser Arbeit bereits gefallen; im
Vergleich zu den Alternativen, bereits existierende Simulatoren oder dedizierte Multimediapräsentationsprogramme
zu verwenden, hat die Kombination "Java + Browser" einige Vorteile:
	- Java [JavaWhitepaper] ist eine "echte" höhere Programmiersprache, abgeleitet von dem populären
	C++. Damit ist die gesamte vorstellbare Palette an Anwendungen realisierbar, von einfachen Animationen bis zu kompletten
	Simulationsvorgängen und graphischen Editoren. Existierende Simulationsprogramme wie Chipmunk decken
	nicht alle Themen ab, die in der technischen Informatik von Bedeutung sind oder sind nicht frei verfügbar;
	Multimediapräsentationsprogramme wie der Macromedia Director dagegen erlauben es quasi nur, graphisch
	"aufgemotzte" Hypertext-Dokumente zu erstellen - mit vorgefertigten Animationen und Überblendungen,
	aber ohne die Möglichkeit, Simulationscode einzubauen.
	
- Java ist frei verfügbar.
	
- Java ist plattformunabhängig. Das bedeutet vor allen Dingen zweierlei:
	
- Erstens wird Java-Quellcode vor der Ausführung in sogenannten Bytecode übersetzt, der nicht der Maschinensprache
	einer bestimmten existenten Hardwareplattform entspricht, sondern nur in der Java-Virtuellen-Maschine (Java-VM)
	ausgeführt werden kann. Diese Java-VM jedoch ist als Programm für nahezu jede Plattform verfügbar;
	insbesondere kann die VM auch Bestandteil eines Internet-Browsers sein. Bei einem Java-Programm, das in der VM
	eines Browsers ausgeführt wird, spricht man von einem Applet; falls eine eigenständige VM, wie das mit
	dem JDK gelieferte Programm java [JDK 1.0.2],
	das Programm ausführt, nennt man es application.
	
- Zweitens schirmt Java den Programmierer durch umfangreiche mitgelieferte Bibliotheken von den Details der jeweiligen
	Hardware und des laufenden Betriebssystems ab. Ein "Fenster" für eine graphische Benutzeroberfläche
	(graphical user interface, GUI) heißt in Java immer java.awt.frame und muß vom
	Programmierer immer auf die gleiche Weise erzeugt werden, sieht aber dennoch unter MS Windows anders aus als unter
	Mac OS oder Solaris, stets aber so, wie unter dem jeweiligen GUI üblich.
	
- Java ist für das Internet entwickelt worden; benötigte Teile des Bytecodes werden erst bei Bedarf
	über eine weltweit eindeutige URL von einem Internetserver angefordert. Dadurch wird es einfach, stets
	die aktuelle Version zur Verfügung zu stellen. Natürlich läßt sich der übersetzte Code
	aber aus Geschwindigkeitsgründen auch lokal speichern.
	
- Java ist eine sehr sichere Sprache; Applets unterliegen weitreichenden Sicherheitsbeschränkungen, wie
	z.B. dem Verbot eines lokalen Plattenzugriffs. Ein Java-Programm kann (theoretisch) nicht einmal die Java-VM zum
	Absturz bringen, geschweige denn den gesamten Rechner. Auch ein von einem unbekannten Server über das Internet
	geladenes Applet kann daher ohne Bedenken und Gefahr durch Viren ausgeführt werden.
Obendrein zeichnet sich Java durch einige weniger grundlegende Vorteile aus:
	- Java ist objektorientiert, folgt also dem Credo und den Wünschen der meisten Programmierer (die die Alternativen
	kennen; eine gute Einführung in die Grundbegriffe der objektorientierten Programmierung bietet [JavaTutorial]).
	
- Java gilt als "das bessere C++" [JavaWhitepaper],
	das von einigen Fehlern und Ungereimtheiten des Vorbildes befreit wurde.
	
- Java ist momentan sehr in Mode, zu Recht, wie nicht nur der Autor meint.
Die Verwendung von Java hat aber auch zwei Nachteile, die nicht verschwiegen werden sollen und zu dem Anlaß
dieser Diplomarbeit führen:
	- Der Java Bytecode ist zur Zeit noch gegenüber üblichen höheren Programmiersprachen, die Maschinencode
	erzeugen, um mindestens den Faktor 10 langsamer. Dieses liegt zum einen an den aufwendigen Tests, die auch zur
	Laufzeit ständig durchgeführt werden (Wertebereichstests, Zugriffsrechte), zum anderen daran, daß
	der Bytecode lediglich interpretiert wird, also bei jeder Abarbeitung einer Codezeile erneut in Maschinensprache
	übersetzt werden muß. Auch die sich allmählich etablierenden just in time-compiler (JIT)
	der ersten Generation, mit deren Hilfe der Bytecode nur noch einmal, vor der ersten Benutzung, übersetzt wird,
	heben die Ausführungsgeschwindigkeit von Java-Programmen noch lange nicht auf die von beispielsweise C-Programmen.
	
- Eine vollwertige Programmiersprache eröffnet selbstverständlich nicht nur alle Möglichkeiten,
	sondern gibt dem Programmierer zumeist wenig konkrete Mittel an die Hand, um ein spezielles Problem zu lösen,
	da sie für Programmierung im allgemeinen gedacht ist. Damit nicht jeder Interessierte in bezug auf die Fragestellung
	"Wie erstelle ich interaktive, simulierende Applets zu Themen der technischen Informatik?" das Rad stets
	aufs Neue erfinden muß, war die Erstellung einer entsprechenden Codebibliothek, bei einer objektorientierten
	Sprache also einer Menge von Klassen, sinnvoll und wünschenswert.
Diese Sammlung von Java-Klassen unter dem Namen "Rechner-Baukasten" ist der eigentliche Inhalt der
Diplomarbeit. Sie ist aber kein reiner Selbstzweck, sondern entstand aufgrund konkreter Anforderungen des Arbeitsbereiches
TECH; dort sollen in nächster Zeit eben umfangreiche Materialien nach dem Motto "HTML + Java" entstehen.
Deswegen war es auch Teil der Arbeit, einen Grundstock an Lernmaterialien zu erstellen: Eine HTML-Dokumentstruktur
mit Texten, Abbildungen und Applets zu einigen, aber keineswegs allen, grundlegenden Themen.
Dabei erwies es sich für das Reifen des Rechner-Baukastens als äußerst nützlich, daß
die Praxis am besten Lücken und Irrwege aufzeigt; so entstanden mehrere, auch größere, Demonstrations-Applets
mit erläuternden HTML-Dokumenten, die Schritt für Schritt in eine Thematik einführen.
Damit dieser Anfang in den nächsten Monaten auch von anderen Informatikern unter Nutzung des Rechner-Baukastens
fortgeführt werden kann, darf eine umfassende Dokumentation der Klassen des Baukastens und ihrer Verwendung
nicht fehlen.
1.1.1 Was diese Arbeit umfaßt
	- Eine Einleitung, welche Motivation, Gründe und Vorbedingungen der Erstellung der Arbeit aufzeigt.
	
- Eine Java-Klassenbibliothek, den eigentlichen "Rechner-Baukasten". Deren Klassen simulieren typische
	Komponenten eines Rechners, der auf der Registertransferebene betrachtet wird, und stellen diese auf dem Bildschirm
	dar. Dazu gehören verschiedene Register, Busse mit Abzweigungen, eine ALU und ein Addierer, ein RAM,
	ein Tag-RAM für die Erstellung eines Cache, Multiplexer, ein Symbol für "Diverses" und einige
	speziellere Komponenten.
	
- Einige weitere Klassen, die sich als nützlich erwiesen haben, darunter eine Anzeige für Hilfetexte
	mit hervorgehobenem Text, Wortumbruch und Blocksatz, ein Standardfenster für Fehlermeldungen und ein Standardfenster
	zur Mitprotokollierung von Aktionen ("Konsole"). Weitere Klassen sind ein Standardfenster mit regelmäßig
	benötigten Steuerknöpfen (ein Schritt vor/zurück, befehlsweise vor/zurück, Ausführen bis
	zum nächsten breakpoint, Neustart der Simulation), ein timer und noch einiges mehr.
	
- Einen graphischen Editor, mit dem sich Instanzen der Komponenten des Rechner-Baukastens erzeugen, auf dem Bildschirm
	gruppieren und modifizieren lassen (Größe eines RAMs, Editierbarkeit von Registern oder RAMs etc.).
	Anschließend läßt sich sofort lauffähiger Java-Code erzeugen, der den eben gebildeten Aufbau
	erzeugt und die Rümpfe aller für eine Simulation notwendigen Methoden enthält. Der Editor ist ebenfalls
	als Java-Applet realisiert.
	
- Ein umfangreiches HTML-Dokument unter dem Titel "Lernmaterialien zur technischen Informatik", das
	zeigt, wie Grundlagen der technischen Informatik mit der Kombination "HTML + Java" vermittelt werden
	können. Es enthält Applets zu den Fragen "Was ist ein Register/ein RAM/eine ALU/ein Bus?".
	Anhand mehrerer Applets wird die Funktionsweise des Von-Neumann-Rechners erläutert und Schritt für Schritt
	in eine beispielhafte Maschinensprache eingeführt; schließlich wird der Von-Neumann-Rechner um einen
	Cache erweitert. Außerdem existieren noch Applets für eine Demonstration der Adressierungsarten des
	MC 68000 [Motorola86] und der Befehlspipeline eines einfachen
	RISC-Prozessors nach Hennessy und Patterson [HennPatt94].
	
- Eine intensive Einführung in die Benutzung der Rechnerkomponenten und zu der Frage, wie man mit ihnen
	einen Rechner oder Teile davon simuliert. Mit Hilfe dieses Abschnitts sollte man vor Beginn der Programmierarbeit
	entscheiden, welche Komponenten man benötigt, mit welchen Algorithmen man Vorgänge simuliert und wie
	man diese visualisiert.
	
- Eine ausführliche Dokumentation der Klassen des Rechner-Baukastens, sowohl der eigentlichen Rechnerkomponenten
	als auch der nützlichen Hilfsklassen. Dieser Abschnitt wendet sich als Referenz an diejenigen, die bereits
	mit der Programmierung begonnen haben und die Fähigkeiten der einzelnen Klassen nachschlagen oder Details
	zu ihrer Benutzung erfahren möchten.
1.1.2 Was diese Arbeit nicht umfaßt
	- Eine vollständige Erklärung der Grundlagen der technischen Informatik.
	
- Pädagogisch ausgefeilte Schritt-für-Schritt-Anleitungen zu allen Applets.
	
- Einen Aufbau zur Simulation einer ganzen CPU etwa vom Typ Motorola 68000, Intel 8086 oder eines RISC-Prozessors.
	
- Keine Fehler im Java-Code.
1.2 Aufbau und Gliederung
Im Verlauf der Entwicklung dieser Diplomarbeit sind mehrere "Produkte" entstanden, die in verschiedenen
der folgenden Kapitel behandelt werden:
	- Eine in Java verfaßte Klassenbibliothek mit ca. 37000 Zeilen Code und einer summierten Dateigröße
	der Quellcodes von über 1,1 MByte. Diese Klassen gliedern sich in drei Gruppen:
	
		- Den Rechner-Baukasten, der die typischen Komponenten eines auf der Registertransferebene betrachteten
		Rechners simuliert und ihr Verhalten optisch präsentiert. Die einzelnen Komponenten, wie das Simulationsmodell
		eines Registers, eines Busses oder eines RAMs, verfügen über Methoden, um das typische Verhalten der
		simulierten Komponente bei Datenspeicherung und -verarbeitung nachzustellen. Diese zunächst unsichtbaren internen
		Vorgänge können so visualisiert werden, daß verständliche Schritt-für-Schritt-Einführungen
		in die Funktion von Rechenanlagen einfach möglich werden. Zu dem Rechner-Baukasten gehören auch die oben
		erwähnten Hilfsklassen, die dem Programmierer die Arbeit erleichtern und wichtige Werkzeuge für die Präsentation
		der Wissensinhalte an die Hand geben.
		
- Die sieben Demonstrations-Applets, die mit dem Rechner-Baukasten erstellt wurden. Sie zeigen teilweise
		sehr komplexe Aufbauten aus Rechnerkomponenten. Die Komponenten können in ihrem Zusammenspiel vorwärts
		und rückwärts in der Zeit beobachtet und beeinflußt werden. Vorgänge wie das Laden eines Wertes
		oder eine Berechnung mit einer ALU können in didaktisch gewählten kleinen Schritten verfolgt werden,
		wobei zu jedem Schritt ein spezifischer und variabler Hilfetext erscheint. Alternativ kann der fortgeschrittene
		Leser die Aufbauten größere Schritte abarbeiten lassen, bis hin zu dem Setzen von breakpoints.
		
- Den Baukasten-Editor, mit dessen Hilfe sich Komponenten aus dem Rechner-Baukasten grafisch zusammenstellen
		und anordnen lassen. Der als weiteres Applet realisierte Editor unterstützt vollständig die komponentenrelativen
		Koordinaten, die der Baukasten statt absoluter Angaben kennt. Damit werden Aufbauten leichter wiederverwendbar
		und resistent gegen Positions- und Größenänderungen einzelner Komponenten. Mit dem Editor lassen
		sich zunächst die Eigenschaften einstellen, die alle Klassen aus dem Rechner-Baukasten besitzen, wie die Überschriften
		oder die Instanzennamen im späteren Java-Code. Es werden aber bereits die Spezialfunktionen einiger Komponenten
		unterstützt, wie z.B. Größe, Editierbarkeit und geladenes Programm eines Speichers. Damit kann
		der Editor auch als Einführung in die Möglichkeiten der Komponenten dienen.
	
 
- Das etwa 50 DIN-A4-Seiten starke Dokument "Lernmaterialien zur technischen
	Informatik" - für das Selbststudium gedachte Unterlagen, versehen mit diversen Illustrationen
	und den Demonstrations-Applets. Mit diesen Mitteln kann man sich zunächst gründlich theoretisch über
	Bestandteile eines Rechners, ihre Funktion und theoretische Voraussetzungen informieren, um anschließend
	zum besseren und dauerhaften Verständnis das Zeitverhalten eines Computersystems interaktiv zu simulieren.
	Inhaltliche Grundlagen für die bisher erstellten Lernmaterialien waren [Duden88],
	[Encarta97], [HennPatt90],
	[HennPatt94], [Lagemann87]
	sowie [Lexikon91].
	
- Zwei algorithmische Ansätze, die sich für die Implementation von Simulationscode eignen und
	die didaktisch vorteilhafte Präsentation der Vorgänge in und zwischen den Rechnerkomponenten ermöglichen.
	Beide Ansätze wurden in der Praxis für den Entwurf und die Implementation der Demonstrations-Applets
	verwendet und haben sich als tauglich auch bei größeren Aufbauten erwiesen. Allerdings kann der erste
	Ansatz beim Rückgängigmachen von Simulationsschritten versagen, das aber eine conditio sine qua non für
	wirklich verständliche Visualisierung ist. Deswegen wurde er zu dem zweiten Ansatz weiterentwickelt, der z.B.
	in den Von-Neumann-Rechner-Applets in die Praxis umgesetzt wurde.
	
- Umfassende Erfahrungen über die Praxiseignung von Java als Programmiersprache im allgemeinen und als Simulationswerkzeug
	im speziellen. Die Eignung von Java für ein Simulationsprojekt erscheint durch ihre Klassifikation als vollwertige
	höhere Programmiersprache gegeben zu sein. Diese Eignung erwies sich aber in der Praxis von grundsätzlichen
	Eigenschaften, wie dem objektorientierten Paradigma, als ebenso abhängig wie von profanen Attributen, etwa
	der Ausführungsgeschwindigkeit und der korrekten Implementation in Browsern. Letztlich bedeutete die Beschäftigung
	mit der Eignung von Java, obwohl sie für diese Arbeit als Grundlage vorgegeben war, auch eine Überprüfung
	anderer Simulationswerkzeuge auf ihre Tauglichkeit.
Es ist klar, daß sich aufgrund dieser Vielfalt auch unterschiedliche Personenkreise für diese Arbeit
interessieren können:
Der an der Programmierung interessierte oder mit dieser beauftragte findet eine ausführliche Behandlung
des Rechner-Baukastens in Kapitel 4. Von allgemeinen Interesse dürfte
der Abdruck der "Lernmaterialien zur technischen Informatik" mit einigen zusätzlichen
Ausführungen in Kapitel 3 sein. Damit die in den "Lernmaterialien" enthaltenen
Applets keine statischen Abbildungen bleiben, empfiehlt es sich dabei, nach den einleitenden Bemerkungen von Kapitel
3 unter der vorläufigen URL
http://tech-www.informatik.uni-hamburg.de/Students/1kelling/DA/Inhalt.html
weiterzulesen. Auf die evaluierten Simulationsansätze geht, im Rahmen der Einführung in die Verwendung
des Rechner-Baukastens, 4.8 ein. Für den didaktisch interessierten Leser werden
die Implikationen der Verwendung von "HTML + Rechner-Baukasten" in 2 Visualisierung
und Simulation mit Java mit anderen Ansätzen verglichen.
1.2.1 Gliederung
Nach dieser Einführung beschäftigt sich Kapitel 2 mit der
Frage, ob Java ein adäquates Mittel ist, um Zeitabläufe in Mikrorechnern zu simulieren und zu visualisieren.
Der Abschnitt 2.1 Bestehende Ansätze präsentiert
eine Übersicht anderer Mittel zur Wissensvermittlung bezüglich der Zeitabläufe in Mikrorechnern.
Abschnitt 2.2 Didaktische Notwendigkeiten faßt
nach diesen empirischen Beobachtungen zusammen, wie derartige Lernmaterialien geeignet gestaltet werden können.
Im abschließenden Abschnitt 2.3 Simulation mit Java wird
der in dieser Arbeit entwickelte Rechner-Baukasten an diesen Maßstäben gemessen und von den praktischen
Erfahrungen mit Java bei seiner Entwicklung berichtet.
Die meisten Leser werden einem Ergebnis dieser Arbeit wahrscheinlich bei dem Studium des etwa 50 DIN-A4-Seiten
starken Dokumentes "Lernmaterialien zur technischen Informatik" begegnen. Ein
Teil dieser Unterlagen bildet das Kapitel 3 Lernmaterialien zur technischen Informatik.
Leider müssen Applets dort durch kommentierte Abbildungen ersetzt werden und Hyperlinks sind als Unterstreichungen
zwar angedeutet, aber selbstverständlich nicht benutzbar. Mit dem Rechner-Baukasten erstellte Applets befinden
sich in den Abschnitten 3.2.1.1, 3.2.1.2,
3.3.2 (fünf Applets), 3.4.1,
3.5.3 und 3.6.1. Besonders
deutlich werden die Vorteile der Simulation mit dem Rechner-Baukasten an dem Applet zur Speicherhierarchie in Abschnitt
3.5.3 auf Seite 64. Dieses Applet gestattet es, sämtliche
relevanten Parameter eines Cache einzustellen und die Auswirkungen sofort zu beobachten.
In Kapitel 4 wird der Rechner-Baukasten im Detail vorgestellt.
In einem bottom up-Vorgehen werden zunächst die Komponenten selbst in Abschnitt 4.1
eingeführt. Es folgen Anleitungen zu ihrer Erzeugung und Plazierung in Abschnitt 4.2
bis 4.4. Die Abschnitte 4.5
bis 4.7 zeigen, wie die Komponenten Daten berechnen und untereinander
austauschen können bzw. wie diese Vorgänge visualisiert werden können.
Abschnitt 4.8 stellt die beiden Simulationsalgorithmen vor, die in den Demonstrations-Applets
verwendet werden. Technische Details zur Ausführung der Applets befinden sich in den Abschnitten 4.9
und 4.10. Die sieben Demonstrations-Applets, einschließlich
des Baukasten-Editors, werden in 4.11 aufgezählt. Schließlich
beschreibt Abschnitt 4.12 die Unterstützungsklassen, die auch außerhalb
des Rechner-Baukastens genutzt werden können.
Eine Zusammenfassung dieser Arbeit befindet sich in Kapitel
5. Der Ausblick in Abschnitt 5.2
nennt einige wünschenswerte Erweiterungen, und Abschnitt 5.3
enthält eine Liste der bekannten Unzulänglichkeiten des Rechner-Baukastens und der Demonstrations-Applets.
Das Literaturverzeichnis findet sich in Kapitel 6, ein Glossar
verwendeter Begriffe, inklusive derer aus den "Lernmaterialien", in Kapitel
7.
1.2.2 Darstellungskonventionen
In dieser Arbeit werden einheitlich folgende Schrifttypen und Symbole verwendet:
	- Kursive Schrift für noch nicht als Teil der deutschen Sprache anzusehende Fachtermini oder dem
	ersten Auftreten wichtiger Begriffe oder
	
- Kursive Schrift für Betonungen.
	
- Fette Schrift für besondere Betonungen, abgesehen von Überschriften.
	
- Nichtproprotionale Schrift für Beispielcode und Begriffe, wie z.B. Klassennamen, die so im Code
	stehen können.
	
- Nichtproprotionale Schrift steht auch für Dateinamen.
	
- Das Symbol  für Kapitel, die
	in der HTML-Fassung ein oder mehrere Applets enthalten. für Kapitel, die
	in der HTML-Fassung ein oder mehrere Applets enthalten.
- Ein senkrechter Strich am linken Rand und nach rechts eingerückter Text für besondere Anmerkungen
	wie diese.
	
- In Überschriften werden keine Auszeichnungen oder besonderen Schriften verwendet.