新機能 イベントの「参加者への情報」欄に Markdown をご利用いただけるようになりました。詳しくは こちら をご確認ください

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

May

12

構文解析ハンズオン 関西出張版

関西でも構文解析ハンズオン

Organizing : kmizu

Registration info

参加枠

1000(Pay at the door)

FCFS
28/40

チューター枠

Free

FCFS
2/2

Description

資料について

詳しい経緯については、ここから読んでください。

現実的な数の参加者が居そうなので、いよいよ構文解析ハンズオン 関西出張版を開催したいと思います。ハンズオンでは、個々の参加者のJavaに関する知識(Javaを実装言語に使う場合)、構文解析に関する前提知識があるかどうかが重要だと実感したので、登録の際にアンケートに答えていただくことにしました。多少手間をおかけしますが、ご協力お願いいたします。

イベントについて

このイベントは構文解析器(パーザー)を作るためのハンズオン企画(第三回目)です。第一回目、二回目については 以下のURLを参照してください。

構文解析といっても、あまり身近に感じられない人もいるかもしれません。しかし、実際には、構文解析(器) は実用プログラムに必要不可欠といっていいものです。

Webサービス間でのデータのやり取りをするための標準的な言語になったJSON、これをプログラムから取り扱うには、 JSONのデータを構文解析して、木構造データとしてプログラムから扱えるように加工する必要があります。CSVを 解析してカンマ区切りの行から各項目を取り出すのも広い意味での構文解析です。Webサービスでの入力について、 特定の規則に従っているかをチェックするのも構文解析です。

既存のよく知られたデータ形式については構文解析器があらかじめ用意されていることが多いですが、 独自のデータ・フォーマットとその構文解析器を書く必要があることもあります。このとき、特に Webサービスでのバリデーションでは、正規表現を使ってアドホックなチェックを行うことが少なく ありませんが、入力が複雑になると正規表現では手に負えないか、とてつもなくメンテナンス性の低い 正規表現を書く羽目になります。

こののハンズオンでは、実際に手を動かしてもらい、構文解析の基礎について学んでいただきます。第一回はPEG、第二回はANTLRを ベースとして開催してみましたが、いきなりツール(ANTLR)を使って学んでもらうのはかなりハードルが高いという結論に達しました。そのため、第一回の、PEGを使った手書き構文解析器の書き方を教えるときに使ったテキストをベースに、様々な修正を加えた感じのテキストで学習してもらう予定です。

これまでもそうでしたが、今回も、実装に使うプログラミング言語はJavaです。実際には、JavaScriptでもRubyでもPythonでもいいのですが、わたしが最も慣れているというのと、ユーザ人口が多い点を考慮してJavaにさせていただきました。

  • 整数・小数の構文解析
  • 括弧を含む数式の構文解析
  • 正規表現の構文解析
  • JSONの構文解析

といった題材を通じて、構文解析器の書き方の定石、とりわけ、再帰的な構造を持つ言語を構文解析する 方法について学んでいただくのが狙いです。


参加資格:

  • Javaで普通のプログラムが書ける(具体的には以下を参照)
  • Javaで、プログラムを複数のクラスに分割することができる
  • for,while,switch,throwといった各種制御構造を使うのに不自由しない
    • 特に、try-catchを使った例外のハンドリングを普通に書ける
  • プログラムを複数のメソッドに分割することができる
  • 自分で複雑な構文解析器が書けるようになりたい
  • 休日を一日使っても構わない

チューター募集: チューターを上限2名まで募集したいと思います。構文解析器を書くのに慣れている人や、LL法や 再帰下降構文解析といった言葉を聞いてひるまないような人であれば大丈夫です。

チューターに応募された方は、専用のSlack Teamに招待しますので、そこでより詳細な点について 連絡・議論をしたいと思います。基本的には、当日、自分の手が回らない部分に関して、質問に関する 受け答えや、(答えられない場合)私へ質問をフォワードしてもらうのが主な役割になります。特に お礼は用意できないのが心苦しいのですが、その代わり、チューターの方は懇親会に無料で参加できる ようにします。


