|
A.9.6 Ausgabe und Schnittstellen
Grafik
Elimination verdeckter Oberflächen in 3D-Grafik wird so durchgeführt, daß das Ergebnis von der Anzeige-Auflösung unabhängig ist.
Zur Wiedergabe von Grafik in der Benutzeroberfläche wird ein spezieller PostScript-Interpreter eingesetzt.
Notebooks verwenden ein spezielles plattformunabhängiges Bitmap-Bildformat.
Benutzeroberfläche
Die Benutzeroberfläche verwendet MathLink sowohl zur Kommunikation mit dem Kern als auch zur Kommunikation zwischen ihren verschiedenen internen Komponenten.
Alle Menübefehle und andere Funktionen der Benutzeroberfläche werden durch Mathematica-Ausdrücke spezifiziert.
Konfigurations- und Voreinstellungsdateien verwenden das Mathematica-Sprachformat.
Der Hilfe-Browser basiert auf Mathematica-Notebooks, die vom selben Quellcode wie der dieses Buches stammen.
Notebooks
Notebooks werden als Mathematica-Ausdrücke dargestellt.
Notebook-Dateien enthalten zusätzliche, versteckte Information in Form von Mathematica-Kommentaren. Diese Information ermöglicht einen effizienten wahlfreien Zugriff.
Inkrementelles Speichern von Notebooks erfolgt, um das Umschreiben von Daten zu minimieren. Bereits geschriebene Daten werden, wann immer möglich, verschoben.
In der Voreinstellung wird plattformunabhängige doppelte Pufferung eingesetzt, um Flimmern zu minimieren, wenn der Fensterinhalt aktualisiert wird.
Automatisches Scrollen des Fensters verwendet einen kontrolltheoretischen Mechanismus, um Flüssigkeit und Kontrollierbarkeit zu optimieren.
Alle Sonderzeichen werden plattformunabhängig durch Unicode dargestellt. Abbildungs-Tabellen werden für Kanji und andere Schriften konstruiert.
Rechtschreibprüfung und Silbentrennung erfolgen mit Algorithmen und einem 100000 Wörter umfassenden englischen Standard-Wörterbuch sowie mit einem 20000 Wörter umfassenden technischen Wörterbuch, dem 5000 Mathematica-Wörter sowie andere Wörter hinzugefügt wurden. Rechtschreibkorrektur erfolgt mit syntaktischer und phonetischer Metrik.
MathLink
In OSI-Begriffen ist MathLink ein Protokoll auf der Präsentationsebene, das über jedes Transportmedium, ob nun auf Meldungen oder auf Strömen basierend, gelegt werden kann.
MathLink codiert Daten in einem komprimierten Format, wenn es feststellt, daß auf beiden Seiten einer Verbindung kompatible Computersysteme stehen.
MathLink kann asynchrone Daten wie zum Beispiel Interrupts genauso übertragen wie Mathematica-Ausdrücke.
Wenn möglich, wird MathLink mit dynamisch verbundenen, gemeinsam genutzten Verkettungs-Bibliotheken implementiert.
Ausdrucks-Formatierung
Die Benutzeroberfläche verwendet einen gerichteten azyklischen Graphen, um die Box-Struktur formatierter Ausdrücke darzustellen.
Boxen werden mit Hilfe einer zweidimensionalen Verallgemeinerung eines Operator-Vorrang-Parsers interpretiert.
Zur Minimierung von Struktur- und Anzeige-Erneuerung wird inkrementelle Syntaxanalyse verwendet.
Zeichenzwischenräume und -positionierung werden mittels Schriftdaten und Operator-Tabellen festgelegt.
Zeilenumbruch wird überall in den Ausdrücken global optimiert und dabei wird eine Methode genutzt, die ähnlich derjenigen ist, die für Text-Layout in TeX verwendet wird.
Bei der Eingabe ist der Zeilenumbruch so eingestellt, daß kleine Änderungen an Ausdrücken kaum zu größeren Umformatierungen führen; muß die Eingabe springen, so erscheint als visuelle Hilfe kurzzeitig ein elliptischer Cursor-Verfolger.
Die Ausdrucksformatierung verwendet etwa 2000 Seiten C-Code.
|