舎路(シアトル)日記

シアトルで働く日本人プログラマの日記です。

Rust のパーサコンビネーターの一つ、nom についての論文である、Writing parsers like it is 2017 を読んだ。著者らが「2017年らしく」と設定する基準は

  • C/C++ ではなく安全な言語を使うこと
  • 手書きの parser ではなく parser combinator を使うこと

正直そこまで目新しくはない。

どちらかというと、Rust + nom が実現する C/C++ との親和性とパフォーマンスでもって、既存のアプリケーションの一部を置き換えられることを示すべく、VLC の FLV パーサーや、Suricata という IDS (Intrusion Detection System - 侵入検知システム) の TLS パーサーを、実際に Rust で書き直してみせているのが見所かと思う。

いまどきのパーサーがどうあるべきかについては、IntelliJ の Rust プラグインや、Rust コンパイラをあえて使わない Language Server の Rust Analyzer の開発で知られる、Aleksey Kladov がブログに書いていた、Modern Parser Generator が「IDE のことをちゃんと考える」という視点を持ち込んでいて新鮮だった。