Julian Trischler

Momentan dient diese Seite der Berichterstattung zu Mascor, einem Computer-Simulator, der vormals YaCC – Yet another COSI Clone hieß und im Rahmen einer Informatik-GFS in der 12. und 13. Klasse am Erich Kästner Gymnasium entstand. Da dieser Maschinencodesimulator das Vorgängerprogramm COSI ersetzt und am EKG zu Lehrzwecken eingesetzt wird, haben sich die Entwickler dazu entschlossen, diese Software weiterzuentwickeln und berichten hier über den Fortschritt.

YaCC wird nun in Mascor umbenannt

Samstag, 4. April 2009

Das lange Suchen hat nun nach einigen Jahren endlich seit etwa zweieinhalb Woche ein Ende, es wurde ein neuer Name gefunden: YaCC – Yet another COSI Clone wird nun in Mascor umbenannt, was für Maschinencodesimulator steht. Auch der Name des Compilers, der einfachen C-Code nach Mascor umwandeln soll, wurde bereits festgelegt. Er wird später unter Mascpilor verfügbar sein.

Die Entwickler haben sich dazu entschlossen, weitere grundlegenede Dinge in der Architektur zu verändern, sodass die Software flexibler und erweiterbar wird. So können beispielsweise selbstdefinierte Befehle erstellt und verwendet werden. Nach bisheriger Planung wird hierfür die komplett überladene ALU aufgegeben und die Code-Ausführung direkt in die Befehle ausgelagert. Dies ist zwar ein deutlicher Bruch mit der Realität, bringt allerdings einige Vorteile mit sich, wie z.B. die schlichte verbesserte Lesbarkeit des Quelltextes und die einfache Befehlserweiterung. Ein sehr simples Steuerwerk wird dann die Simulation steuern.

Eine andere Erweiterung betrifft den Standardbefehlssatz, der ab Version 1.1 auch Ein- und Ausgaben durch Syscalls (welche im Übrigen ebenfalls erweiterbar sind) ermöglicht.

YaCC v1.0.1 RC 1 veröffentlicht

Sonntag, 21. Dezember 2008

Der angekündigte Bugfix des STO B <NUMBER>-Problems ist nun als erster Release-Candidate auf SourceForge verfügbar. An dieser Stelle nochmals ein Danke an die Entdecker dieses Bugs. Mit diesem Update wurden auch die Debugausgaben auf der Konsole entfernt.

Bugfix in YaCC 1.0.1 Beta

Donnerstag, 4. Dezember 2008

Vor genau einer Woche, am 27. November, berichteten Manuel Hühmer und Renzo von einem Fehler in der finalen YaCC-Version. Dieser ist auf den übereifrigen Speicherschutz von YaCC zurückzuführen. Folgendes Codefragment wurde von den Schülern eingesendet:

   0
   1
   2
   3
LDA U  10        
PUS
STO B  0         
END

Dieses YaCC-Programm kann auch als YaCC-/COSI-kompatible Datei heruntergeladen werden.

Wurde dieses Testprogramm in YaCC simuliert, so wurde beim Befehl STO B 0 fälschlicherweise „RAM-Überlauf: Ungültige RAM-Adresse 1400!“ gemeldet. Beim Entwickeln der Software wollten wir YaCC mit einem Speicherschutz ausstatten und haben mit diesem wohl ein bisschen übertrieben. Jedenfalls ist nun dieser Fehler behoben, sodass im Stack nachher die Zahl 10 in Adresse 1400 steht.

Wenn nun keine Fehler mehr gefunden werden und der schnelle Patch korrekte Ergebnisse liefert, wird die neue Version in den nächsten Tagen auf SourceForge freigegeben und hier verlinkt.

Neuer Name für YaCC – Yet another COSI Clone gesucht

Donnerstag, 18. September 2008


Bildschirmfoto von YaCC – Yet another
COSI Clone Version 1.1

Nach drei Jahren ist es endlich soweit: Die Version 1.0 von YaCC – Yet another COSI Clone wurde gestern Abend, am Mittwoch, den 17. September, veröffentlicht! Sie ist identisch zum Release Candidate 6, bis auf den Menüpunkt „Hilfe“ → „Hilfe... [F1]“. Hier wird nun endlich eine kleine Hilfe-Datei im Webbrowser geöffnet. Die Veröffentlichungszeiten sind schon sehr Debian-ähnlich, könnte man meinen. Und in der Tat, die Entwickler verwenden Debiansysteme, was aber dann doch eher zufällig ist.

Mit dem gestrigen Stable-Release wurde auch eine aktuelle Dokumentation in Form von JavaDoc hochgeladen und steht im Downloadbereich unter der Dokumentationsrubrik bereit.

Indes gehen die Entwicklungen für die Version 1.1 weiter, welche zahlreiche Neuerungen mitbringt, die sowohl im Unterbau, als auch in der Oberfläche und Bedienung vorgenommen werden. So werden für den Benutzer als größte Änderung beispielsweise die Kommentarfunktion genannt, mit der COSI-/YaCC-Programme dokumentiert werden können, sodass diese auch nach längerer Zeit auch leicht verständlich bleiben.

Des weiteren wird der Unterbau sehr stark verändert, beispielsweise die doppelte Speicherung der Befehle im RAM und der Zahlen im Stack entfallen. Hier wurden früher ein spezielles RAM- und Stackmodel verwendet, was durch ein TableModel ergänzt wurde. Nun werden beide Models zusammengefasst, sodass eine einfachere Verwaltung möglich ist.

Auch sollen ab der Version 1.1 verschiedene Sprachen – vorerst deutsch und englisch – in der Oberfläche unterstützt werden und eine Konfigurationsdatei hinzukommen, in der Programmeinstellungen (Position und Größe des Hauptfensters, Symbolleisten- und Panelsichtbarkeiten, ...) gespeichert werden können.

Um die Verwechslung mit der freien Software Yacc – Yet another compiler compiler zu unterbinden, muss YaCC – Yet another COSI Clone unbedingt umbenannt werden. Hierzu wird noch ein Name gesucht. Namensvorschläge können über nachfolgendes Formular eingesendet werden. Es wurde bereits ein neuer Name gefunden: Mascor

Angedacht waren Namen wie Oimacs für Oimacs is machine code simulation, was lustigerweise etwas an Emacs erinnert, Cosim aka COSI improved bzw. Computersimulator oder auch Folie als Wortspiel zu ALU-Folie. Brain oder cor würden sich auch anbieten, wobei Brain auch eine nette Anspielung auf Monty Python's Life of Brian ist. Optimal ist natürlich ein Begriff aus Welt von Monty Python, der sich dann auch noch in nette (rekursive) Akronyme umbauen lässt. ;-)

Hier gibt es eine komplette Liste von allen Vorschlägen, die dort auch bewertet werden können.

Links

Kontakt und Impressum

Elektronische Kontaktmöglichkeiten oder Postanschrift durch Anfordern von /kontakt bzw. /impressum.


Julian Trischler