2 KiB
  
    Eine Klasse, die von std::ostream
    und std::istream
    abgeleitet ist und mit einem externen Programm kommuniziert - dadurch soll man mit externen
    Programmen wie mit normalen Streams
    kommunizieren können.
Wenn man das über die Methoden macht, funktioniert es auch - aber nicht, wenn man es über die (überladenen) Operatoren << bzw. >> tut... Ich habe keine Ahnung, warum.
Wenn man das über die Methoden macht, funktioniert es auch - aber nicht, wenn man es über die (überladenen) Operatoren << bzw. >> tut... Ich habe keine Ahnung, warum.
2 KiB
  
    Eine Art "VNC-Server",
    der über einen HTTP-Server kommuniziert.
    Der Server macht screenshots, die er per
    HTTP-POSTs
    an ein http-upload script schickt, von wo der Client es im Browser sehen kann.
Der Server ist in Java geschrieben - die Idee ist, dass man ihn starten kann ohne irgend etwas zu installieren - man geht nur auf die entsprechende Seite, erlaubt die Ausführung des Java-Applets und schon geht es los.
Wenn man das Programm lokal in der JVM ausführt, funktioniert das auch. Führt man es als Applet in der besagten Seite aus, unterbinden die Sicherheits-Einstellungen der JVM diverse Dinge (u.A. die Aufnahme von Screenshots), sodass es nicht funktioniert. Anscheinend müsste ich das Applet in eine JAR verpacken und diese signieren, damit die JVM diese Dinge zulässt. Wie das geht, habe ich mir aber bisher nicht angeeignet.
Der Server ist in Java geschrieben - die Idee ist, dass man ihn starten kann ohne irgend etwas zu installieren - man geht nur auf die entsprechende Seite, erlaubt die Ausführung des Java-Applets und schon geht es los.
Wenn man das Programm lokal in der JVM ausführt, funktioniert das auch. Führt man es als Applet in der besagten Seite aus, unterbinden die Sicherheits-Einstellungen der JVM diverse Dinge (u.A. die Aufnahme von Screenshots), sodass es nicht funktioniert. Anscheinend müsste ich das Applet in eine JAR verpacken und diese signieren, damit die JVM diese Dinge zulässt. Wie das geht, habe ich mir aber bisher nicht angeeignet.
12 KiB
  
    Klassen für Automaten und
    Reguläre Ausdrücke.
    
