自作言語のコンパイラにオレオレアセンブリではなくx86_64アセンブリを生成させる(関数呼び出しと足し算だけ)

Qiita に書きました。 qiita.com

Ruccola VM Crystal版の速度改善 (2022-08)

github.com fastvm/rclvm.cr の高速化の自分用メモ。 オペコードを String のまま取り回す実装だった → これをシンボルや enum にするとどうなるか def execute : Int32 | Nil insn = @mem.main[@pc] opcode = insn[0] case opcode when "exit" then return …

vm2gol v2 (63) sub_sp 命令を廃止 / panic

目次ページに戻る / 前 前回からの差分をまとめて見る sub_sp 命令を廃止 VM命令 sub_sp を廃止しました。 オペランドを負の値にすれば add_sp で代用できるので。 これで VM のコードが5行減って、実装の量の面でも、仕様の面でも、またちょっとコンパクト…

SVG::Graph(svg-graph gem)で散布図を描く

Qiita に書きました。 qiita.com

Galaaz を触ってみた(TruffleRuby + ggplot2 で散布図を描いてみた)

Qiita に書きました。 qiita.com

Ruby + Victor でSVGお絵描き(簡単な散布図を描いてみた)

Qiita に書きました。 qiita.com

Ruby + Numo::Gnuplot(numo-gnuplot gem)で散布図を描く

Qiita に書きました。 qiita.com

Ruby + ruby_gnuplot(gnuplot gem)で散布図を描く

Qiita に書きました。 qiita.com

Ubuntu 22.04にJupyter NotebookとIRubyをインストール(pyenv, rbenv を使用)

Qiita に書きました。 qiita.com

Opal::Builder を使ってコンパイルする際に source map も生成する

Qiita に書きました。 qiita.com

記事の案内

「このブログには他にどういう記事があるの?」という方向けの案内です。 がんばったもの memo88.hatenablog.com TechRacho さんの週刊Railsウォッチ(20210209後編)で紹介されました。 続き: Rubyで素朴な自作言語のコンパイラを作った さらに続き: 素朴な…

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

Qiita に書きました。 qiita.com

malでかんたんなテンプレートエンジンを書いてみた

Qiita に書きました。 qiita.com

シェルスクリプト(Bashスクリプト)でかんたんな自作言語のコンパイラを書いた

Qiita に書きました。 qiita.com

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

Qiita に書きました。 日本語プログラミング言語「なでしこ」 Advent Calendar 2021 の 13日目です。 qiita.com

LibreOffice Calcのfodsファイルを読み書きするサンプルをweb API化してみた

Qiita に書きました。 qiita.com

なでしこ3で簡単なcatコマンドを作る

Qiita に書きました。 日本語プログラミング言語「なでしこ」 Advent Calendar 2021 の 6日目です。 qiita.com

vm2gol v2 追加機能など

追加機能など main ブランチにはマージせずにブランチで個別に試しています。 真偽値リテラル true, false break while文の最後にジャンプ if/else lexer で case 文に書き換えるだけの簡易実装 単項演算子 - Ruby っぽい見た目に func を def にして、 { ..…

Parsletでかんたんな自作言語のパーサを書いた

Qiita に書きました。 qiita.com

Raccでかんたんな自作言語のパーサを書いた

Qiita に書きました。 qiita.com

vm2gol v2 (62) case 文の構文を変更 / standardrb に変更

目次ページに戻る / 前 / 次 前回からの差分をまとめて見る case 文の構文を変更 変更前はこうでした。 case { (current_val == 0) { case { (count == 3) { set next_val = 1; } } } (0 == 0) { case { (count == 2) { set next_val = 1; } (count == 3) { …

vm2gol v2 (60) stmt をそのまま渡す / (61) リファクタリング

目次ページに戻る / 前 / 次 前回からの差分をまとめて見る step 60 stmt_rest ではなく stmt を渡す トップレベルでのVMコメントの廃止 ==, != をそのまま使う Token#kind にリネーム step 61 二項演算子まわりの整理 vgcodegen.rb にリネーム 変数名・メソ…

vm2gol v2 (59) while, case の真偽判定の変更 / 予約語の判定の改良

目次ページに戻る / 前 / 次 前回からの差分をまとめて見る 真偽判定の変更(コード生成) while 文と case 文では 条件式の評価結果を 1 と比較して真偽を判定していました。 疑似コードで書くとこう。 # 修正前 if 条件式の評価結果 == 1 真と判定 => whil…

(solved) Maven: CompilationFailureException: Compilation failure

Qiita に書きました。 qiita.com

Haskellごっこ: 変数の定義・参照

前回「Haskellでかんたんな自作言語のコンパイラを書いた」というのを書きました。これはこれで気が済んだので Haskell の話は切り上げて次に行ってもいいのですが、せっかく読み書きに慣れてきたところですし、もう少し何かやってみようかなと。 ※ Haskell …

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

移植一覧に戻る OCaml 版を書いた勢いで Haskell にもババッと移植しました。いつもの通りでライフゲームのコンパイルだけ通ればヨシ、という程度の非常に雑なものです。 github.com 移植元 memo88.hatenablog.com github.com ライフゲームのプログラムだけ…

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

移植一覧に戻る いつもの通りでライフゲームのコンパイルだけ通ればヨシ、という程度の雑なものです。 github.com 移植元 memo88.hatenablog.com github.com ライフゲームのプログラムだけコンパイルできればOKという簡単なコンパイラです。Ruby 版だとコン…

素朴な自作言語Ruccolaのコンパイラをセルフホストした

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

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

vm2gol-v2 移植一覧に戻る Qiita の方に書きました。 qiita.com

開発用のMySQL Dockerコンテナのメモリ消費が大きくて辛かったのでperformance_schemaを無効にしてどれくらい減るか調べたメモ

Qiita に書きました。 qiita.com