最終的にはコンパイラを作ってみたいと考えて、ANTLRとLLVMを勉強中。 ANTLRはJavaで実装されたパーサジェネレータ。 ANTLRの使い方がなんとなく分かったので、Brainf*ckのインタプリタを実装してみた。 ANTLRによるインタプリタの作り方については別記事で投稿する(かも)。 とりあえず、コードを晒しておく インタプリタのコンパイル方法上記のコードをBF.gという名前で保存して(名前は重要!)、以下のよう ANTLR にパーサのソースコードを生成させる。 $ antlr BF.g すると、カレントディレクトリに BFParser.java, BFLexer.javaが出来ているので、 $ javac BFParser.java BFLexer.java でコンパイル インタプリタの実行無事インタプリタがコンパイルできたら、"Hello world"を実行してみる。 $
アラン・チューリングという計算機科学者の考えた、 「チューリング・マシン」という仮想の計算機があります。 これは [0を書く]、[1を書く]、[右に進む]、[左に進む] と言った 非常に簡単な命令のみを実行できる想像上の計算機ですが、 我々の使っているパソコンでできるような計算は全て、 チューリングマシン用のプログラムとして書ける、ということが知られています。 …という前置きを付けてなんだか重々しい言語に見えてきたところで(^^;、 たぶんご存じの方も多いと思われる、わずか8文字の組み合わせで ありとあらゆるプログラムを表現する Brainfuck を弄ってみるとしましょう。 * Hello, World 導入 サンプル:表示1 サンプル:表示2 サンプル:echo * サンプル:足し算 サンプル:掛け算 C++によるインタプリタ実装 * サンプル:条件分岐1 サンプル:条件分岐2 まとめ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く