2.0ベースのクラスライブラリとして実装して、それを幾つかのソリューションから実際に使ってみよう。簡単に説明をしておくと、Brainfuckは次の8種類の命令を使って、データを格納する配列(とそれを参照するためのポインター)を操作しながら、何らかの処理を行う言語だ。Basics/Keyword:Brainfuck」を参照されたい。見ても、人が読むことを前提とはしていないコードだ)。Previewなどを使用する必要がある。2017では、これはまだサポートされていない。Previewを使用することにしよう。2.0ベースのクラスライブラリと、それを使用するプロジェクトを作成している。2」ページなどを参照されたい。Standardベースのクラスライブラリを作成するプロジェクトテンプレートが表示される。[新しいプロジェクト]ダイアログここでは、MyBrainfuckLibという名前でプロジェクトを作成した。2.0]が表示されるはずだ。2.0ベースのクラスライブラリのプロパティ本稿では、このようにして作成したクラスライブラリに、Brainfuckインタープリタを次のように(スタティッククラス/スタティックメソッドとして)実装した。string(result.ToArray());}}}Brainfuck(の7つの命令をサポートする)インタープリタを実装したクラスライブラリこれはあくまでもサンプルなので、詳しい説明はしないが、2つのメソッドについて簡単に述べておこう。7で追加されたタプル(値タプル)を利用しているので、プロジェクトにはNuGetからSystem.ValueTupleパッケージを追加している)。ExecuteBrainfuckCodeメソッドは、パラメーターに受け取った命令列を1文字ずつ走査して、それらの命令に応じた処理をしていく。このとき、データ配列に保存されているデータを出力する「.」命令に遭遇したら、それをchar型の要素を持つリストに追加していき、最終的にそれを文字列に変換したものを返送する。GetBracketPairメソッドで取り出したタプルのリストは、ExecuteBrainfuckCodeメソッド内で命令列の解釈/実行時、「[」命令あるいは「]」命令が登場した際にループ内の処理を行うか、ループの次の処理を行うかに応じて、次に実行する命令に制御を移動するのに使われている。次にこのクラスライブラリを利用するコンソールアプリを見てみよう。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。