難解な言語の初心者または入門コース向け

もちろんこれは趣味ですが...


Brainfuckは、主に楽しみのために1993年にUrban Mullerによって造られました。 240バイトのコンパイラサイズを持つ、ユニークで非常に興味深いチューリング完全なプログラミング言語です! 8つのコマンドのみを使用し、各コマンドは1文字で記録されます。 Brainfuckプログラムは、これらの同じコマンドのシーケンスです。



Brainfuckコマンドによって制御されるマシンは、セルの順序付きセットと現在のセルへのポインターで構成され、スタックとその中のオフセットのようなものになります。 I / Oメカニズムも実装されています。さらに、例で明らかになります。



すべての言語コマンドのリスト


>次のセルに移動

<前のセルに移動

+現在のセルの値を1ずつ増やす

-現在のセルの値を1減らす

現在のセルから値を出力

外部から値を入力し、現在のセルに保存します

[現在のセルの値が0の場合、プログラムテキストで、対応する終了セルの次のセルに進みます] (ネストを含む)

]現在のセルの値が0でない場合、プログラムテキストを介して、対応する開始点[ネストを考慮して]に続くセルに戻ります。



当初、セルの数はそれぞれ3万バイトと考えられていました。 デフォルトでは、ポインターは左のセル(セル0)にあります。 すべてのセルの値は0です。値の入力/出力は、ASCIIテーブル、より正確には、このテーブルの数値オフセットに従って行われます。 たとえば、32個の「+」記号とドット-はゼロ位置にスペースを表示し、次の「>」記号は次のセルに移動します。 72個の「+」記号とピリオドを入力すると、文字「H」が表示されます。 構造+++[.-]



は本質的にループです。値3をセルに入れ、セルから値を表示し、それぞれ値を減らします。コード3、2、1の文字の出力を取得します。PHPでは、 for ($i = 3; $i > 0; $i--) print chr($i);







言語オプションは異なる場合があります!



「Hello World!」


+++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++.+++++++++++++++++

++++++++++++.+++++++..+++.-------------------

---------------------------------------------

---------------.+++++++++++++++++++++++++++++

++++++++++++++++++++++++++.++++++++++++++++++

++++++.+++.------.--------.------------------

---------------------------------------------

----.-----------------------.









実際には72個の出力「H」、同じセルに別の29個の出力「e」などを追加し、1つのセルの値の加算/減少を操作します。 値はセルに書き込まれませんが、その場で表示されます。



「Hello World!」をアップロードしました


++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++

.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.

------.--------.>+.>.









教科書の例を言うと。 値が70、100、30、および10の4つのセルの準備に基づいているため、追加または減少が容易です。 ブロック++++++++++[>+++++++>++++++++++>+++>+<<<<-]



10回ループで操作を実行します-最初のセルに7、2番目に10、3番目に3、4番目に1を追加し、セル0に戻って値を減らします。 後続のアクションでは、すでにそのように把握できます。



柔らかい


Ubuntu- bf (高速Brainfuckインタープリター)

Windows- Brainfuck DeveloperBrainfuck Compiler



読むのに便利


講演、非既存標準の秘密研究所で著者によって未読



それは実際には初心者向けです、それが便利になることを願っています)



All Articles