** Brainfuck Interpreter Contest ** [abgeschlossen]
-
"All 42 tests passed. ", aber leider noch bei
311305 :-\ und Rekursionstiefe kann ruhig auf 256 gesetzt werden.
-
Mir ist noch eine kleine Ungereimtheit in den Regeln aufgefallen.
Zellen = 16 bit signed
Programm = 16 bit unsigned (char halt)
IO = 16 bit unsigned (char), kann daher min. geforderte Range für Zellen sprengenSollen wir die UTF-16 Werte vom Programm und IO sign-extenden? Dann hätten wir überall 16 bit signed und gut.
Oder nur IO?
-
@GPC
Ich check gar nix.
Optionale Parameter? Gibt doch in C# nicht, oder hab ich da was verpasst?
Kannst du mal in 1-2 Zeilen zeigen was du meinst?Ansonsten... solche Änderungen möchte ich eigentlich nicht unbedingt machen denke ich.
-
Seit 4.0 gibt es optionale Parameter, hauptsächlich für leichteres COM-Interop.
-
Und über Reflection sind die nicht optional?
-
hustbaer schrieb:
Zellen = 16 bit signed
Programm = 16 bit unsigned (char halt)
IO = 16 bit unsigned (char), kann daher min. geforderte Range für Zellen sprengenSollen wir die UTF-16 Werte vom Programm und IO sign-extenden? Dann hätten wir überall 16 bit signed und gut.
Oder nur IO?Kannst du das Problem und deine Lösung erklären?
-
@TyRoXx:
Hö? Hab ich doch.IO verwendet UTF-16, also Werte von 0 bis 65535.
Gefordert wurde eine Implementierung die in Zellen den Wertebereich -32768 ... 32767 unterstützen muss.
Das passt doch nicht zusammen.Mit der Definition wäre es möglich, dass ein Programm einen Wert liest, der gar kein gültiger Zellenwert mehr ist.
-
221
-
228 weigert sich kleiner zu werden.
-
Geht es bei dem Contest wirklich darum auf Biegen und Brechen den kompaktesten Code zu erstellen?
Auch wenn die Lesbarkeit drunter Leidet?
Ich finde das falsch, Die Länge des Codes ist eigentlich das uninteressanteste an Codes, Eleganz, Erweiterbarkeit und Lösungsansätze sind da viel angemessener.(Ich mache zwar nicht mit, aber lese hier hin und wieder und wunderte mich schon mehrfach das die Länge scheinbar das Wichtigste ist)
-
hustbaer schrieb:
Und über Reflection sind die nicht optional?
Ne, eben nicht. Die Vorgabe nur ein Parameter beißt sich aber eh mit "Die genaue Signatur der Funktion ist dabei nicht vorgeschrieben" :p
-
David W schrieb:
Geht es bei dem Contest wirklich darum auf Biegen und Brechen den kompaktesten Code zu erstellen?
Auch wenn die Lesbarkeit drunter Leidet?Bei 221 Zeichen leidet die Lesbarkeit schon lange nicht mehr
Davon abgesehen: 1. finde ich es angemessen, dass ein BF-Interpreter selbst aussieht wie BF, 2. wurde BF mit dem expliziten Ziel entwickelt, möglichst kleine Compiler zu ermöglichen.
-
David W schrieb:
Geht es bei dem Contest wirklich darum auf Biegen und Brechen den kompaktesten Code zu erstellen?
Auch wenn die Lesbarkeit drunter Leidet?
Ich finde das falsch, Die Länge des Codes ist eigentlich das uninteressanteste an Codes, Eleganz, Erweiterbarkeit und Lösungsansätze sind da viel angemessener.(Ich mache zwar nicht mit, aber lese hier hin und wieder und wunderte mich schon mehrfach das die Länge scheinbar das Wichtigste ist)
Der Contest ist halt so ausgerichtet, dass der kürzeste gewinnt. Das ist etwas, das man eindeutig bewerten kann. Außerdem ist es 1337
Und hey, wie soll man denn bitte Eleganz und Erweiterbarkeit bewerten? Ist Rekursion eleganter als Iterativ? usw. usw.
-
298 ...
-
Bashar schrieb:
1. finde ich es angemessen, dass ein BF-Interpreter selbst aussieht wie BF
C# != BF
Bashar schrieb:
2. wurde BF mit dem expliziten Ziel entwickelt, möglichst kleine Compiler zu ermöglichen.
Was hat das mit dem Contest zu tun? Das .Net Framework ist erlaubt, und der ist nicht gerade klein.
GPC schrieb:
Der Contest ist halt so ausgerichtet, dass der kürzeste gewinnt.
Finde ich schade. Da gewinnt am Ende der der am rafiniertesten Kurzen Code zusammen bastelt, nicht wer gut entwickelt.
GPC schrieb:
Das ist etwas, das man eindeutig bewerten kann
Wenn es Mehrere Codes gibt die Qualitativ gleichwertig zu beurteilen sind wird es natürlich schwerer. Aber nicht unmöglich.
GPC schrieb:
Und hey, wie soll man denn bitte Eleganz und Erweiterbarkeit bewerten?
Wenn ich die Code vor die Nase setze die nicht Testbar ist, die alles von oben nach unten runter fummelt und dabei total unsicher ist wirst du es sehr leicht von Code unterscheiden können der generell mehr Objekt Orientiert (Mit guter Hierarchie dann auch erweiterbar) ist, sicherer und Testbar.
GPC schrieb:
Ist Rekursion eleganter als Iterativ? usw. usw.
Da gibt es kein ja oder nein, sondern das entscheidet man danach wie die Lösungen aussehen.
Der Code wird zum Beispiel Länger wenn die Eingaben noch Validiert werden, wenn es eine Fehlerbehandlung gibt und dann eine angemessene Fehlermeldung angezeigt wird. Ich vermute das die kurzen Codes die hier gebaut werden einfach um die Ohren fliegen wenn mal eine Fehleingabe auftritt.
-
@David
Wir haben Spaß an der Sache und dein Geheule ist hier fehl am Platz_____ ____ _____ \ / \ µ / \ / \_/ <--- 228 \ / \____/ FFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU...........
-
http://weblogs.asp.net/ralfw/archive/2005/09/18/425474.aspx << die hatten auch Spaß, und da wurde nicht die Kürze bewertet
-
DavidW, du gehst bestimmt auch zum Seifenkistenrennen und beschwerst dich, dass keine Airbags eingebaut sind.
David W schrieb:
Bashar schrieb:
1. finde ich es angemessen, dass ein BF-Interpreter selbst aussieht wie BF
C# != BF
Außer dass mehr als 8 Zeichen signifikant sind ...
Bashar schrieb:
2. wurde BF mit dem expliziten Ziel entwickelt, möglichst kleine Compiler zu ermöglichen.
Was hat das mit dem Contest zu tun?
Das ist, außer dass es um Interpreter und nicht Compiler geht, der Inhalt des Contests.
-
Mit David W zu diskutieren macht ca. genau so viel Sinn wie zu versuchen blurry333 etwas beizubringen.
Ignoriert ihn also bitte einfach, sonst artet das ganz schnell in eine endlose Diskussion aus, von der im Endeffekt genau gar niemand was hat. Nicht wir, nicht er, und ganz sicher nicht der Rest der Welt.
-
GPC schrieb:
hustbaer schrieb:
Und über Reflection sind die nicht optional?
Ne, eben nicht. Die Vorgabe nur ein Parameter beißt sich aber eh mit "Die genaue Signatur der Funktion ist dabei nicht vorgeschrieben" :p
Jain.
Die genaue Signatur ist nicht vorgeschrieben heisst z.B. dass du die Funktion gerne virtual machen darfst oder unsafe oder sowas.Allerdings... wenn es in C# optionale Parameter gibt... OK, soll mir recht sein.
Zeig mir einfach wie ich den Aufruf im Testsystem umschreiben soll.