新機能 slideship.com のスライドが、connpass上に埋め込み表示できるようになりました。詳しくはこちら

お知らせ ビープラウド、機械学習・データ分析の問題をオンライン学習サービスPyQにて提供開始

このエントリーをはてなブックマークに追加

1月

22

プログラミング言語作成ハンズオン

~自分だけのプログラミング言語を作ってみよう〜

主催 : kmizu

ハッシュタグ :#lang_impl
募集内容

参加枠

1500円(会場払い)

先着順
76/40

チューター枠

無料

先着順
5/10

イベントの説明

当日までの準備作業(お願い)

直前になって申し訳ありません。当日までにしておいてもらえると助かる作業を列挙します。

  • 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に移転しましたので、お間違えないようよろしくお願いします。

発表者

kmizu kmizu

資料 資料をもっと見る/編集する

資料が投稿されると、最新の3件が表示されます。

フィード

kobake

kobake さんが書き込みました。

2017/01/22 10:37

本サンプルを IntelliJ IDEA でプロジェクト構成する手順をメモ書き程度にまとめました http://qiita.com/kobake@github/items/71e3a57f971ba6771356

kmizu

kmizu さんが プログラミング言語作成ハンズオン を公開しました。

2016/09/26 18:14

プログラミング言語作成ハンズオン を公開しました!

終了

2017/01/22(日)

10:00
20:00

募集期間
2016/09/26(月) 18:00 〜
2017/01/22(日) 00:00

会場

ドワンゴセミナールーム

松竹スクエア13F

ドワンゴセミナールーム

管理者

参加者(45人)

lyrical_logical

lyrical_logical

レベルがわからないのでとりあえず参加枠

tachikoma

tachikoma

I joined プログラミング言語作成ハンズオン!

sifue

sifue

プログラミング言語作成ハンズオンに参加を申し込みました!

oydku

oydku

プログラミング言語作成ハンズオンに参加を申し込みました!

sgykfjsm

sgykfjsm

プログラミング言語作成ハンズオン に参加を申し込みました!

KanSAKAMOTO

KanSAKAMOTO

プログラミング言語作成ハンズオンに参加を申し込みました!

takatori

takatori

プログラミング言語作成ハンズオン に参加を申し込みました!

AoiroAoino

AoiroAoino

プログラミング言語作成ハンズオン に参加を申し込みました!

bati11

bati11

プログラミング言語作成ハンズオンに参加を申し込みました!

KotaInoue

KotaInoue

プログラミング言語作成ハンズオン に参加を申し込みました!

参加者一覧(45人)

補欠者(36人)

masa_nk

masa_nk

プログラミング言語作成ハンズオン に参加を申し込みました!

hiroshipc

hiroshipc

プログラミング言語作成ハンズオン に参加を申し込みました!

shinjyo141

shinjyo141

プログラミング言語作成ハンズオンに参加を申し込みました!

hiroki_yoshitsugu

hiroki_yoshitsugu

プログラミング言語作成ハンズオンに参加を申し込みました!

jang_ist_tot

jang_ist_tot

I joined プログラミング言語作成ハンズオン!

ikuokudo

ikuokudo

プログラミング言語作成ハンズオンに参加を申し込みました!

s_terada

s_terada

プログラミング言語作成ハンズオン に参加を申し込みました!

tasukujp

tasukujp

プログラミング言語作成ハンズオン に参加を申し込みました!

AABB

AABB

プログラミング言語作成ハンズオンに参加を申し込みました!

itoha1028

itoha1028

プログラミング言語作成ハンズオン に参加を申し込みました!

補欠者一覧(36人)

キャンセルした人(59人)