もちろんこれは趣味ですが...
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 Developer 、 Brainfuck Compiler
読むのに便利
講演、非既存標準の秘密研究所で著者によって未読
それは実際には初心者向けです、それが便利になることを願っています)