はじめに
「RubyでつくるRuby ゼロから学びなおすプログラミング言語入門」(ラムダノート, Amazon) という本に感銘を受けて、自分でもNode.jsで小さなプログラミング言語を作ってみるシリーズをやってみました。「ミニインタープリター」「ミニコンパイラー」ときて、三部作(?)の最後はミニNode.jsからWASMを生成する小さなコンパイラーに取り組んでいます。
前提環境
今回は私の環境である macOS 10.14 Mojave を前提にしています。また Node.js v10.13 で動作を確認しています。
Node.js-WASM コンパイラー目次
- WASM コンパイラー - 01:WASMで定数戻り値を返す ... シンプルに整数値を返す実装と、WASMをNode.jsから実行
- WASM コンパイラー - 02:四則演算を実装する ... 四則演算と、余りを実装
- WASM コンパイラー - 03:ローカル変数を実装する ... ローカある変数とデバッグ用に整数値を出力
- WASM コンパイラー - 04:比較演算子を実装する ... 比較演算子を実装
- WASM コンパイラー - 05:条件分岐とループを実装する ... if-else, while を実装
- WASMコンパイラー - 06:文字列出力を実装しFizzBuzzを実現する ... 文字列定数のサポートと、文字列の出力
- WASMコンパイラー - 07:ユーザ定義関数を実装する ... ユーザ定義関数のサポート
おまけ
謝辞
「RubyでつくるRuby ゼロから学びなおすプログラミング言語入門」(ラムダノート, Amazon) に感銘をうけて自分でもミニNode.jsを作って見ましたが、本を読んでいた時には気がつかなかったことが多々ありました。書籍の構成、ミニRubyの設計がとても優れていて、とても参考になりました。
素晴らしい書籍を作ってくださった作者の遠藤さんとラムダノートさんに改めて感謝します。ありがとうございました。
ソースコード
今回作ったコードは GitHub で公開しています。