イベントの説明
当日までの準備作業(お願い)
直前になって申し訳ありません。当日までにしておいてもらえると助かる作業を列挙します。
- Java開発環境(Java SE)のインストール
こちらのサイトからダウンロード・インストールをお願いします。OpenJDK等でもおそらくは動くかと思いますが、確認を取っていません。
- Apache Maven 3のインストール
こちら からダウンロード・インストールをお願いします。インストールが正常に行えたら、
$ mvn
というコマンドが使えるようになっているはずです。Mac OSの場合、brew install maven
だけでいけるかもしれません。
- 本ハンズオンで使うベース言語nubのclone、動作確認
本ハンズオンでは、一からプログラミング言語を作るのではなく、土台となるベース言語nubの処理系を元に、それを改造してもらう、という形式を取ります。以下の手順で、nubのcloneおよび動作確認をよろしくお願いします。
$ git clone https://github.com/kmizu/nub.git $ cd nub $ mvn compile $ mvn exec:java -Dexec.args=test-input/factorial.nub
と入力して、
[INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building nub 0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- exec-maven-plugin:1.5.0:java (default-cli) @ nub --- 6 24 120 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.793 s [INFO] Finished at: 2017-01-21T15:35:29+09:00 [INFO] Final Memory: 10M/245M [INFO] ------------------------------------------------------------------------
のように、6, 24, 120が表示されれば成功です。
イベントについて
このイベントはプログラミング言語を作るためのハンズオン企画です。 皆さんは、プログラミング言語を作ったことがあるでしょうか。もし無いとしても、 普段プログラミング言語を作る必要はないので無理はないことだと思います。しかし、プログラミング言語を(簡単なものでも)作ることによって、実際のプログラミング言語がどのように作られているかについて大まかなイメージを持つことができますし、既知の言語処理系の速度を推定するのにも役に立つでしょう。
今回、プログラミング言語処理系作成のハンズオンを行うことにしました。 作る言語の言語仕様や処理系の細部についてはまだ決まっていませんが、簡単な スクリプト言語が動作するまでを体験するコースを用意用意したいと思っています。
作ることを想定するプログラミング言語について(TBD):
- 基本単位が文ではなく式である
- 関数定義、呼び出しができる
- 条件分岐、ループを表現する構文(あるいは関数)が存在する
- 次のような演算子を持つ
- 加減乗除(+,-,*,/)
- 論理和、論理積(||, &&)
- 次のようなデータ型を持つ
- 数値型
- 真偽値型
- 文字列型
- リスト型(あるいは配列型)
- 静的型システムは考えない
- もちろん、やりたい人はやっても構わない
参加資格:
- Javaで普通のプログラムが書ける
- プログラミング言語が動作する仕組みを理解したい
- 休日を丸一日潰しても良い
チューター募集: 今回の企画、正直言って、私一人の手には余るものだと思います。そこで、チューターを 募集したいと思います。だいたい、自分で一つ以上のプログラミング言語を作ったことの ある人なら問題ないと思います。
プログラム(TBD):
- 11:00~12:00 言語処理系作成のキホン: @kmizu
- 12:00~13:00 昼食休憩
- 13:00〜19:30 言語作成ハンズオン: @kmizu
参加について
会場はドワンゴ セミナールーム(松竹スクエア 13F)です。
懇親会は20:00頃から行う予定です(ピザ注文予定)。
参加費
- ハンズオン部分は無料
- 懇親会は一人1500円(当日、会場で参加者を募集します)
入場方法
地下鉄各線東銀座駅5番出口から地上にあがって、橋を渡ったところにあるビルです。 正面入口から入り奥にあるエレベーターで13Fまであがってください。
電源タップについて
無線LANと電源はありますが、電源は床埋込み式で Macのアダプタが刺さりません 。 電源タップをご持参ください。
その他
- 喫煙室はありません
- 貴重品は各自で管理してください
- 会場は飲食可能です
会場は、ドワンゴセミナールームですが、今年から、セミナールームは歌舞伎座ではなく松竹スクエア13Fに移転しましたので、お間違えないようよろしくお願いします。
発表者
資料 資料をもっと見る/編集する
資料が投稿されると、最新の3件が表示されます。
フィード
2017/01/22 10:37
本サンプルを IntelliJ IDEA でプロジェクト構成する手順をメモ書き程度にまとめました http://qiita.com/kobake@github/items/71e3a57f971ba6771356