[R] Interpreterbau - Ein Anfang



  • Dummie schrieb:

    GPC schrieb:

    Genau, mit 'nem prägnanten Titel und dann dem entsprechenden Inhalt wird das 'n interessanter Artikel 🙂

    Ja, das denke ich auch, aber vorerst läuft es unter diesem "Arbeitstitel" und sobald mir was besseres einfällt wird das dann noch geändert.

    Namen sind Schall und Rauch 😉

    Die eigentliche Frage die ich mir stelle ist einfach die, ob ich ruhig mit einem Matheparser einsteigen kann, da ich in der Artikelübersicht bereits etwas von einem gelesen habe - ich will ja niemanden das Thema "klauen". 🤡

    hehe, steig ruhig mit einem Matheparser ein 🙂 Der in die Artikelübersicht eingetragene Artikel war eine Totgeburt 😉 Insofern hast du das Thema für dich. Bietet sicherlich auch eine gute Basis für den Artikel!



  • Ich hab mal die Zeit genutzt 🤡 Vielleicht gibts ja schon Anregungen 🕶

    Ich hab übrigens auch den Quellcode als Download angeboten.
    Ich hoffe, dass das okay ist. Oder ist das Verzeichnis ausschließlich für Bilder?
    Ich hab bisher nur eins verwendet und den Quellcode versucht gut zu zippen. 🙂



  • Puh, da ist ja einiges zusammengekommen... ich werd mir das mal durchlesen 🙂
    Hatte das eig. schon dieses WE vor, aber die liebe Zeit 😕



  • GPC schrieb:

    Puh, da ist ja einiges zusammengekommen... ich werd mir das mal durchlesen 🙂
    Hatte das eig. schon dieses WE vor, aber die liebe Zeit 😕

    Ja, wobei ich einige Passagen nochmal ändern werde. Hatte ja etwas Zeit nochmal drüber nachzudenken, aber grundsätzlich stehts soweit 🙂



  • So, jetzt hab ich mir die Zeit genommen, um den Artikel zu lesen und er gefällt mir sehr gut. Ich kann ihn zwar nur aus der Perspektive des Compilerbau-Anfängers beurteilen, aber ich habe ihn sehr gut nachvollziehen können, fand die Erklärungen gut und somit ist das schonmal eine gute Sache für die anderen Leser 🙂

    Das einzige was ich vielleicht etwas verwirrend finde ist die Erklärung der Terminalsymbole und Nichtterminalsymbole... am Anfang steigt man nicht gleich dahinter. Kann aber auch daran liegen, dass ich etwas wenig geschlafen habe 😉
    Inhaltlich hat der Artikel von mir jedenfalls das OK 🙂



  • GPC schrieb:

    So, jetzt hab ich mir die Zeit genommen, um den Artikel zu lesen und er gefällt mir sehr gut. Ich kann ihn zwar nur aus der Perspektive des Compilerbau-Anfängers beurteilen, aber ich habe ihn sehr gut nachvollziehen können, fand die Erklärungen gut und somit ist das schonmal eine gute Sache für die anderen Leser 🙂

    Das einzige was ich vielleicht etwas verwirrend finde ist die Erklärung der Terminalsymbole und Nichtterminalsymbole... am Anfang steigt man nicht gleich dahinter. Kann aber auch daran liegen, dass ich etwas wenig geschlafen habe 😉
    Inhaltlich hat der Artikel von mir jedenfalls das OK 🙂

    Das klingt doch schon ganz gut. Danke 🙂 Ich schaue mir den Anfang des Artikels noch mal an. Vielleicht kann man da ja noch dran schrauben 🙂

    Ich bin übrigens noch am Überlegen, ob ich die Sache mit der Optimierung am Ende (überflüssige Multiplikation mit 1) nicht weglasse und dieses Problem erst gar nicht auftreten lasse. Andererseits könnte man dann im Zusammenhang mit dem Baum kein Beispiel mehr für Optimierung zeigen - zumindest fällt mir kein passendes ein.



  • Ich finde das Beispiel für die Optimierung schon gut gewählt, wenn du es weglässt werden bestimmt Fragen danach auftauchen 😉 Und der Vorteil an diesem Beispiel ist dass es offensichtlich ist, während ein konstruiertes Beispiel schon eher "hmmm?!" als Reaktion hervorrufen könnte 😉



  • GPC schrieb:

    Ich finde das Beispiel für die Optimierung schon gut gewählt, wenn du es weglässt werden bestimmt Fragen danach auftauchen 😉 Und der Vorteil an diesem Beispiel ist dass es offensichtlich ist, während ein konstruiertes Beispiel schon eher "hmmm?!" als Reaktion hervorrufen könnte 😉

    Alles klar 🙂 Was mich noch interessieren würde. Warst du anfangs auch der Meinung, dass es sich um ein Thema handelt, das für einen "normalen" Menschen nicht zugänglich ist? Und warst du über die Länge des Codes erstaunt - hattest du längeren/komplexeren Code erwartet? 🙂



  • Jein 😉 Dem Thema haftet natürlich schon eine gewisse "Aura" an.. außerdem liest man darüber sehr viel weniger als über, sagen wir mal Datenstrukturen oder solche Sachen. Insofern war ich (anfangs) überrascht, dass der Einstieg doch gut machbar ist.
    Längeren/komplexeren Code hatte ich auch nicht wirklich erwartet und ich finde das eh kontraproduktiv. Wenn man die Grundlagen rafft, kann man immer noch anhand derer in komplexere Abgründe steigen 😉



  • Ich habe den Artikel jetzt auf T gesetzt. 🤡

    Edit: Muss ich noch etwas tun, oder wie geht es nun weiter?



  • Ich habe den Artikel gerade überflogen und mir sind folgende Punkte aufgefallen.

    Die Einleitung finde ich etwas merkwürdig. Welche "extremen Optimierungen" meinst du? Ich würde das weglassen und eher schreiben, was du in dem Artikel genau vorstellen willst.

    Irgendwie fehlt mir auch eine Übersicht. Du führst die Begriffe zwar ein, während du den Code entwickelst. Aber ich denke eine Übersicht, welche Komponenten es gibt, was sie machen und wie sie zusammenhängen am Anfang würde den Artikel für Leute verständlicher machen, die sich mit dem Thema überhaupt nicht auskennen.



  • Ich weiß nicht...
    Vielleicht ist der Artikel gerade deswegen so schön zu lesen, weil recht schnell Code kommt und keine lange abstrakte Abhandlung.



  • Mir war es sehr wichtig, dass sehr viel Code gezeigt wird. Einerseits denke ich mir, dass man so vielleicht eher ein Verständnis dafür bekommt (Code sagt mehr als 1000 Worte) und außerdem hat man so eine Basis, wo man selber experimentieren kann. Und das Experimentieren halte ich für sehr wichtig. Und in Verbindung mit einer Codebasis ist man auch nicht so schnell demotiviert, da man auch einen Erfolg erzielen kann.



  • Ich denk der Ansatz "Viel Code hilft viel" 😉 ist in dem Fall durchaus sinnvoll. Wobei ich einer kurzen Übersicht mit Begriffserklärungen durchaus etwas abgewinnen kann. Kannst ja mal schauen ob du das noch einbauen kannst. Falls es nicht passt, lässt du es eben weg.

    Ansonsten ist eig. nichts mehr zu tun. Du setzt den Artikel auf Status [R] und dann wird ihn jemand (vermutlich ich :D) auf Rechtschreibfehler prüfen.



  • GPC schrieb:

    Wobei ich einer kurzen Übersicht mit Begriffserklärungen durchaus etwas abgewinnen kann. Kannst ja mal schauen ob du das noch einbauen kannst. Falls es nicht passt, lässt du es eben weg.

    Ja, ich bin momentan am Überlegen. Du bzw. ihr meint eine Übersicht am Anfang, wo auf die später verwendeten Begriffe eingegangen wird und diese erläurtert werden?



  • Dummie schrieb:

    GPC schrieb:

    Wobei ich einer kurzen Übersicht mit Begriffserklärungen durchaus etwas abgewinnen kann. Kannst ja mal schauen ob du das noch einbauen kannst. Falls es nicht passt, lässt du es eben weg.

    Ja, ich bin momentan am Überlegen. Du bzw. ihr meint eine Übersicht am Anfang, wo auf die später verwendeten Begriffe eingegangen wird und diese erläurtert werden?

    Ja, schon... jeder Begriff kurz und knackig erklärt. Ist aber kein muss, wenn's absolut nicht passt 😉



  • Ich habe übrigens noch ein kleines C# Programm geschrieben, welches zwar die gleiche Funktionalität bietet, wie das C++ Programm, aber es kann das ganze etwas besser visualisieren:

    Scanner
    http://img205.imageshack.us/i/scanner.png/

    Parser
    http://img706.imageshack.us/i/parser.png/

    Ich muss den Source für das Programm noch etwas aufräumen und dann kann ich das auch noch zum Artikel hinzufügen.

    Ist doch ganz nett, oder? 🙂

    Ich müsste die Ausgabe noch irgendwie mit Farbe etwas einfacher zu lesen machen, aber da bin ich noch am Experimentieren. 🤡



  • 👍 Coole Sache 🙂 Das macht dann gleich mehr Spaß, wenn man auch live nachvollziehen kann, wie sich ein Ausdruck zusammensetzt



  • Ich habe nun eine Begriffserklärung vorangestellt, welche die Zusammenhänge hoffentlich "greifbarer" macht.

    Außerdem habe ich den Quellcode für das C# Programm als Download angefügt. Habe den Quellcode aufgeräumt und noch etwas Farbe hinzugefügt. Hatte ich ja gesagt. 🤡

    Edit: Ich muss die Terminalsymbole usw. noch erklären, da muss ich mir noch überlegen, wie ich das am besten anstelle 🤡



  • Die Begriffserklärung gefällt mir 🙂 Von mir aus kann der jetzt auf R und dann veröffentlicht werden


Anmelden zum Antworten