Qiita に書きました。 qiita.com
これは Ruby Advent Calendar 2022 の 25日目の記事です。 Qiita に書きました。 qiita.com
Qiita に書きました。 qiita.com
Emacs Advent Calendar 2022 3日目の記事です。Zenn に書きました。 zenn.dev
Qiita に書きました。 qiita.com
github.com fastvm/rclvm.cr の高速化の自分用メモ。 オペコードを String のまま取り回す実装だった → これをシンボルや enum にするとどうなるか def execute : Int32 | Nil insn = @mem.main[@pc] opcode = insn[0] case opcode when "exit" then return …
目次ページに戻る / 前 前回からの差分をまとめて見る sub_sp 命令を廃止 VM命令 sub_sp を廃止しました。 オペランドを負の値にすれば add_sp で代用できるので。 これで VM のコードが5行減って、実装の量の面でも、仕様の面でも、またちょっとコンパクト…
Qiita に書きました。 qiita.com
Qiita に書きました。 qiita.com
Qiita に書きました。 qiita.com
Qiita に書きました。 qiita.com
Qiita に書きました。 qiita.com
Qiita に書きました。 qiita.com
Qiita に書きました。 qiita.com
「このブログには他にどういう記事があるの?」という方向けの案内です。 がんばったもの memo88.hatenablog.com TechRacho さんの週刊Railsウォッチ(20210209後編)で紹介されました。 続き: Rubyで素朴な自作言語のコンパイラを作った さらに続き: 素朴な…
Qiita に書きました。 qiita.com
Qiita に書きました。 qiita.com
Qiita に書きました。 qiita.com
Qiita に書きました。 日本語プログラミング言語「なでしこ」 Advent Calendar 2021 の 13日目です。 qiita.com
Qiita に書きました。 qiita.com
Qiita に書きました。 日本語プログラミング言語「なでしこ」 Advent Calendar 2021 の 6日目です。 qiita.com
追加機能など main ブランチにはマージせずにブランチで個別に試しています。 真偽値リテラル true, false break while文の最後にジャンプ if/else lexer で case 文に書き換えるだけの簡易実装 単項演算子 - Ruby っぽい見た目に func を def にして、 { ..…
Qiita に書きました。 qiita.com
Qiita に書きました。 qiita.com
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る case 文の構文を変更 変更前はこうでした。 case { (current_val == 0) { case { (count == 3) { set next_val = 1; } } } (0 == 0) { case { (count == 2) { set next_val = 1; } (count == 3) { …
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る step 60 stmt_rest ではなく stmt を渡す トップレベルでのVMコメントの廃止 ==, != をそのまま使う Token#kind にリネーム step 61 二項演算子まわりの整理 vgcodegen.rb にリネーム 変数名・メソ…
目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 真偽判定の変更(コード生成) while 文と case 文では 条件式の評価結果を 1 と比較して真偽を判定していました。 疑似コードで書くとこう。 # 修正前 if 条件式の評価結果 == 1 真と判定 => whil…
Qiita に書きました。 qiita.com
前回「Haskellでかんたんな自作言語のコンパイラを書いた」というのを書きました。これはこれで気が済んだので Haskell の話は切り上げて次に行ってもいいのですが、せっかく読み書きに慣れてきたところですし、もう少し何かやってみようかなと。 ※ Haskell …
移植一覧に戻る OCaml 版を書いた勢いで Haskell にもババッと移植しました。いつもの通りでライフゲームのコンパイルだけ通ればヨシ、という程度の非常に雑なものです。 github.com 移植元 memo88.hatenablog.com github.com ライフゲームのプログラムだけ…