Entwicklung eines Interpreters
-
Hi!
Ich habe mir vorgenommen, einen Interpreter in C# zu entwicklen, welcher zum Interpretieren von CNC-Programmen gedacht ist.
Leider habe ich absolut keine Erfahrung im Entwickeln von Interpretern, daher wollte ich fragen, ob zufällig jemand ein gutes Buch zu diesem Thema kennt oder ansonsten Erfahrung in diesem Gebiet hat.Danke im Voraus.
Mike
-
wozu einen C# interpreter? ist doch nonsens?!
-
Ne, ich will keinen C# Interpreter, sondern einen Interpreter in C# schreiben
Leider versteh ich vom Interpreterbau genau so viel wie meine Großtante vom Programmieren, daher bin ich auf der Suche nach einem guten Tutorial oder Buch.lg Mike
-
Vielleicht hilft Dir Lexx und Yacc weiter.
Diese Werkzeuge sind für den Compilerbau recht hilfreich. Speziell für die Syntaxanalyse. Wir haben im Sudium das mal behandelt - aber ich muss zugeben, dass ich das nie wirklich kapiert habe.
Gruß
Kramny
-
Hehe, ich glaub Compilerbau is eines der Dinge, mit denen JEDER Informatikstudent gequält wird, aber das letztlich keiner versteht. Ich hatte das auch 2 Semester und könnte jetzt nichtmal nen Billig-Compiler schreiben.
-
Werd ich mir anschauen, vielen Dank
-
Hi,
Lexx und Yacc für C# sind blöd.
Es gibt zwar Anbindungen für C# und es gibt auch einige Projekte, die das benutzen (IronRuby, AFAIR) … aber damit macht man sich keine Freude (und vor allem keine Freunde ;-)).
Bei kleinen Grammatiken sollte man Lexer und Parser schnell per Hand implementieren, das geht in C# ganz gut (in VB Dank Select Case noch ein wenig besser). Für größere Sachen kann man ganz gut ANTLR oder den GOLD Parser Generator verwenden. Sind beides m.E. sehr gute Werkzeuge.
– All das ist aber vollkommen unnütz, wenn man sich nicht wenigstens im Ansatz mit der Theorie auskennt. Daher empfehle ich erst einmal ein wenig Lektüre. Dafür empfehle ich Wirths Buch Compiler Construction, weil's relativ kurz ist. Alternativ kann man sich auch die Einführung vom ANTLR-Autor (irgendwo auf dessen Seite verlinkt) anschauen. Ist noch kürzer, aber auch extrem unvollständig.
Zu guter Letzt erzählen all diese Ressourcen aber nur etwas über den Parserbau und nichts über den Interpreter. Einen Interpreter zu bauen ist aber letztendlich so leicht, dass es reichen sollte, wenn man sich den englischen Wikipedia-Artikel zum Interpreter-Entwurfsmuster anschaut. Ich habe mir zwar sagen lassen, dass dieser Artikel so ziemlich *gar nichts* mit dem originalen Entwurfsmuster zu tun hat, aber der Interpreter-Bau wird trotzdem gut beschrieben.
-
Evtl. auch eine Alternative zu Lexx und Yacc fuer C# ist CoCo/R: http://de.wikipedia.org/wiki/Coco/R
this->that schrieb:
Hehe, ich glaub Compilerbau is eines der Dinge, mit denen JEDER Informatikstudent gequält wird, aber das letztlich keiner versteht.
Was ist deiner Meinung nach so schwer an Compilerbau? idR wird im Laufe einer solchen Vorlesung sowieso ein Compiler geschrieben, man sieht also eh "wie das passiert".
-
Ok, vielen Dank für die tolle Hilfe, ich werd mir das alles gleich anschauen
lg Mike