Technischer Hintergrund - Cinderella Dokumentation
Description: The user's guide to the Interactive Geometry Software Cinderella

# Technischer Hintergrund

Dieser Abschnitt aus dem ursprünglichen Handbuch von 1999 wird hier aus historischen Gründen wiedergegeben.

Normalerweise würden Sie sich und sollten Sie sich nicht um die Programmiersprache und andere technische Details von Software kümmern, die Sie nur verwenden möchten. Dennoch möchten wir Ihnen etwas über den Informatik-Hintergrund von Cinderella erzählen.

Cinderella wurde in Java geschrieben, einer plattformunabhängigen Programmiersprache, die von Sun Microsystems entwickelt wurde. Dies bedeutet, dass die Software auf jedem Computer ausgeführt werden kann, unabhängig von seinem Betriebssystem, sofern es etwas gibt, das als "Java Virtual Machine" (JVM) für dieses System bezeichnet wird. Diese Java Virtual Machines sind von Sun Microsystems für Windows 95/98/NT und Solaris verfügbar, und es gibt Portierungen für Linux, OS/2, MacOS, BeOS, AIX, HP-UX und viele weitere. Tatsächlich haben Sie wahrscheinlich bereits eine JVM auf Ihrem Computer installiert, da Netscape Navigator und Microsoft Internet Explorer über eine integrierte JVM verfügen. Dies bedeutet wiederum, dass Sie Java-Programme in einem Webbrowser ausführen können. Diese Programme sind als "Applets" bekannt.

Wir möchten Java hier nicht vollständig erklären. Stattdessen empfehlen wir die offizielle Java-Homepage unter http://www.javasoft.com als Einstiegspunkt für weitere Lektüre. Wir möchten Ihnen jedoch einige der Konsequenzen der Wahl von Java für Cinderella mitteilen.

Es ist eine Tatsache, dass, obwohl Microsoft Windows heute das dominierende Betriebssystem ist, viele Mathematik-Abteilungen eine Vielzahl von Unix-Workstations haben. Auch innerhalb derselben Arbeitsgruppe können Sie eine Mischung verschiedener Systeme finden. Java ermöglicht es jedem, unabhängig von der Wahl der Plattform, Cinderella auf die gleiche Weise zu verwenden. Es ist sogar möglich, denselben Code auf all Ihren Computern zu installieren und zu verwenden. Für uns bedeutete dies, dass wir unser Lieblingsbetriebssystem (Linux) für die Entwicklung verwenden konnten, und gleichzeitig waren wir sicher, die größtmögliche Zielgruppe zu erreichen.

Zweitens wurde die Tatsache, dass Sie Java-Software in Webbrowsern ausführen können, für die Web-Export-Funktionalität von Cinderella genutzt. Dies bedeutet, dass Sie Konstruktionen leicht veröffentlichen, Ihre persönliche Homepage mit Animationen bereichern oder Konstruktionsaufgaben an Ihre Schüler vergeben können. Unsere Lizenzvereinbarung gibt Ihnen große Freiheit bei der Weitergabe der notwendigen Teile von Cinderella, aber bitte beachten Sie die wenigen Einschränkungen, die damit verbunden sind.

Java ist eine interpretierte Sprache, im Gegensatz zu kompilierten Sprachen wie C oder C++, die die üblichen Sprachen für die meiste Software sind. Interpretierte Sprachen haben einige technische Vorteile, leiden aber unter einem zusätzlichen Übersetzungsschritt, der das Programm verlangsamt. Java (oder die virtuelle Maschine) wurde viel für Leistung optimiert, und die Leistungslücke ist nicht so groß wie zu Beginn unseres Projekts. Trotzdem mussten wir viel manuelle Optimierung durchführen, um eine akzeptable Geschwindigkeit und das "interaktive Gefühl" von Cinderella zu erreichen.

Manchmal werden Sie eine kurze Verzögerung bemerken, wenn Sie einen Punkt verschieben. Geben Sie nicht Ihrem Computer, Java oder Cinderella die Schuld. Diese Verzögerungen sind das Ergebnis extrem komplexer Berechnungen, die notwendig sind, um das richtige Ergebnis oder die richtige Bildschirmdarstellung nach einer Bewegung zu erhalten. Die Erzeugung korrekter Ortslinien ist einer der Gründe; viele Schnittpunkte, die Kegelschnitte betreffen, sind der andere. Wir haben unser Bestes getan, um diese Berechnungen zu beschleunigen, aber es gibt eine (mathematische) Grenze, an der wir nicht bereit sind, die Genauigkeit für Geschwindigkeit zu opfern.

