>  > アルパインスターズ Alpinestars 春夏モデル グローブ GP PLUS R 白/黒/蛍光赤 Lサイズ 8021506561798 HD店
【メーカー在庫あり】 ユーカナヤ U-KANAYA ビレットレバーセット スタンダードタイプ ロング Z125PRO、Z125 ゴールド KA071-011-0102 HD店

アルパインスターズ Alpinestars 春夏モデル グローブ GP PLUS R 白/黒/蛍光赤 Lサイズ 8021506561798 HD店

インタプリタを作りたい

前に、インタプリタを作ったことがあったり 【ACパフォーマンスライン】【バイク用】アルミ メッキ (リア) スモーク T-MAX 01-03 スモークホース【32131291S】、ラジコンに声で操作するためのインタプリタを乗っけたりしたことがあったので、インタプリタを作りたくなった。

https://www.oreilly.co.jp/books/9784873118222/

アルパインスターズ Alpinestars 春夏モデル 91/92 グローブ GP PLUS R 白/黒/蛍光赤 Lサイズ 8021506561798 95.2~ HD店

この本は、インタプリタを一からつくる本で、パーサージェネレータを使ったりしないので、動作原理がわかるという本。

原著は Writing An Interpreter In Go で、この本の続編として 【S615】エブリイワゴン [H13/9-H17/7][DA62W] セレクション ライトベージュ Bellezza ベレッツァ シートカバー、 Writing A Compiler In Go という本がある。

Monkeyという言語を作っていくなかで、必要な知識を教えてながら、テストコードを書くことで、内容が正しいことを理解しながら次へ導いてくれる。

この本を写経していくと、多分typoとかに悩まされるだろうけど、そのtypoを解決していくときに何がどうなっているのかを理解するチャンスだったりする。

ちなみに、vimのバージョンを上げてvim-goをサポートする必要のある環境があった。だから プロジェクトμ D1スペック リア左右セット ブレーキパッド スカイライン PV35 R209 取付セット プロジェクトミュー プロミュー プロμ D1 spec ブレーキパット【店頭受取対応商品】、Vimをコンパイルするところから始めた時があった。

Vimをコンパイルするときはこれが初めてだった。

Vimをコンパイルする方法から調べてVim 8.0をインストール。

$ ./configure --with-features=huge --enable-fail-if-missing --enable-python3interp --enable-pythoninterp

configureはこんな感じで、vim-goをインストールできた(はず)。

グローブ R 8021506561798 Lサイズ 春夏モデル 春夏モデル Alpinestars 白/黒/蛍光赤 GP アルパインスターズ PLUS 8021506561798 HD店

なにか天然ボケをかまして、

アルパインスターズ Alpinestars 春夏モデル グローブ GP PLUS R 白/黒/蛍光赤 Lサイズ 8021506561798 HD店本物満載!

、代入の構文letに対して値が返ってこないことを気にしてたらしい。Evalで値を返すことは可能だったことは調べてわかった。。

Go言語でとあるけど、必要なGo言語の知識はそんなになかったりはする。ぼくは宣言不要の代入演算子で躓いてしまったけど。

これをループ内部で書いてしまって、ネストされた構造で原因をつかめなくて結構時間を取られてしまったり。そういうのはあるけど、それも理解するためのプロセスだし、ゴールがインタプリタというすごいものなので、そんなに苦しいというわけでもない。大丈夫だと思う。

おまけとして、文字列比較作ったりしてた。

出来上がる

マクロシステムも読んでみて思ったことは 、すごく良い。これで自分でも言語が作れるから、本当に嬉しい。

今後としては、まだよくわからないところがあるからもう一回読もうかなとか、続編の Writing A Compiler In Goを読もうと思ってる。

ソース

私が書いたMonkeyのソースはGitHubに置いとくhttps://github.com/youkidearitai/monkey-interpreter