Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コンパイラをつくってみよう / How to make a compiler

DQNEO
August 30, 2019

コンパイラをつくってみよう / How to make a compiler

Builderscon 2019 の発表資料です。
ライブコーディングでフルスクラッチでコンパイラを書くというのをやりました。

コンパイラのソースコードはこちらです
https://github.com/DQNEO/HowToWriteACompiler

DQNEO

August 30, 2019
Tweet

More Decks by DQNEO

Other Decks in Programming

Transcript

  1. 今日つくるコンパイラ(仕様) • 足し算引き算をコンパイルできる • 結果の数値でexit ◦ 例 ‘ 30 +

    12 ‘ → 42 でexit • ソースコードを標準入力から受け取る • アセンブリを標準出力に吐く
  2. ゴール 30 + 12 .global main main: movq $30, %rax

    movq $12, %rcx addq %rcx, %rax ret ソース言語 ターゲット言語 足し算は実行時に行う
  3. I say I write a compiler “I” “ “ “s”

    0x49, 0x20, 0x73... ByteReaderさん
  4. I say I write a compiler say I write a

    compiler 文 文 Parserさん(構文解析) I 主語 動詞