Abschließend möchten wir die Tools erwähnen, die uns bei der Erstellung von Cinderella und dieser Dokumentation geholfen haben. Zunächst gibt es XEmacs, einen leistungsstarken, erweiterbaren Texteditor, der auf GNU Emacs basiert, das wiederum eine Version des ursprünglichen Emacs ist, das Richard Stallman in den siebziger Jahren am MIT geschrieben hat. Es ist definitiv der beste verfügbare Editor, und wir haben ihn verwendet, um das ganze Programm und die gesamte Dokumentation zu schreiben.

Das Programm selbst wurde mit Hilfe des Java Development Kit von Javasoft, einer Abteilung von Sun Microsystems, entwickelt, insbesondere mit dessen Linux-Port (siehe http://java.blackdown.org für weitere Informationen zum Java-Linux-Portierungsprojekt). Linux ist ein kostenloses, Unix-ähnliches Betriebssystem, das aus der Arbeit von Linus Torvalds hervorgegangen ist und wird nun kontinuierlich durch die Bemühungen mehrerer hundert Entwickler auf der ganzen Welt verbessert.

Das Parsing-Modul (verwendet zum Laden gespeicherter Konstruktionen) wurde mit Hilfe von ANTLR 2.5.0, einem Public-Domain-Java/C++-Parser-Generator, geschrieben von Terence Parr des MageLang-Instituts, konstruiert.

Nachoptimierung und Kompression des Codes wurden mit Jax von alphaworks, der Forschungsabteilung von IBM, durchgeführt. Wir möchten dem Jax-Team, insbesondere Frank Tip, für ihre Hilfe und IBM für die Genehmigung zur kommerziellen Nutzung von Jax danken.

Das Concurrent Versions System (CVS) von Cyclic Software führte die meisten Versionszusammenführungen durch (und bewahrte uns vor vielen Kopfschmerzen). Es ist auch kostenlose Software.

Dank des "Browser-Krieges" zwischen Microsoft und Netscape ermöglichen es die Lizenzierungsbedingungen für die Weitergabe von Netscape Navigator uns, einen mit Java-1.1 kompatiblen Browser mit Cinderella zu versenden.

Die Dokumentation von Cinderella, sowohl das gedruckte Handbuch als auch die Online-Version, wurde mit XEmacs in HTML geschrieben. Wir haben die gleichen Dateien für die gedruckte Version und die Bildschirmdarstellung verwendet. Das Design der Webseiten verwendet Cascading Style Sheets (CSS); die Druckversion wurde mit einer modifizierten Version von html2ps von Jan Karrman erstellt.

Die in Cinderella verwendeten Icons und Bilder wurden von uns selbst mit The GIMP (GNU Image Manipulation Program), geschrieben von Peter Mattis und Spencer Kimball, entworfen. Unserer Meinung nach ist es eines der beeindruckendsten frei verteilten Softwareprogramme. Die zusätzlichen Abbildungen in der Dokumentation wurden natürlich mit Cinderella und Povray, einer kostenlosen 3D-Raytrace-Software, sowie einigen PostScript-Änderungen erstellt.

Zwei Menschen verdienen besondere Erwähnung: James Gosling, der Schöpfer der Java-Programmiersprache, und Jamie Zawinski, verantwortlich für die ersten Unix-Versionen von Netscape Navigator. Sie sind beide auf eine besondere Weise mit XEmacs verbunden: James Gosling führte die erste C-Implementierung von Emacs durch, bekannt als GOSMACS, und Jamie Zawinski war die Person, die für XEmacs-Versionen 19.0 bis 19.10 verantwortlich war, das zu dieser Zeit ein Gemeinschaftswerk von Lucid (jetzt nicht mehr in Betrieb) und Sun Microsystems (sic!) war.

Diese Seite wurde automatisch mit KI (Claude) übersetzt und wartet noch auf Überprüfung. → Alle KI-übersetzten Seiten