11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node.jsでつくるNode.jsミニコンパイラ - もくじ

Last updated at Posted at 2018-08-04

はじめに

「RubyでつくるRuby ゼロから学びなおすプログラミング言語入門」(ラムダノート, Amazon) という本に感銘を受けて、自分でもNode.jsでミニインタープリターを作りました

そして Turing Complete FM というポッドキャストを聴くうちにコンパイラも作って見たくなり、LLVMを使ってチャンレンジしてみました。

前提環境

今回は私の環境である Mac OS X 10.12 Sierra を前提にしています。

ミニコンパイラ編 目次

番外編

  • Extra01 : WebAssembly 化 ... emscripten を使って、LLVM IRからWebAssembly(.wasm)に変換
  • (いつかやりたい)Node.jsとの互換性を高めるため、console.log()を使えるようにする
  • (いつかやりたい)ミニRubyの中間表現から、LLVM IRを使ってバイナリを生成
  • (いつかやりたい)LLVM IR を経由せずに、WebAssemblyのテキスト表現に直接変換

ミニインタープリター編

謝辞

「RubyでつくるRuby ゼロから学びなおすプログラミング言語入門」(ラムダノート, Amazon) に感銘をうけて自分でもミニNode.jsを作って見ましたが、本を読んでいた時には気がつかなかったことが多々ありました。書籍の構成、ミニRubyの設計がとても優れていて、とても参考になりました。
素晴らしい書籍を作ってくださった作者の遠藤さんとラムダノートさんに改めて感謝します。ありがとうございました。

ソースコード

今回作ったコードは GitHub で公開しています。

いつかやりたいこと

  • (実施済み)LLVM IRから、WebAssemblyを生成する
11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?