当wikiは、高橋維新がこれまでに書いた/描いたものを格納する場です。

法律学入門 2.趣旨からの解釈
法律学入門 4.基本法の解説

プログラム言語との類似性

 そもそもなぜ解釈問題は生じるのだろうか。それは、ルールが不完全だからである。豚ルールの例で言えば、「豚を食べてはいけない(ただし、豚の毛は除く)」と書かずに、「豚を食べてはいけない」としか書かなかったから、豚の毛を食べていいのかという解釈問題が生じているのである。
 ではルールを(立法段階で)完璧にすれば解釈問題をなくすことができるのだろうか。理論的にはその通りだろう。ただし、ルールを完璧にするのはほとんど不可能なのである。
 何度も述べている通り、解釈問題は例外処理の作業である。例外は、無限に生じる。
「豚の毛は?」
「豚の耳は?」
「豚の皮は?」
「豚の糞は?」
「豚の乳は?」
「豚を食べた肉食動物は?」
「豚の血を吸った蚊は?」
「豚の食べ残した餌は?」
「豚の食べ残した餌を食べた鶏は?」
 これらを全て事前に想定してルールに記載するということはできない。完璧なものでなくとも、できるだけ詳しくしていくことは可能だが、そうするとルールが複雑で膨大なものになってしまう。これは、簡潔だが明文化されていない部分が多いルールと比べると一長一短なので、どちらが優れているとは一概には言えないが。
 ちなみに、このことから分かると思うが、立法段階で考えていることは、解釈問題と同じである。あるルールを作りたいというときに、まずその中心部を決定する。そうすると、周辺にある限界的な事例がボロボロと出てくる。これにその法を適用するかどうかを決めるのである。例えば、子ども手当の法律を作る際に、「14歳以下の子どものいる世帯の世帯主に一定額の金員を交付する」と中心部を定めたとしよう。そうすると、「親も子供も海外に居住している場合はどうするか」という周辺部が出てくる。このとき、趣旨が「日本国内の経済活性化」だとしたら、海外にいる世帯にあげても日本国内の経済の活性化にはつながらないから、交付しないという結論になるだろう(縮小解釈)。逆に、日本国籍を持たない子どもであっても、日本国内に住んでいるのであれば日本経済の活性化に貢献するだろうから、交付するという考え方も出てくる(拡大解釈)。

拡張デスノート言語

 さて人間が作るルールとはことほど左様に曖昧なものであり、常に解釈の余地がある。筆者が言いたいのは、逆にこの点がメリットも生んでいるということである。このことを分かってもらうために、法解釈とプログラム言語を比較対照してみたいと思う。筆者もプログラム言語にはあまり詳しいわけではないので、火傷する危険を負ったうえでの試みである。プログラム言語というだけであまり身構えずに読んでみてほしい。
 コンピュータとは、計算機である。今は計算を複雑に組み合わせることで色々な作業ができるようになっているが、大本のところは今も昔も変わらず計算機であって、できることの基本は電卓と変わらない。とはいえこの計算機は、電卓とは違いもっといろいろな計算ができる。そこで、どのような計算をするかを命令する必要が生じる。この命令に使われるのが、プログラム言語である。命令だけあって「◎◎のときは××をしろ」という内容になる。これは、「要件Aを満たしたときは効果Bが生じる」というルールと非常に似通っている。
 とはいえ違いもある。コンピュータは人間ではないため、解釈という作業ができない。そのため、解釈の余地を一切なくした明快な命令を与えないと、コンピュータは動かなかったり、誤作動したりして、望む結果を得られない。そのことを身をもって体感してもらうために、実際にプログラム言語がどのようなものかを紹介する。そこで出てくるのがデスノートである。読者は面食らうかもしれないが、これもプログラム言語を分かりやすく紹介するために筆者なりに腐心した結果である。今しばらくお付き合いいただきたい。
 デスノートとは、知らない人のために説明すると、同名の漫画作品に登場する特殊な機能を持ったノートである。そのノートに人名を書き込むと、その人を殺すことができるのである。死因も特定できるため、複雑な死因を書き込めば、その人の死の間際の行動をある程度コントロールできる。原作に登場するデスノートは、名前を書き込む際にその人の顔を思い浮かべる必要があるため、同姓同名の別人が殺されることはない。とはいえこれだと一回の記入につき一人しか殺せないことになり、少々困るため、多少機能を拡張して、集団的な殺人もできることにしよう。例えば「日本人」「男」「満年齢70歳以上のカリフォルニア州民」といったような集合的な指定もできることにするのである。これを拡張デスノートと呼ぶことにする。
 この拡張デスノートと同じシステムを現実に作ることができるだろうか。例えば、地球の周囲に攻撃衛星を複数配置して、その衛星に「◎◎を殺せ」という命令を与えさえすれば、衛星がレーザー砲なりなんなりを発射して、地球上のどこにいようが殺すことができることにしたとしよう。そのような衛星を複数配置することは大変だろうが、これはできたとする。ここで注目したいのは、衛星よりも、殺す人を指定するシステムである。
 衛星にはコンピュータが内蔵されており、ここに全地球人の個人情報のデータベースが入っている。このデータベースの中から、実際に殺す人をプログラム言語で指定することになる。プログラム言語にも種類があるが、今回使うのは、筆者がほんの少しかじったことのあるSQLという言語を元にして作った、拡張デスノート言語というオリジナルのものである。オリジナルだが、プログラム言語の雰囲気は感じていただけると思う。なお、厳密に言うとSQLも拡張デスノート言語もプログラム言語ではなくデータベース言語なのだが、いずれも計算機とコミュニケーションをとるときに用いる言語という意味では共通性があるため、両者の違いにはあまりこだわらない。このへんでもう火傷をしている感覚はものすごくあるのだが、無視して先に進んでほしい。
 衛星のコンピュータに内蔵されているデータベースは、以下のようなものである。全地球人の情報が入っているので、本当はもっと多い。また個人情報の項目は、ここに挙げたもの以外にも、親族関係とか、婚姻歴とか、DNAとかも考えられるが、とりあえずこれぐらいでいいだろう。

