ESM アジャイル事業部 開発者ブログ

永和システムマネジメント アジャイル事業部の開発者ブログです。

RubyKaigi 2025 に永和システムマネジメントから @koic @junk0612 の2人が登壇します

2025年4月16日(水) から18日(金) の3日間にわたって開催される RubyKaigi 2025 に永和システムマネジメントから @koic (Day 2) 、 @junk0612 (Day 2) の2人が登壇します。

rubykaigi.org

ここでは、それぞれの登壇者から講演内容について軽く紹介をします。

4月17日(木) 14:40-15:10 @koic 『RuboCop: Modularity and AST Insights』

@koic です。今年は『RuboCop: Modularity and AST Insights』というタイトルで話します。

rubykaigi.org

キーワードは3つ「プラグイン、アドオン、AST」です。

プラグインとは最近 RuboCop に導入したプラグインシステムです。bundle update rubocop を行った際に遭遇した開発者もいるのではと思いますが、その背景なども踏まえて話します。プラグインには利用者と開発者のそれぞれ向けのマイグレーションパスがあり、その裏側について知る機会になると思います。rubocop-xxx (例えば rubocop-performance, rubocop-rails, rubocop-rspec) といった感じの自作を含めた RuboCop 拡張の利用者ならびに開発者の方は、ぜひ聞いてもらえると「そういったことか。」がわかるようになると思います。

アドオンは Ruby LSP Add-on という Ruby LSP への RuboCop 組み込みに関する話です。こちらは既存の Ruby LSP に対して機能が十分でないため、まだ直接的なユーザー影響はないと思うのですが、今後 Ruby LSP のバックエンド RuboCop をどのような位置付けにしたいのか、またその過程でのユーザー影響もあわせてお話しすることになりそうです。

最後に AST ですが、これは今後の RuboCop のバックエンドパーサーに関する話になります。昨年の RubyKaigi 2024 のトークで伝えたとおり、現在の RuboCop はバックエンドパーサーとして、Parser gem と Prism (正確には Prism::Translation::Parser) を選択できるようにしていますが、それを踏まえてバックエンドパーサーの現状と近未来のヴィジョンを語ります。また、RuboCop にとってベターな AST とは何か?といった課題についても述べますので、その辺りは RubyKaigi で議論したいテーマの呼び水となるかもしれません。こちらのバックエンドパーサーについても、近未来でユーザー影響がある話になると思いますので、ぜひ聞いてもらいたいトピックです。

そんな感じで、今年は RuboCop ユーザーにいくらかの影響が起きるトークを引っ提げての登壇です。今年もこれを30分で話すの?誰が?という盛り盛りな感じになりそうですが、様式美なので仕方ないですね。

昨年話した『RuboCop: LSP and Prism』の続編みたいな側面もありますので、昨年のトークは LSP や Prism について事前知識の予習になると思います。よければご参照ください。

rubykaigi.org

もちろん独立したトークとして楽しめるようにしますので、お楽しみに。

4月17日(木) 16:20-16:50 @junk0612 『The Implementations of Advanced LR Parser Algorithm』

@junk0612 です。今年は『The Implementations of Advanced LR Parser Algorithm』というタイトルで発表します。

rubykaigi.org

発表のテーマをひとことで言うなら「IELR とはなにか?」になりそうです。

この1年、Lrama に IELR という "Advanced LR Parser Algorithm" を実装してきましたが、その道のりはひたすらに論文との格闘でした。実装しては論文と向き合って少しずつ理解を深め、それをまた実装に反映し……という地道な進み方でしたが、一年という長い期間じっくり向き合ったことで多くの気づきを得ました。それらをまとめ、理論面と実践面の2つに大きく分けてお話しします。

  • デファクトスタンダードである LALR にはどんな問題があるのか
  • その問題を IELR ではどうやって解決しようとしているのか
  • IELR と既存の手法にはどのような違いがあるのか
  • Lrama において IELR はどのように実装されたのか
  • IELR を適用すると Lrama-gen parser はどのように変わるのか

などが主なトピックになる予定です。

昨年の発表を話したことをある程度前提に置かないとおそらく発表時間内におさまらないので、可能であれば予習をしておいていただけるとより楽しめる内容になると思います。

rubykaigi.org

ちなみに、IELR に関する理論・実装の発表は Ruby に限らず稀有であり、またある程度複雑な文法構造を持ち、かつ広く使われている (つまりRuby のような) 言語に対して適用してパーサーを生成する例というのも調べる限りでは出てきません。コンピュータサイエンス的に見ても意義のある発表になると思いますので、お時間がある方はぜひお越しください。


それでは本編をお楽しみに。愛媛県松山市の会場でお会いしましょう。

RubyKaigi 2025 に Drinkup スポンサーとしても参加している永和システムマネジメントでは、Ruby とアジャイルソフトウェア開発や構文解析器の研究を通じてコミュニティと成長したいエンジニアを絶賛募集しています。

agile.esm.co.jp