Wird als nicht definierte Variable mit leerem Inhalt verarbeitet, würde ich sagen.Zitat von masterquest
Ja, damit sind %% und \% äquivalent, aber IMO ist es auf diese Weise konsequent. Ihr wolltet ja unbedingt Backslashes...
Wird als nicht definierte Variable mit leerem Inhalt verarbeitet, würde ich sagen.Zitat von masterquest
Ja, damit sind %% und \% äquivalent, aber IMO ist es auf diese Weise konsequent. Ihr wolltet ja unbedingt Backslashes...
Ich dachte, bei nicht definierten Variablen wird der komplette Name inklusiv der beiden %-Zeichen ausgegeben. Demnach wäre %% äquivalent zu \%\%, oder übersehe ich da mal wieder irgendwas total simples?Zitat von Jesus_666
http://kx49.de/lukas/ring/progcontest/apr05.py.txt
Mit den Kommentaren hab ich etwas übertrieben...
Bestimmt nicht der beste Interpreter, aber dabei sein ist alles
Edit:
Diese Datei crasht alle Interpreter im Contest (meinen eingeschlossen). Das zu umgehen wäre aber zu aufwändig und zu rechenintensiv, deshalb hab ich's nicht gemacht.
Geändert von Lukas (24.04.2005 um 19:06 Uhr)
Über die Problematik der von dir geposteten Datei habe ich auch schon nachgedacht, dann aber gesagt, dass ich eh nicht gewinne und ich mir dann auch nicht stundenlang den Kopf darüber zerbrechen muss. Man könnte natürlich eine maximale Anzahl der zu ersetzenden Variablen bestimmen, aber das würde die Funktion der "Sprache" IMO sehr einschränken...
Tja, die Datei beweist, dass es nötig ist, eine feste Bearbeitungsreihenfolge festzulegen. Dann wär die Sache gar kein Problem und der Interpreter würde für nocht nicht definierte Variablen 0 bzw. "" annehmen. Folge wäre eine leere Ausgabe.
Mein Vorschlag für den nächsten Contest wäre deshalb noch mal die gleiche Aufgabe, aber mit einer sauber definierten Sprache, die auch etwas mehr kann als nur eine einzelne Zeile ausgeben.
Ich glaube, das wäre etwas langweilig. Für den nächsten Contest sollte was anderes kommen.
Außerdem müsste man die Sprache stark umkonzipieren, um mehr als einen Output zu erzeugen, die einzige halbwegs simple Möglichkeit wäre, Ausdrücke in den Strings zu erlaube (wie z.B. #{xy} in Ruby).
btw, wann kommt die Umfrage?
Die Sprache SOLL NICHTS ANDERES TUN, als eine Zeile auszugeben. Ziel des Contests war es, anhand einer einfachen Sprache die Konstruktion eines Parsers durchzuführen, nicht die Erfindung einer neuen Skriptsprache.Zitat von DFYX
Falls ich einen zweiten Parsingcontest mache wird das nächste Mal wohl eine Sprache verwendet werden, die einfach ist und keine direkte Funktion hat, beispielsweise normale EBNF oder ein XML-Derivat. Die hier verwendete Sprache war der Versuch, BNF mit einer Ausgabe zu kombinieren, damit man sie auch interpretieren kann.
Nicht jede Sprache soll etwas tun, bei Weitem nicht. Und nicht jede Sprache, die etwas tut, ist eine Skriptsprache.
Das Problem mit der unendlichen Rekursion war mir übrigens von Anfang an bekannt; ich habe es ignoriert, weil diese Sprache nicht übermäßig komplex werden sollte - immerhin sollte das Ding einfach nur einen verdammten String ausgeben! Am Ende ist sie es dann doch geworden...
Exakt. Die Sprache ist darauf ausgelegt, eine Zeile auszugeben. Das Interpretieren einer kompletten Skriptsprache ist nicht Sinn dieses Contests. Die Sinnhaftigkeit der Sprache steht nicht wirklich zur Debatte, weil der einzige Sinn der Sprache darin liegt, in diesem Contest verwendet zu werden.Zitat von masterquest
Ich denke allerdings darüber nach, für den nächsten Contest einfach 3am etwas komplexer zu machen und das dann hier reinzusetzen, in EBNF. Die Sprache kann immerhin komplexere Skripte ausführen, sie hat Unterstützung für beliebigen Output und sie hat einen Sinn: Obskurer als Brainfuck zu sein.
Ich mache sie auf, wenn ich wieder zuhause bin. Ein bißchen was will ich in dieser Vorlesung noch mitkriegen...Zitat
Geändert von Jesus_666 (25.04.2005 um 15:07 Uhr)
@Dingsi:
Hm, ich habe glaube ich einen Fehler in deinem Interpreter gefunden:
Erzeugt den Fehler
was laut Spezifikationen von Jeez nicht passieren dürfte. Oder hab ich was falsch verstanden?Zitat
PS: Mein Interoreter hat da auch nen Fehler
Der Output ist statt "%tot%" "(4xLeerzeichen)%tot%". Schlimm?
Naja, wie lange geht so ne Vorlesung? Ich find Dingsis Interpreter nämlich glaube ich am besten, da er in C++ geschrieben ist (auch wenn das ja AFAIK nicht in die Bewertung eingehen sollte).
Jeez hat vor knapp zwei Stunden im IRC gesagt, dass die Vorlesung fast vorbei sei.Zitat von dead_orc
Ich würde übrigens wahrscheinlich für deinen Interpreter stimmen, orc (allerdings werde ich mir alle nochmal genauer angucken); C++ ist für mich kein Grund und deiner wirkt bisher irgendwie am elegantesten.
In meinem hast du keine Fehler gefunden? Oder hast du keinen Python-Interpreter oder warst zu faul zum testen?
Ich habe keinen Python-Interpreter und bin zu faul (mir einen zu besorgen). Mannis werd ich mir wohl noch angucken...
Aber danke für deine Stimme, wenn du sie mir wirklich gibst! Und hast wohl recht, C ist eigentlich ne Sprache wie alle anderen auch und nix besseres.
*MannisInterpreterkopiertundausprobiert*
Update:
OMG! Kaum ruf ich das Teil zum ersten Mal auf, springen mich zwei Fehler an:
IMHO sollte der Code auch sauber sein, was er damit IMO nicht ist. Außerdem wird bei diesem InputZitat
folgende Fehlermeldung generiert:
was wieder nach Jeez' Spezifikationen nicht gültig ist. (LOL, ich mach hier den Check für alle Interpreter ^^)Zitat
Außerdem habe ich das Gefühl, dass insgesamt nur eine Fehlermeldung definiert ist (hab bisher immer nur die oben stehende bekommen!)
Update²:
Toll, jetzt wurde schon die Umfrage eröffnet!
@Jesus_666: Kannste vielleicht des Komfort halber noch einen Link in die Umfrage in diesen Thread machen?
Geändert von dead_orc (25.04.2005 um 17:52 Uhr)
http://forum.worldofplayers.net/foru...d.php?p=980822
Von der Uni brauche ich immer ca. anderthalb Stunden nach hause, FYI.