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

hive-modoki: かんたんな Apache Hive のクローンを作っていた話

2021-06-08 追記 Hive を使うお仕事から離れることになったため、 hive-modoki は開発中止となりました。 転職先が見つかるとかで開発終わるパターンは織り込み済で、半分は作る事自体が目的ということにして保険かけてたので、まあ、大丈夫。 パーサやクエ…

vm2gol v2 (55) VM命令 set_reg_a, set_reg_b の廃止など

目次ページに戻る / 前 / 次 前回からの差分をまとめて見る VM命令 set_reg_a, set_reg_b の廃止 cp 命令で書き換えられるため不要になっています。 「set_reg_a, set_reg_b を使って書いた方が意図も明確で可読性も高い」みたいなメリットも大してないので…

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