Masakazu Yoshida

アルゴリズムと法律

2014-01-07 10:01

奈良税務署から西の空を眺める

年末調整の事務をしました。毎年この時期に源泉税の計算をして、給与支払報告書や法定調書合計表を作成するのだけれど、プログラミングを生業(なりわい)にする者として、いつも感じる不満があります。

それは、「年末調整のしかた」という紙の冊子ではなく、計算機でそのまま実行できるプログラム・コードとして、源泉所得税の計算方法を提供してくださいということです。

毎年、ぶ厚い冊子(今年の分は104ページもあります:「平成25年分 年末調整のしかた」、国税庁)を送っていただくのですが、「電子計算機等による年末調整」のセクションは、たった2ページしかありません。言い換えると、残りの102ページは、この2ページに書かれている内容を、手作業で実行する場合の具体的な手順(アルゴリズム)を日本語で説明し直しているにすぎません。

私は、毎年送られてくる冊子の「電子計算機等による年末調整」のセクションを見て、ごく短かいプログラム(100行以下)を自分で書いています。プログラムを書くこと自体は大きな手間ではありませんが、書いたプログラムをテストをして、プログラムが正しく税額を計算できていることを確認するのが大変です。書くのは数分、簡単なテストに小一時間かかる見当でしょうか。法律--税法は、毎年細かく変るので、プログラムは毎回修正しなければなりませんので、とにかく面倒です。

法律は計算機がない時代からあって、計算機が今ほど生活の隅々に入り込み、ごく当たり前の道具になるような状況を予期していないということがあるかもしれません。また、アルゴリズムの考え方が、法律の専門家にとって馴染みがないこともあるかもしれません。しかし、法律そのものを純粋なアルゴリズムとして書くことは難しいとしても、参照用としてプログラム・コードを付記したり、配布することは可能なはずです。

プログラムは、一回書いて公開すれば、だれでも、何千万回でも、追加コストなしで利用できます。また、紙の冊子を編集して、印刷して、送付する莫大なコストもそれなりに削減できるでしょう。

関係各位にお願い: 税金の計算については、アルゴリズムを計算機で実行できるプログラム・コードとして提供していただけないでしょうか。今なら、Python(人気のあるプログラム言語の一つ)、Ruby(同じく人気があるプログラム言語の一つ)あたりで書いておけば、プロからは「なかなかわかっているじゃないか」というポジティブな評価になると思います。あ、OCaml(少しマニアックなプログラム言語の一つ)で書いたものもあると、私はうれしいです。