BuriKaigi 2024に参加してparser generatorの話をしてきた

1月20日に開催されたBuriKaigi 2024に参加するために19日から21日の三日間、富山に行ってきました。

burikaigi.dev

1/19 (0日目)

お昼過ぎに東京駅から北陸新幹線にのって富山駅へ移動しました。 人生3回目の北陸でしたが、はじめての北陸新幹線でした。本当に新幹線は楽で便利。 途中長野を過ぎたあたりから雪が降っていたり、雪が積もっていたりしてこれから雪国にいくんだという気持ちになりました1

夕方には富山駅について夕飯を他のRubyistと一緒に食べ、夜は翌日の発表の準備をして就寝。 街では雪吊や雪囲いを見ることができ、冬の北陸に来たんだなという気持ちになったのでした。

1/20 (カンファレンス当日)

@富山県立大学

会場は富山県立大学 DX教育研究センターというところで最寄駅からもちょっと遠かったので、他のRubyistと一緒にタクシーで向かいました。 会場となったDX教育研究センターは新しい建物で綺麗でよかったですね。 大学内には除雪車があったり、ポールが至るところに立っていたり、建物が渡り廊下で繋がっていたりと雪国の大学だなーとちょっと感動しました。

自分が発表したのはRoom-Hotaruikaという部屋で、他のRubyistの発表も同じ部屋に集中していたので前半はこの部屋にずっといました。

  • "何も知らない課金システムを移行した話" (相生ゆらさん)
  • "ブーリアン:なぜRubyにはBooleanクラスがないのか、クラスを巡る冒険" (大倉雅史さん)
  • "エンジニアとして「事業」作りに関わるということ" (井上周/INOUE Amaneさん)

の3つを聞いたあと小休憩をはさんでから自分の発表でした。

speakerdeck.com

今回はとくにRubyに限らずにLALR parser generatorの作り方のお話をしました。 発表の最初に"パーサーを書いたことがある人"、"パーサージェネレーターを作ったことがある人"と聞いたところ、聞きにきてくれていた人のうち結構な数の人がパーサーを書いたことがあり、ちょっとびっくりしました。

発表後にパーサージェネレーターを自作するのに参考になる本や資料があるかと聞かれたのですが、全体を説明した資料ってあんまりないんですよね。自分がLramaを最初に作ったときもRaccやBisonのコードを結構読んで理解を深めたということもあり、今回"LALR parser generatorの作り方"というテーマで発表しようと思ったのでした。 今回20分では全部のネタを話しきれなかったので、Lramaのコードを参考にしながら説明する形で詳細な解説を書くかもしれません2

自分の発表のあと受付にぶりしゃぶがdeployされたので、ぶりしゃぶを食べたりすこし日本酒を飲んだりしていました。 廊下で@kunitooさんといっぱい話すことができて、大満足です。

そのあとはunvalleyさんの"Biomeの裏側 - Parser / Linter編"を聞いたりしていました。PrettierしかりBiomeしかり日本に開発者がいてparser/lexerの話が聞けるのはよいですね。 発表のあとにunvalleyさんと廊下で話をしてBiomeの実装を読んでみようという気持ちになったので、落ち着いたら読もうと思います。

懇親会

美味しいぶりをいっぱいたべました。お腹いっぱいでもう食べれません。

1/21 (カンファレンス翌日)

友人おすすめの富山市ガラス美術館に行ったりしていました。建物も展示も素敵でとても満足です。

富山銘菓もいろいろと教えてもらったので買ってみました。

佐々木千歳堂さんのお菓子は買いそびれたので次回のお楽しみです。

まとめ

2023年のBuriKaigiの様子をインターネットで見ていて、楽しそう!ずるい!美味しそう!ずるい!と羨んでいたので、今年参加できてよかったです。 発表としてはどこかで話しておきたかったパーサージェネレーターを開発することが話せたので目的は達成されました。 数年ぶりに@kunitooさんとお会いしてお話できて本当によかったです。kunitooさんの鋭い意見やコメントはとても参考になりますし、ほどよい緊張感のある会話は楽しいですね。

今回も含めて3回富山に行っているのにまだ駅の北側に行ったことがないので、次回は富山環水公園や富山県立美術館に行きたいですね。あと路面電車もまだ乗っていないので。

というわけでBuriKaigi 2024を楽しむことができました。運営スタッフの方をはじめ関係者のみなさんありがとうございました!


  1. 雪が降った時のために防水性の暖かい靴を用意していくようにというアドバイスを事前にもらっていてとても助かりました。
  2. 自分のTODOリストには"Ruby Parser開発日誌 (XX) - LALR parser generatorの作り方"というTODOが去年から入っています。