Ich bin mal so frei und nutze diesen Thread um meinen momentanen Ärger etwas Luft zu machen.
Ich sitze gerade an den Vorbereitungen für meine Bachelor-Arbeit, in der ich einen Orc Interpreter in Prolog schreiben muss.
Um mir die Arbeit des Parsings zu ersparen will ich den offiziellen Orc-Parser nutzen (in Java geschrieben, unter BSD-Lizenz verfügbar) und mit dem AST dieses Parsers weiterarbeiten.
Augenscheinlich schien bei der Entwicklung von Orc aber niemand daran gedacht zu haben, dass ein Aussenstehender jemals auf die Idee kommen könnte mit dem AST zu arbeiten.
Das fängt damit an, das es keine wirkliche Dokumentation gibt. Es gibt zwar eine Dokumentation per Javadoc, aber geschätzte 90-95% aller Klassen sind unkommentiert.
Der Versuch über die Namen der Klassen und Felder ein wenig die Bedeutung zu erfahren klappt an manchen Stellen ganz gut (Left, Right, body etc..) an anderen Stellen dafür weniger.
Was eine ConsExpr ist kann ich noch erahnen (Constant Expression?) was sich hinter den Kinderknoten "t" und "h" verrbirgt ist mir dagegen schleierhaft.
Bleibt mir nur, simple Testprogramme zu parsen und mir den resultierenden AST anzugucken. Glücklicherweise bietet der Orc-Quellcode direkt eine Funktion um den AST als XML-Datei abzulegen. Aber wirklich verständlich wird es dadurch auch nicht...
Folgendes Orc-Programm
Erzeugt einen AST, dessen XML-Datei zuviele Zeichen enthält, als das ich ihn hier posten könnte. Ungeachtet des Overheads der durch XML dazu kommt...
381.808 Zeichen in 1114 Zeilen sind ein wenig viel um den AST zu verstehen...
Ich glaub, bevor ich den AST verstehe krieg ich davon Alpträume.. Irgendwie hätte ich von Code, der immerhin an einer Universität entwickelt wird, ein wenig mehr Dokumentation erwartet...
Hab ich mal erwähnt, dass der Qt Creator als IDE wahnsinnig unhandlich ist? Deren Debuggerfrontend ist scheiße und gelegentlich verschwindet der Cursor einfach so. Dummerweise wird für ein Praktukum erwartet, dass wir damit arbeiten.
Hab ich mal erwähnt, dass der Qt Creator als IDE wahnsinnig unhandlich ist? Deren Debuggerfrontend ist scheiße und gelegentlich verschwindet der Cursor einfach so. Dummerweise wird für ein Praktukum erwartet, dass wir damit arbeiten.
...
Das ist doch noch gar nichts! Wir mussten in "Logikorientierte Programmierung" Emacs verwenden, das ganze Semester über. Das sind Schmerzen!
Aber an schlechten IDEs herrscht leider echt kein Mangel. :-/
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Travelling salesman ... damit wurde ich bei dem Schunk Graphentheorie (allerdings nicht in der Theorie-Verlesung, sondern bei der Methodisch-Praktischen Vorlesung) auch nicht mit verschont. Ich kann mich immer noch dran erinnern, dass ich einen Djikstra-Algorithmus und einen Ford-Fulkerson-Algorithmus implementieren musste.
Wikipedia: An in-joke among some computer scientists is that quantum computing could be used to effectively implement a bogosort with a time complexity of O(n). It uses true quantum randomness to randomly permute the list. The list is then inspected, and if it is not in order, the universe is destroyed.
...
Aber Sleepsort ist auch Spitze! Kannte ich allerdings schon …
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.