2021-01-01から1ヶ月間の記事一覧

vm2gol v2 (54) コード生成器の冗長すぎる部分を整理

目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 気にはなっていたけど後回しにしていたアレです。 今 v3 を作っているのですが、たしか 関数呼び出しの引数や return文で任意の式を書きたくなったとかで いじっていて、コード生成器の冗長すぎる…

vm2gol v2 (53) 間接メモリ参照のフォーマットの改良 / alinesへの蓄積をやめる

目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 間接メモリ参照のフォーマットの改良 機械語での間接メモリ参照はこれまでアセンブリでとまったく同じ [bp-2], [bp+3] のようなフォーマットにしていて、 VM では /^\[bp-(\d+)\]$/ のような正規表…

vm2gol v2 (52) リファクタリング: 字句解析処理を別ファイルに分離

目次ページに戻る / 前 / 次 前回からの差分をまとめて見る vgparser.rb で行っていた字句解析処理を vglexer.rb に分離します。 そうしなければいけない強い理由はあまりなくて、その方が他言語への移植がスムーズだった経験から、Ruby版にもフィードバック…

素朴な自作言語のコンパイラをKotlinに移植した

かんたんな自作言語のコンパイラをいろんな言語で書いてみるシリーズ 12回目は Kotlin です。 やっつけなので汚いです。ライフゲームのコンパイルが通ったのでヨシ、というレベルのものです。 github.com 移植元 memo88.hatenablog.com ベースになっているバ…

vm2gol v2 (51) 機械語コードのフォーマットを固定長風に変更

目次ページに戻る / 前 / 次 前回からの差分をまとめて見る これまで機械語コードのフォーマットはこのような YAML ファイルにしていました。 (以下便宜的に「可変長風」と呼びます) --- - call - 1029 - exit - label - vram_set - push - bp ... これを…

Zigでかんたんな自作言語のコンパイラを書いた

かんたんな自作言語のコンパイラをいろんな言語で書いてみるシリーズ 11回目は Zig です。 Zenn に引っ越しました。 zenn.dev

Ruby/Racc: パース時のスタックの動きをFlameGraphっぽくビジュアライズする

Qiita の方に書きました。 qiita.com

JRubyでLibreOffice Calcのfodsファイルを読み書きするサンプル 2021

Qiita の方に書きました。 qiita.com

JavaでLibreOffice Calcのfodsファイルを読み書きするサンプル 2021

Qiita の方に書きました。 qiita.com