>  > CF48326.0 阪神素地(株) ハンシン CF-483 胴付長靴 先芯入り 26.0cm CF-483-26.0 JP
DUCATI 998 リアフェンダー カーボン NAO(エヌエーオー)

CF48326.0 阪神素地(株) ハンシン CF-483 胴付長靴 先芯入り 26.0cm CF-483-26.0 JP

インタプリタを作りたい

前に、インタプリタを作ったことがあったり 【USA在庫あり】 ネルソンリグ NELSON RIGG レインスーツ SR-6000 オレンジ XLサイズ 2851-0455 JP、ラジコンに声で操作するためのインタプリタを乗っけたりしたことがあったので、インタプリタを作りたくなった。

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

CF48326.0 阪神素地(株) ハンシン CF-483 SHOEI 胴付長靴 先芯入り データシステム 26.0cm CF-483-26.0 JP

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

原著は Writing An Interpreter In Go で、この本の続編として ダンロップOEM XLR125R/1993~用 DURO HF333 2.75-21 4PR & 4.10-18 4PR 前後セット デューロ、 Writing A Compiler In Go という本がある。

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

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

ちなみに、vimのバージョンを上げてvim-goをサポートする必要のある環境があった。だから 最安挑戦 DIXCEL DIXCEL プレーンディスクローター PD PD1212210S、Vimをコンパイルするところから始めた時があった。

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

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

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

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

CF-483-26.0 胴付長靴 JP CF-483 26.0cm CF-483 阪神素地(株) 先芯入り 先芯入り ハンシン CF48326.0

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

CF48326.0 阪神素地(株) ハンシン CF-483 胴付長靴 先芯入り 26.0cm CF-483-26.0 JP
MOOSE RACING ムースレーシング ガスケット/オイルシール【GASKETS AND OIL SEALS [M811504]】 RM80 1991 - 2001!Artina アルティナ スタンダードシートカバー 9701 ブラック ミニキャブバン DS17V.【送料無料】ZOOM(ズーム) ダウンフォース YRV M201G K3-VET H12/8~H17/8 2WD 1.3L ZOOM [自動車 サスペンション ダウンサス],ESPELIRダウンサス前後セットDG64Wスクラムワゴン 2WD用 H17/9~H27/3

CF48326.0 阪神素地(株) ハンシン CF-483 胴付長靴 先芯入り 26.0cm CF-483-26.0 JP

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

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

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

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

出来上がる

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

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

ソース

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