** Brainfuck Interpreter Contest ** [abgeschlossen]



  • OK.
    Dann würde ich 256 vorschlagen.


  • Administrator

    hustbaer schrieb:

    Dann würde ich 256 vorschlagen.

    Habe ich nichts dagegen. Ist aber natürlich blöd, während dem laufenden Contest noch Änderungen nachzureichen. Aber gut ... so extrem schlimm auch wieder nicht, ist ja auch nicht ein extrem wichtiger Contest 😃

    Grüssli



  • Ja, ist doof. Andrerseits ist das Argument von volkard gut, dass man in C# auch keine Callstack-Tiefe von 1<<19 hinbekommt.

    Ich warte einfach noch was die anderen Teilnehmer schreiben.

    Die anderen von TyRoXx vorgeschlagenen Änderungen mach' ich auf jeden Fall nicht, die wären etwas zu krass.



  • hustbaer schrieb:

    Die anderen von TyRoXx vorgeschlagenen Änderungen mach' ich auf jeden Fall nicht, die wären etwas zu krass.

    Die sind vor allem nicht ernst gemeint.



  • @hustbaer
    Hast Du mal geprüft ob deine 227 den Anforderungen stand hält? Speziell auch das kleine Programm in diesem Beitrag: http://www.c-plusplus.net/forum/p2116925#2116925



  • verschachtelte Schleifen muß der Programmierer reingeschrieben haben

    Nein, muss er nicht. Programme koennen auch generiert werden. Gerade bei so einer einfachen Sprache wie Brainfuck.

    Das habe ich noch nicht erlebt.

    Ich habe mir generierten Quelltext angesehen, bei dem es so war.

    Ich kann mir denken, warum ihr ueber die Stacktiefe heult. Nun dann funktioniert eben der Rekursionstrick nicht. Ich habe mal schnell einen Brainfuck-Interpreter in C++ geschrieben und er kommt ohne Rekursion aus und kann mit dem Extrembeispiel von Dravere problemlos umgehen.

    Und warum soll hier 1 rauskommen?

    -[+]+++++++++++++++++++++++++++++++++++++++++++++++++.
    


  • @knivil
    Die bisherigen Lösungen können auch mit extremer Verschachtelung umgehen. Es geht darum, rekursive Lösungen zu ermöglichen. Bringen wirds imho aber nichts. Funktionssignaturen sind zu "verbose".



  • knivil schrieb:

    Und warum soll hier 1 rauskommen?

    -[+]+++++++++++++++++++++++++++++++++++++++++++++++++.
    

    ASCII 49 = '1'

    Es ist ein simpler Test, ob man die Schleifenbedingungen für negative Zahlen abgefangen hat.



  • knivil schrieb:

    Das habe ich noch nicht erlebt.

    Ich habe mir generierten Quelltext angesehen, bei dem es so war.

    Wozu hat der so viele Blöcke verschachtelt?



  • Keine Ahnung, frag doch die von der modellgetriebenen Softwareentwicklung. Und ich denke mit Templates in C++ kriege ich das auch hin.



  • knivil schrieb:

    Und ich denke mit Templates in C++ kriege ich das auch hin.

    Ja, 1000 Funktionen kriegt man hin.
    Wie mir gerade auffällt, erhöhen die nicht den Stackbedarf des Compilers, wie es 1000 Blocks tun würden.

    knivil schrieb:

    Keine Ahnung, frag doch die von der modellgetriebenen Softwareentwicklung.

    1000 Funktionen, ok. Nicht 1000 Blocks.

    edit: Vielleicht 1000 verschachtelte if-Verzeigungen.

    if(n%2!=0) 
        if(n%3!=0) 
            if(n%5!=0) 
    ... 
                                 ...if(n%65537!=0) 
                                        cout<<n<<" ist eine Primzahl.\n";
    


  • µ schrieb:

    @hustbaer
    Hast Du mal geprüft ob deine 227 den Anforderungen stand hält? Speziell auch das kleine Programm in diesem Beitrag: http://www.c-plusplus.net/forum/p2116925#2116925

    Nein.
    Werde ich aber natürlich noch.



  • Es gibt neue Tests, darunter welche für negative Zellenwerte, Schleifen-Schachteltiefe und Kommentare:

    http://www.c-plusplus.net/forum/p2113680#2113680

    Den rot13 hab' ich probiert aber nicht zum Laufen bekommen. Der scheint nicht zu terminieren. Falls ihn jmd. zum Laufen bekommt, bitte melden wie.

    "99 bottles" ist mir zu lange (der Output).



  • hustbaer schrieb:

    µ schrieb:

    @hustbaer
    Hast Du mal geprüft ob deine 227 den Anforderungen stand hält? Speziell auch das kleine Programm in diesem Beitrag: http://www.c-plusplus.net/forum/p2116925#2116925

    Nein.
    Werde ich aber natürlich noch.

    Hmpf.
    Kackt natürlich ab.

    Aber was solls.
    +1 (fix)
    -2 (weil's sonst fad wird)
    macht

    Interpreter_8_1252.cs, 226 Zeichen

    SHA-256 = 8f307069b911c7225c5bc67e6c64ac218662f27f56d66272deabcfe18db0a3cc




  • Und wie sieht's bei dir mit den neuen Tests aus?

    BTW: deinen kleinen "1" Test schafft natürlich auch mein "falscher" 227er. Nur einen meiner neuen Test-Cases nicht 🤡



  • Vielleicht könnten nochmal alle Teilnehmer schreiben was sie als minimal geforderte Schleifen-Schachteltiefe haben wollen (ohne lange Diskussionen wenn möglich 🤡 ). Dann kann ich mich nach der Mehrheit richten, und passe die Beschreibung + die Tests entsprechend an.



  • hustbaer schrieb:


    Und wie sieht's bei dir mit den neuen Tests aus?

    BTW: deinen kleinen "1" Test schafft natürlich auch mein "falscher" 227er. Nur einen meiner neuen Test-Cases nicht 🤡

    228 schrieb:

    Results for interpreter 'I':
    All 40 tests passed.
    Nice 🙂

    Danke für das tolle Testsystem 👍



  • RunTest("Squares",
                        @"++++[>+++++<-]>[<+++++>-]+<+[
                          >[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+
                          >>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]
                          <<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]", 
                        "", 
                        Enumerable.Range(0, 101).Select(i => (i * i).ToString()).Aggregate((a, b) => a + "\n" + b) + "\n");
    


  • AAh Du hast auch den Bf-Bf-Interpreter eingebaut. Sehr fein. 🙂



  • hustbaer schrieb:

    Vielleicht könnten nochmal alle Teilnehmer schreiben was sie als minimal geforderte Schleifen-Schachteltiefe haben wollen

    Es ist mir zwar eigentlich egal, aber ich hätte lieber irgendwas, das den Stack rekursiver Lösungen nicht sprengt, also von mir aus 10000 oder so.


Anmelden zum Antworten