EBNF立法論

法律を読むのが好きだ。ソースコードと同じで。 [asin:483991265:title=Code Reading] の帯の煽り文句が「コードは小説よりも面白い」でしたが、「法律は小説よりも面白い」……こともある。

プログラミングと契約書起案の類似点 というのを michy さんという方が指摘してらっしゃる。この方は法務だから専門家としての意見な訳だけれど、私の素人考えとしては、法律そのものとプログラミング言語もよく似ている気がする。たとえば、手続き法の一部はそのまんまオートマトンに落とせそう。それ以外でも、規制法の類は自然状態での自由度や挙動という仮定があって、その下で制約を与えて全体の挙動を制御するわけで、考え方として論理型言語や宣言型言語に近い部分があると思う。

法の制御の下に発生する構造がいかなるものであるのか、その中での人間の欲得を色々想像してみたり、あるいは立法段階でのいろいろな駆け引きを調べてみたり妄想してみたり、このたびも大幅改正されました会社法を無責任に横目で眺めてみたり、個人情報保護法対応の予算確保をどうお客さんにせっつくか考えてみたり、法学上のいろんな学説を眺めて感心してみたり。素人——非当事者だからできる楽しみ方も混ざってるけど、とにかくそんな感じで法律を読むのにはソースコードを読むのと同種の楽しみを感じる。

サークルの先輩で今は法曹界に身を置いてる人も、大学進学の時に第2志望は数学だったと言ってるし、やっぱり数理と法律には近い部分があるのかもしれない。

まぁ、実社会の法務とは全然レベルが違うのだけれど、学生時代、ちょっと法務っぽいことはやったことがある。学校の生徒会運営規則が、三権分立思想の下に規定された結構長大なもので、執行部の暴走を許さず、学校側の無制限な介入も許さないという利点の反面、結構扱いづらいものでもあったのだ。自然とそれを扱う専門家が発生してきて、私もその一人だったんだな。当時、生徒会規則は全部暗記してたし、その規則と学則やその他諸々の下で何ができて何ができないのか、正当な手続きをするためにはどうすればいいかとか、あとあとを考えてうまく組織が動いて行くにはどう書面を書けばいいかとか、そんなことをサジェストする立場にあった。あれは楽しい経験だったように思う。

で、その経験から1つだけ法律の世界に文句を言いたいのは、「まわりくどくて可読性に欠ける」。正確を期さなければならないっていうのは分かるし、それを求めるが故に一般人から見ればまわりくどく理屈っぽくなってしまうのはソフトウェア開発も数学も同じだから理解できるつもり。でも違うのは、「何でもっと記法を工夫しないの?」っていうこと。手続き法とか用語定義の条文なんてEBNF使えばもっと可読性がよくなるじゃないさ。ほとんど同じ文句が何回も繰り返される条文を、間違い探しみたいな気持ちで読んでいくのは偶に飽きてくる。「第○○項を準用する。ただし、××については……」ってのも、共通部分はくくりだそうよ〜。パラメータ化してもいいし、テンプレートメソッドパターンでもいいし。言いたいことは分かるけど、mergeしないと読めないから読みづらいんだよね。別の法律を参照してるならともかく、同じ法律の中で前の条文を参照してこれをやってるのを見ると、「コピペコーディングするな」と言いたくなる。司法試験を通る頭なら、EBNFくらい説明されればすぐ分かるでしょ? 法律家の先生たち、お願いします。これからは法律はEBNFを積極的に使いましょう。EBNF立法の時代です。【訳わか】