本務先のページにいずれ書き加えたいこと

本務先の研究室サーバに置いている「書評」のページに書き加えたいけど、まだ考えがまとまっていないことを、とりあえず、ここに書いておく。考えがまとまったら本務先ページに反映させたい。

数理論理学を学ぶために最低限必要なセンスが三つあると指摘している。

  • シンタックスとセマンティクスが区別できること
  • オブジェクトレベルとメタレベルが区別できること
  • シンタックスとセマンティクスの区別と、オブジェクトレベルとメタレベルの区別が、区別できること

書き加えたいことはいくつかあるが、いずれもこれに関すること。

三つめについて

初期には、最後の一つがなく「二つのセンス」だった。

三つめを加えたきっかけは、何かの文書を読んだことだった。その文書では、シンタックスとセマンティクスの区別は何ページも使ってきっちりと解説し、また、オブジェクトレベルとメタレベルもきちんと区別して解説していた。それなのに、どうも変だと感じた。じっくり読んで、その文書の書き方では、シンタックスとセマンティクスの区別とオブジェクトレベルとメタレベルの区別を、同じものだと読者に誤解させるおそれがあることが理由だとわかった。そこで、三つめのセンスを自分のページに書き加えた。

その文書が何だったかが、今となってはわからない。数学啓蒙書の可能性が高いのだが、心当たりを何冊か探して読んだが、まだ、該当するものをみつけることができないでいる。

リハビリに適した本について

三つの必須なセンスを持たなくても、日常的な論理の感覚をたよりに数理論理学がわかっているつもりになることはできると書いた。そして、その状態からのリハビリに適した入門書を二冊紹介した。

嘘は書いていないのだが、今の書き方では、その二冊の本に上記の三つのセンスについて論じている部分があると誤解されるおそれがある。内容を絞ってそのかわりにみっちり解説した入門書を読むと、なぜか、上記の三つのセンスがいつのまにか身に付くだろうという主旨なのだが、そこを誤解のないよううまく表現できないでいる。

数理論理学とプログラミング、特に基幹ソフトウェアのプログラミングについて

対象も論理、それを分析する手段も論理、を循環論法のように感じる人がいるそうだが、私は、そのように感じたことは一度もなかった。Cで書かれたCコンパイラをブートストラップでビルドするのと、同じ感覚だったからだ。

また、若いころに出会った先人たちにも、ロジシャン兼システム系プログラマのような人が多かった。

個人的な経験を(過度に)一般化して、プログラミング、特にOSや言語処理系などの基幹ソフトウェアのプログラミングの経験は数理論理学を学ぶのに役立つと、かつては思っていた。最近、そうでもないのではと思ってきた。単に、ロジシャンに必要な能力とシステム系プログラマに必要な能力に、共通部分が多いだけではないかと考えが変わってきた。