ひさしぶりに、smali/baksmali 使おうかなと思ったんだけど、 apktool をつかうのが楽そうだったので、そうしよう。
Intel x86 Emulator Accelerator (HAXM installer) をいれなければ入らない問題ではまった。
ここ を参考に。
SDK Manager で Intel x86 Emulator Accelerator (HAXM installer) をインストールして、 HAXM のインストールフォルダを開いて intelhaxm-android.exe を管理者権限で実行する必要があった。
インストールフォルダは、 C:\Users\ユーザ名i\AppData\Local\Android\android-sdk\extras\intel\Hardware_Accelerated_Execution_Manager でした。
おお、速い、速い。
というわけで、trExpr を State モナドに書き換えた。これで、Let 式に取り掛かれるようになったというわけですが、今日はここまで。
→と思ったけど、もう少しやって、Let 式には対応した。それそうと、以下気になる点:
Core への変換は、ひとまず sample1, sample 4 に関しては動作しているらしい。 なので、Core から STG への変換にとりかかる頃合いなのだが、 そのあたりの理解が定まっていないので、その辺を勉強するのと並行して、 Core への変換を仕上げていこう。Pretty Printer もつくりたい。
そういうわけで、sample2 を試してみたら、let 式の変換が未対応。
しかも、これは、構造の変更がいりそうだ。 おとといの件では、State モナドにしなくてもセーフかなと思ったんだけど、 let binding を扱うには、やはり、binding を状態としてあつかわないとダメっぽい。 いまは、vs = map trExpr vdefs みたいな感じで、元の定義と binding が一対一対応になるような形で書いてしまっているんだけど、let 式は複数の (アルファ変換された)束縛に変換される、はず、なので。
そういうわけで、これからしばらくは、trExpr を State モナドに書き直す作業ですね。