【iOSDC Japan 2023 レポート】「正規表現を”微分”する!?爆速で自作できる正規表現エンジン」を聞いてきた。

2023.09.03

はじめに

年に一度のiOSエンジニアの為のお祭り iOSDC Japan 2023に参加しています。

せっかくなので、参加したセッションのレポートを書きたいと思います。

正規表現を"微分"する!?爆速で自作できる正規表現エンジン

登壇者

概要

昨年の「正規表現って結局何なのさ?〜エンジニアのためのコンピューターサイエンス入門〜」では主に理論の面から正規表現が何なのか話をさせて頂きました。

対して今年は実際に正規表現エンジンの実装に関する話をします。

正規表現エンジンの実装ではオートマトン型と仮想マシン型が主流です。

前者は正規表現から決定性有限オートマトンを、後者は、正規表現をバイトコードにコンパイルし仮想マシンを作成する方法です。

いずれの方法でも正規表現からオートマトンや仮想マシンを生成しなければならず、その実装はそれなりに大変です。

しかし正規表現が文字列にマッチするかどうかの判定であれば正規表現を"微分"するという方法があるのです。

本セッションではその原理と簡易的な実装を紹介します。

またオートマトン型、VM型との比較も可能な限りお伝えします。

引用: fortee

資料

感想

正規表現って結局何なのさ?正規表現ってなんだか難しい。という先入観があるので、もう少し正規表現に寄り添うという意味でもお話を聞いてきました。

去年も正規表現に関する登壇をされており、その時もとてもわかりやすく説明されていました。

前回の復習から始まり、

  • 正規表現を"微分する"とは
  • 自作エンジンを作成

そして、登壇内で登場した自作エンジンはGItHub - MyRegexから確認することができ、SPM対応されているとのことです。

ただ、このエンジンを実用で使う時は来ないだろうとおっしゃられていましたが、、w

なので、リポジトリにも注意書きがあります。

これは理論上の説明のみを目的としたサンプルであり、実用的なものではありません。

分かりやすい資料を通じて、正規表現がどのような動きになっているのか視覚的にもわかりやすかったです。少し正規表現に寄り添えた気がします。 毎回資料がカッコよいのでフォントを参考にしたい。

おわりに

少しずつ正規表現に寄り添えている気がするので来年もお願いします。

iOSDC 2023 レポート関連

Day0

Day1