プログラム

  • 10:30 開場
  • 11:00~11:10 諸連絡・チューター紹介
  • 11:10~12:00 構文解析の基本: @kmizu
  • 12:00~13:00 昼食休憩

  • 13:00~13:15 数値の構文解析(講義): @kmizu
  • 13:15~14:00 数値の構文解析(ハンズオン): @kmizu
  • 14:00~14:10 休憩
  • 14:10~14:25 単純算術式の構文解析(講義): @kmizu
  • 14:25~15:10 単純算術式の構文解析(ハンズオン): @kmizu
  • 15:10~15:20 休憩
  • 15:20~15:35 算術式の構文解析(講義): @kmizu
  • 15:35~16:20 算術式の構文解析(ハンズオン): @kmizu
  • 16:20~16:30 休憩
  • 16:30~16:45 正規表現の構文解析(講義): @kmizu
  • 16:45~17:30 正規表現の構文解析(ハンズオン): @kmizu
  • 17:30~17:40 休憩
  • 17:40~17:55 JSONの構文解析(講義): @kmizu
  • 17:55~18:40 JSONの構文解析(ハンズオン): @kmizu
  • 18:40~18:50 クロージング

会場について

会場は、株式会社はてな様のセミナールームです。当日は、住所にあるビルの8Fに来てください。

参加費について

当初、私の交通費と宿泊費+懇親会費のために、一人当たり2000円の予定でしたが、株式会社エフ・コード 様から費用が出ることになったため、懇親会費として一人当たり1000円としました。当日、懇親会参加希望の 方から徴収しますので、懇親会参加される方はおつりが要らないように事前に1000円札を用意しておいてください。


当日までの準備について

当日のハンズオンをスムーズに進めるために、以下のソフトウェアについて事前にインストールをお願いします。

Java SE 10

Java SE 10をダウンロード・インストールしておいてください。また、javacにパスを通しておいてください。Java SEは以下のURLからダウンロード可能です。誤って、JREのみをダウンロードされる 方がこれまでも一定数見られましたので、注意してください。 http://www.oracle.com/technetwork/jp/java/javase/downloads/index-jsp-138363.html

Apache Maven

ビルドツールとして、Apache Mavenを使います。各OSのパッケージマネージャからインストールするか、ここからダウンロード及びインストールして、パスを通してください。 できれば、当日までにMavenの基本的な使い方(`mvn compile` や `mvn test` など)は学習しておいて欲しいですが、Mavenに対する深い理解はなくてもかまいません。

Media View all Media

If you add event media, up to 3 items will be shown here.

Feed

kmizu

kmizu wrote a comment.

2018/01/26 07:55

チューター枠の参加募集を追加忘れていたので追記しました。。チューターの方に謝礼が出せる程ではないのが心苦しいのですが、チューターの方には懇親会に無料で出られるようにします。

kmizu

kmizu published 構文解析ハンズオン 関西出張版.

01/25/2018 17:14

構文解析ハンズオン 関西出張版 を公開しました!

Group

Ended

2018/05/12(Sat)

10:30
19:00

Registration Period
2018/01/18(Thu) 17:00 〜
2018/05/11(Fri) 23:30

Location

株式会社はてな 8Fセミナールーム

京都府京都市中京区御池通間之町東入高宮町206 御池ビル8F

Organizer

Attendees(30)

Takeda Toyofumi

Takeda Toyofumi

構文解析ハンズオン 関西出張版に参加を申し込みました!

kmizu

kmizu

構文解析ハンズオン 関西出張版 に参加を申し込みました!(主催者本人です)

haljik

haljik

構文解析ハンズオン 関西出張版 に参加を申し込みました!

t_

t_

構文解析ハンズオン 関西出張版 に参加を申し込みました!

tan_go238

tan_go238

構文解析ハンズオン 関西出張版 に参加を申し込みました!

tanishiking

tanishiking

構文解析ハンズオン 関西出張版 に参加を申し込みました!

USHITO Hiroyuki

USHITO Hiroyuki

I joined 構文解析ハンズオン 関西出張版!

tunemage

tunemage

構文解析ハンズオン 関西出張版 に参加を申し込みました!

aa7th

aa7th

構文解析ハンズオン 関西出張版 に参加を申し込みました!

kazuhito_m

kazuhito_m

構文解析ハンズオン 関西出張版 に参加を申し込みました!

Attendees (30)

Canceled (18)