An sich können die Klassen so ziemlich alles, was man sich vorstellen kann (Automaten und Reguläre Ausdrücke in einander überführen, Determinisieren, Minimieren, Komplementbildung, Differenz, Vereinigung, Produkt, etc. etc. etc.
Aufgrund eines umfassenden Re-Writes (ich habe die zugrundeliegende Datenstruktur komplett geändert) sind aber zur Zeit fast alle Methoden auskommentiert. Zur Zeit funktionieren nur (wenn man da "nur" zu sagen will...) das Parsen der regulären Ausdrücke, übersetzung in Automaten, Akzeptanz-Test, Test auf Determiniertheit und bestimmung der ε-Hülle.
An sich können die Klassen so ziemlich alles, was man sich vorstellen kann (Automaten und Reguläre Ausdrücke in einander überführen, Determinisieren, Minimieren, Komplementbildung, Differenz, Vereinigung, Produkt, etc. etc. etc.
Aufgrund eines umfassenden Re-Writes (ich habe die zugrundeliegende Datenstruktur komplett geändert) sind aber zur Zeit fast alle Methoden auskommentiert. Zur Zeit funktionieren nur (wenn man da "nur" zu sagen will...) das Parsen der regulären Ausdrücke, übersetzung in Automaten, Akzeptanz-Test, Test auf Determiniertheit und bestimmung der ε-Hülle.
13 KiB
  
    Eine Art OR-Mapper, der aus
    (einfachen) Klassen-Definitionen PHP-Skripte
    erzeugt, die entsprechende Objekte
    
Dadurch wird es ein Kinderspiel, Webseiten zu schreiben, die mit entsprechenden Objekten arbeiten. Das kann PHP zwar auch selber, aber die o.g. Klassen sind typisiert und das Programm fügt einiges an Type-Checks hinzu, was man in PHP sonst alles manuell machen müsste.
Was noch fehlt sind
- in XML-Dateien speichern
- aus XML-Dateien laden
- nach HTML exportieren
- HTML-Formulare erzeugen
- aus HTTP-Post Daten laden
Dadurch wird es ein Kinderspiel, Webseiten zu schreiben, die mit entsprechenden Objekten arbeiten. Das kann PHP zwar auch selber, aber die o.g. Klassen sind typisiert und das Programm fügt einiges an Type-Checks hinzu, was man in PHP sonst alles manuell machen müsste.
Was noch fehlt sind
- Referenzierung von Objekten in verschiedenen Dateien
- Hinzufügen von neuen Objekten in Listen
- Sicheres Löschen von Objekten
- Export nach SQL
- Import von SQL
1957 KiB
  
    Ein Programm, das 3D-Modelle anzeigt und nach
    Blender exportieren kann.
    Die 3D-Modelle kann es aus einem einfachen Häuser-Grundriss erzeugen oder aus
    Duke Nukem 3D Levels
    importieren. Beispiel: e1l1.
  
7 KiB
  
    Eine Klasse für Kontextfreie Grammatiken.
    Sie kann die Chomsky Normalform (CNF)
    berechnen, beherrscht die ε-Elimination, Kettenregel und bald kommt auch der
    Cocke-Younger-Kasami (CYK) Algorithmus.
    Darüber hinaus hat sie einen (einfachen) Parser für Kontextfreie Grammatiken.
Inzwischen ist auch ein Parsergenerator enthalten, der für LL(1)-Grammatiken einen Recursive-Descent-Parser wie diesen erzeugt.
Zur Zeit arbeite ich auch einem Parsergenerator (Hier), der für LR(1)-Grammatiken einen LR-Parser generiert. SLR(1) Parser funktionieren schon.
Außerdem arbeite ich an Laufzeit-Umgebungen, die die generierten Parser zur Laufzeit ausführen können (also so, dass man die Grammatik einlesen kann, ein Parser-Objekt generieren kann und dieses dann direkt auf einem Token-Stream arbeiten lassen kann, ohne ihn in einen C++ Quellcode exportieren und kompilieren zu müssen. Damit könnte man dann u.A. einen Parser schreiben, der zur Laufzeit seine eigene Syntax ändern kann. OMG.
Inzwischen ist auch ein Parsergenerator enthalten, der für LL(1)-Grammatiken einen Recursive-Descent-Parser wie diesen erzeugt.
Zur Zeit arbeite ich auch einem Parsergenerator (Hier), der für LR(1)-Grammatiken einen LR-Parser generiert. SLR(1) Parser funktionieren schon.
Außerdem arbeite ich an Laufzeit-Umgebungen, die die generierten Parser zur Laufzeit ausführen können (also so, dass man die Grammatik einlesen kann, ein Parser-Objekt generieren kann und dieses dann direkt auf einem Token-Stream arbeiten lassen kann, ohne ihn in einen C++ Quellcode exportieren und kompilieren zu müssen. Damit könnte man dann u.A. einen Parser schreiben, der zur Laufzeit seine eigene Syntax ändern kann. OMG.
150 KiB
  
    Ein Textsatz-System, dessen
    Syntax an LaTeX angelehnt ist,
    das aber im Gegensatz zu LaTeX keine funktionale, sondern eine imperative Sprache ist.
    Es beherrscht Variablen, Verzweigungen, Schleifen und Prozeduren.
    Es arbeitet nativ mit UTF-8 kodierten
    Dateien und erzeugt wahlweise PDF
    oder PostScript Dateien und ist
    dabei (für LaTeX-Geplagte) unglaublich schnell.
    
Langfristig soll es Objekt-Orientiert werden, damit uns die Macht der Objekt-Orientierung auch beim Textsatz zur Verfügung steht. Zwei sehr nützliche Referenzen zum PDF-Standard sind Adobe PDF Reference, Sixth Edition, version 1.7 ( pdf ) und PDF Explained von John Whitington.
Langfristig soll es Objekt-Orientiert werden, damit uns die Macht der Objekt-Orientierung auch beim Textsatz zur Verfügung steht. Zwei sehr nützliche Referenzen zum PDF-Standard sind Adobe PDF Reference, Sixth Edition, version 1.7 ( pdf ) und PDF Explained von John Whitington.
 lgorith
lgorith an.de
an.de