フォン・ノイマン・スタイルからプログラミングを解放できるか? 関数型スタイルとそのプログラム代数
John Backus
IBM Research Laboratory, San Jose
従来のプログラミング言語はますます巨大になっているが、より強力にはなっていない。最も基本的なレベルに内在する欠陥によって、それらは肥大化すると同時に弱体化している。その欠陥とは、共通の祖先であるフォン・ノイマン・コンピューターから受け継いだ、単語を一つずつ処理する原始的なプログラミング・スタイル、意味論と状態遷移との密接な結合、プログラミングを式の世界と文の世界に分割すること、既存のプログラムから新しいプログラムを構築するための強力な結合形式を効果的に利用できないこと、そしてプログラムについて推論するために有用な数学的性質を欠いていることである。
これに代わる関数型のプログラミング・スタイルは、プログラムを作成するための結合形式の利用を基盤とする。関数型プログラムは構造化データを扱い、多くの場合、反復的でも再帰的でもなく、階層的に構成され、引数に名前を付けず、手続き宣言の複雑な機構を必要とせずに一般的に適用可能となる。結合形式は高水準のプログラムを用いて、従来の言語では不可能なスタイルで、さらに高水準のプログラムを構築できる。
関数型のプログラミング・スタイルには、変数がプログラムの範囲を取り、演算が結合形式であるプログラムの代数が伴う。この代数は、プログラムを変形したり、「未知数」がプログラムである方程式を、高校の代数で方程式を変形するのとほぼ同じ方法で解いたりするために使用できる。