「プログラマーと法学」刑法199条をプログラムコードで書く

改正民法第166条1項(消滅時効)と刑法199条(殺人罪)をプログラミングしてみる

最終更新日:2017年9月17日

プログラマーと法律は親和的 刑法はプログラムコードであらわせる

法学の勉強は言語の勉強に似ているとよく言われます。
法学特有の単語や用法・文法が多いですし、日々使うことによって身についていきます。
辞書を引くのも一緒です。
ですが、私は個人的に言語学習に似ていると思ったことがありません。

むしろ、プログラムに似ていると思っています。

どちらも論理的です。
パンデクテン方式の法律は、より一層プログラムに似ています。

刑法には刑法の基本的な考え方やルールがあるように、
C言語にC言語の、PythonにはPythonのルールがあります。

総論部分は、その言語のビルトイン関数やグローバル関数です。
各論部分が、個別のプログラムのコード、CLASSや関数ですね。

法律問題を考えるときの頭の使い方と、プログラムを設計しているときの頭の使い方、結構似ている気がするんです。

大前提・小前提から結論を導く三段論法、プログラムでもIF文やループ文で使っているような。

ほかにも、法律でよくある「準ずる」というやつ。
「Aはこう。BはAに準ずる。ただし・・・」みたいに書いている。
これは 「クラス A」から「インスタンスA」と「インスタンスB」を作るコードと同じです。

ちょっと試しに、いくつかの条文を、もっとも利用者の多いプログラミング言語(※)である「JavaScript」っぽい形式で書いてみます。
http://namaristats.com/ より

改正民法第166条1項をプログラミング言語風に書いてみる

(債権等の消滅時効)
1 債権は、次に掲げる場合には、時効によって消滅する。
 一 債権者が権利を行使することができることを知った時から5年間行使しないとき。
 二 権利を行使することができる時から10年間行使しないとき。

改正民法第166条関数

const 改正民法第166条 = (主観的起算点からの年月, 客観的起算点からの年月, 時効の更新, 時効の完成猶予) =>  {
  if(((主観的起算点からの年月)> 5年) or (客観的起算点からの年月 > 10年)) {
    if(時効の更新 === false && 時効の完成猶予 === false) {
      return 債権等は時効により消滅;
    }
  }
}

刑法をプログラミング言語風に書いてみる 刑法199条

第199条
人を殺した者は、死刑又は無期若しくは5年以上の懲役に処する。

刑法199条関数

const 刑法199条 => (もの) {
   if(人を殺した?)  {
     刑 = 死刑 or  懲役(無期 or 5年以上);
     return [刑] に処す;
   } else if (未遂?){
        刑法203条 () ;
   } else {
       return  無罪;
   }
}
懲役関数

const 懲役 = (年数) =>  {
  if(年数 = 無期) {
    return 無期懲役;
  } else {
    return [年数]の懲役;
  }
}

ちょっと何気に適当に書いてみたけど、結構面白い。
条文数の少ない法律をちょっと本気でプログラミングしてみようかしら。
(国家賠償法ほど少ないとつまらないけど)

プログラムは更新されるのを前提として設計したり、アジャイル開発でリーリスしたりします。
法律も同じように、ある程度改正されることを前提としているところがあります。
時限立法なんて、年数の部分だけ改正されることも多い。

プログラムの設計をするときって、いろいろと考えます。
いろいろな例外対応を設けます。
ユーザーが何をしても、壊れたりセキュリティーホールが出来ないように。
可能な限り、あらゆる事態を想定し対応します。
そのときの想定をテスト仕様書の元にしたりもします。

法律も同じ。
「こんな時は」「こんな時は」と想定します。
ただし、大きな違いがひとつ。
法律は司法裁量があります。
社会的変動に対応するため、あるいは立法関係者の裏の思惑を隠すため、わざと曖昧な表現をする法律もあります。
プログラムでこんなことをしたらバグになります。
もちろん、将来的な拡張や仕様変更を想定して作るのは普通ですが、公開バージョンではそのような曖昧なところは塞ぐのが普通です。

ちょっとこのへん、もっと深く考えてみようかな。
これから、あるいは今でも、ほとんどの人はプログラムを学習するようになるでしょう。

法をプログラムコードにして学習する方法を確立すれば、多くの人が法律になじむようになるかもしれない。
もちろん、プログラム法学の効果は入門程度で、それ以上の学習は難しい言葉や六法と格闘する必要はある。
それでも、多くの人は法曹になるわけではなく、今必要な法律を知りたいだけ。
難しい法律用語と格闘しなくても、条文の内容が手に取るようにわかるようになる、かもしれない。

コメント(0)

  • ※コメント確認画面はありません。
  • ※コメント投稿後は再読み込みをしてください。
CLOSE ×