ID国籍性別本籍住所生年月日
1日本田中隆夫東京都調布市××北海道札幌市○○1978.8.8
2日本高橋花子東京都狛江市××北海道富良野市○○2002.10.13
3日本西郷従道東京都町田市△△北海道北斗市○○1943.1.9


 さてプログラム言語でこのデータベースの中の誰かを指定するわけである。プログラム言語は大抵の場合英語を元にしており、また動詞と目的語の組み合わせで分を作る。拡張デスノート言語にもいくつか使える動詞があるが、まずはSELECTを使ってみよう。これは、データベースのデータを参照するための動詞である。

SELECT ID,姓,名

 これはデータベースに格納されているデータのうちIDと名字と名前を表示せよという命令文である。IDと名字と名前を表示しろとしか言っていないので、国籍や住所は表示されず、上記の例だと以下のような感じで表示される。
1田中隆夫
2高橋花子
3西郷従道



 とはいえ、この例では特に記すべき人の指定をしていないので、70億人全員分のIDと姓と名が表示される。
 これがプログラム言語によるコミュニケーションの特徴であって、コンピュータは言われたことは完璧にやってくれるが、言われていないことは一切やらないし、言われたことは律義に全てやってしまうのである。自分で勝手に解釈をして、命令の内容を拡大したり縮小したりということはない。さすがに70億人分は多いということで、日本人の男だけを表示したい場合は、where節で条件を指定すればよい。

SELECT ID,名字,名前 where 国籍=”日本”,性別=”男”

このように、where節ではコンマで区切って複数の条件を指定することができる。
さて、次は実際に殺す人を指定してみよう。この際に使う動詞がKILLである。まず上記の西郷従道さんを殺したい場合はどうするか。

KILL where 名字=”西郷”,名前=”従道”

このようになる。以下の文では駄目である。

KILL 西郷従道

 これでは、「西郷従道」という名前の人を殺すのか、「西郷従道」という性別の人を殺すのか、「西郷従道」という国籍の人を殺すのかが分からない。人間が聞けば瞬時に分かるだろうが、コンピュータはこういうこともいちいち指定して、明快な命令を与えないと動かないのである。きちんと名字が「西郷」で、名前が「従道」の人を殺せと言ってやる必要がある。
 そして、これだと、名字が西郷で名前が従道の人間が漏れなく殺される。同姓同名の人間がいると、その人たちは皆殺しである。ここにも「言われたことは全てやってしまう」というコンピュータの弊害が表れている。目当ての西郷従道一人を殺したい場合は、例えばSELECTで名字が西郷で名前が従道の人を全て呼び出して、目当てが誰であるかを確認したうえで、そいつのみを指定するような命令文を書く必要がある。例えば以下の分であれば目当ての西郷従道一人を殺すことができる。

KILL where ID=3


 これで大体分かったと思うが、プログラム言語で動くコンピュータの長所と短所をまとめると
仝世錣譴燭海箸漏亮造砲笋辰討れるため、人間を使った場合とは異なりここでの間違いは基本的に生じない
言われたことは、命令者にとって望まないことでも漏らさずやってしまう
8世錣譴討い覆い海箸楼貔擇笋辰討れない。逆の見方をすれば、余計なことは一切しない。
ぬ仁瓩鰐晴である必要がある。曖昧な命令では誤作動や不動の危険があるため、命令作りに労力がかかる。

 人間が言語を用いてコミュニケーションをする場合の利点と欠点はこの裏返しである。人間が言語を用いる場合、言われたことをやらない、あるいは言われていないことをやってしまうリスクがある一方で、曖昧な命令でも、命令者の意図を汲んで、明確に言われていないことをやったり、言われたことをやらなかったりすることができるといった利点がある。何より、事後的な解釈による補充ができるので、命令をする際にあまり神経質になる必要がない。人間はこの解釈という作業によってコミュニケーションの速度を飛躍的に上げているのである。
 解釈という作業は、人間にしかできない。今のところ、コンピュータにはできない。そういう意味で、人間でもないのに解釈をやっているものは押しなべてものすごいことをやっているのである。名前さえ書けば書かれた文字列が「名前」であると理解して命令を実行するデスノート、「いばらき〜」とさえ言えば茨城か茨木か、茨城だとしたらどこかなどを瞬時に判断して目的地につなげるどこでもドア、「日本人を殺せ」とさえ命令すれば、「日本人」かどうかを国籍/住所/本人の意識などといった要素のうちどれから判断するかを決定して命令を実行するルルーシュのギアスなど、フィクションではこのような存在の例は枚挙に暇がない。

法律学入門 2.趣旨からの解釈
法律学入門 4.基本法の解説

Menu

メニューサンプル1

メニューサンプル2

開くメニュー

閉じるメニュー

  • アイテム
  • アイテム
  • アイテム
【メニュー編集】

管理人のみ編集できます