BQP

同型への憧憬

 例えば私は高校生のころに読んだ本で、生物とプログラミング言語Lispの自己記述性、自己参照性の類似性、よりかっこつけて言えば同型であることについて非常に感動を覚え、興奮したのを覚えています。これは、単なる帰納に対して演繹がきちんと訓練されていない状態、演繹の元となる知識が少ない状態ではすこぶる難しいということが原因であったのかもしれません。あるいはそうであっても、私はそれに感動を覚えたというのは事実です。見たことのない、まるで宇宙人のような、あるいは転校生のような新たな類似性、同型の指摘はぞくぞくとするものです。
 プログラミング言語Lispの特徴を一言で表すのならば、プログラムを書き換えるプログラムとでもいいましょうか。プログラムを書き換えるプログラムが存在するということは、プログラムとプログラムが処理する対象の間に壁はなく、プログラムを処理するプログラムとプログラムとの間にも、プログラムを処理するプログラムを処理するプログラムとプログラムの間にもありません。Lispにとってメタであることは、自然なことなのです。そして、これは私達にとっても自然なことではないでしょうか。何かの課題、例えばスポーツである条件を満たすことを求められるとします。この時、私たちはどのようにこれに応えるでしょうか。まずその条件をみたすことができるかを考え、できないなら訓練をするように考える。自分を書き換えるという行為は普遍的であり、書き換えるという意思を、訓練しようとする意思を持つことは訓練を要するものではありません。では、私たちはどのようにして、この能力を得たのでしょうか?
 自らを書き換えるという行為、これは私たちの体それ自体が、ある大きな系、システムの中の構成要素であるということから可能になります。大気、温度、音、光、話し声、思考、体性感覚といったありとあらゆる「環境」と「人間」は相互作用をしています。ここで、どこからどこまでが環境かあるいは人間であるかはまったくもって問題ではありません。重要なのは環境というのはそれ自体が流動する系であり、その中に人間という境界が不定形な入れ物が漂っているということだけです。人間は、人間の意思によって環境と相互作用を行い、自らを変化させます。環境はただ変化するだけです。ですが、その環境は変化するだけで内側に意思を内包し、人間の自己書き換えを実現してしまいます。
 環境は物理的な背景によって裏打ちされています。これに対し、プログラミング言語は物理的な背景にもう一段、計算機的な層を持っています。物理が情報処理だという考えも入れてしまえばこの2つの層は同じではありますが、それはさておき、プログラミング言語では言語処理系という環境とプログラムという人間が相互作用を行います。ここでも、環境と人間の境は不安定です。プログラムはどちらでしょうか? データはどうか、あるいは言語処理系といってもライブラリはどうだ、のように。
 このような同型について、これを知ったからといって、何が変わるのかという向きもあるでしょう。それは想像力の欠如というものでしょう。私は想像というよりも妄想して楽しめます。より発展的なことは「GEB」を読むことによって得られるでしょう。