コンパイラをつくってみよう accepted

Abstract

コンパイラをつくってみたいと思ったことはありますか?
「C言語わからないから無理」「低レイヤの専門家じゃないから無理」「コンピュータ・サイエンス学んでないから無理」などとあきらめてしまっていませんか?

簡単なコンパイラであれば難しい理論を知らなくても作ることができます。
むしろ私は、コンパイラというものはまず作ってしまってから理論を学ぶ方がよいとさえ考えています。また必ずしもC言語で書く必要はなく、どんな言語でもコンパイラを作ることができます。

本トークでは、普段低レイヤを触っていないプログラマを対象に、簡単なコンパイラを作ってHello world(または足し算)をコンパイルするところまでを説明します。

具体的にはGo言語を使ってGoコンパイラの卵を作ります。
手段としてGoを選ぶ理由は、最初からslice, map, rangeなどの便利構文があるので速く書けることです。
対象としてGoを選ぶ理由は、言語仕様が小さく歴史的事情が少ないので解析しやすいことです。
(このトークの主眼はGo言語ではなくあくまで「コンパイラ」です。Go特有の話はあまりしないので他の言語ユーザでもわかる内容にするつもりです。)

本トークを聞いて、コンパイラ作りを疑似体験していただき、コンパイラって意外と簡単なんだ、自分もやってみよう、と思う人がひとりでも増えればと願っています。

■話す内容
・コンパイラとは何か
・ソースコードを解釈するとはどういうことか
・アセンブリを出力してみる
・コンピュータはどうやって動くのか
・CPUマニュアルの読み方

途中途中で実際に動くデモをお見せします。

■想定受講対象者

・普段アプリケーション開発をしているけどコンパイラに興味がある方
・コンパイラをやってみたいけど何からはじめてよいかわからない方、挑戦したけど挫折したことのある方
・プログラミング言語が動く仕組みを知りたい方

Session Information
Confirmed confirmed
Starts On 8/30/19, 1:20 PM
Room Niwa Hall
Session Duration 50 min session
Spoken Language Japanese
Interpretation Unavailable
Slide Language Japanese