Seite 4 von 4 ErsteErste 1234
Ergebnis 61 bis 72 von 72

Thema: Contest: Interpretieren einer Datei

  1. #61
    Zitat Zitat von masterquest
    Öhm, kleine Regelfrage noch:
    Auf der ersten Siete ist die Frage aufgetaucht, was man mit
    Code:
    Dies ist eine Zeile %%
    %Bla%:fu
    macht. Damals war die Planung, % als Escapezeichen zu benutzen, aber das wurde ja wieder verworfen. Wie muss der korrekt Output jetzt lauten (oder muss das 'ne Fehlermeldung ausspucken)?
    Wird als nicht definierte Variable mit leerem Inhalt verarbeitet, würde ich sagen.

    Ja, damit sind %% und \% äquivalent, aber IMO ist es auf diese Weise konsequent. Ihr wolltet ja unbedingt Backslashes...

  2. #62
    Zitat Zitat von Jesus_666
    Ja, damit sind %% und \% äquivalent
    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?

  3. #63
    Zitat Zitat von masterquest
    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?
    Du hast natürlich recht.

  4. #64
    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)

  5. #65
    Ü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...

  6. #66
    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.

  7. #67
    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?

  8. #68
    Zitat Zitat von DFYX
    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.
    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.
    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...


    Zitat Zitat von masterquest
    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).
    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.

    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.

    Zitat Zitat
    btw, wann kommt die Umfrage?
    Ich mache sie auf, wenn ich wieder zuhause bin. Ein bißchen was will ich in dieser Vorlesung noch mitkriegen...

    Geändert von Jesus_666 (25.04.2005 um 15:07 Uhr)

  9. #69
    @Dingsi:
    Hm, ich habe glaube ich einen Fehler in deinem Interpreter gefunden:
    Code:
        %tot%
        #%tot%:%tot%
    Erzeugt den Fehler
    Zitat Zitat
    Error: Unexpected '#' expecting %
    was laut Spezifikationen von Jeez nicht passieren dürfte. Oder hab ich was falsch verstanden?

    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).

  10. #70
    Zitat Zitat von dead_orc
    Naja, wie lange geht so ne Vorlesung?
    Jeez hat vor knapp zwei Stunden im IRC gesagt, dass die Vorlesung fast vorbei sei.

    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?

  11. #71
    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:
    Zitat Zitat
    Notice: Undefined variable: text in eeigene dateien\homepage\janphilipp\php\manni.php on line 32
    Notice: Undefined variable: text in eeigene dateien\homepage\janphilipp\php\manni.php on line 61
    IMHO sollte der Code auch sauber sein, was er damit IMO nicht ist. Außerdem wird bei diesem Input
    Code:
    %tot%
    #%tot%:%tot%
    folgende Fehlermeldung generiert:
    Zitat Zitat
    Warnung: Unbekannte Variable %tot%
    Nicht abgeschlossene Variable gefunden
    was wieder nach Jeez' Spezifikationen nicht gültig ist. (LOL, ich mach hier den Check für alle Interpreter ^^)
    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)

  12. #72
    http://forum.worldofplayers.net/foru...d.php?p=980822

    Von der Uni brauche ich immer ca. anderthalb Stunden nach hause, FYI.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •