TPKアルゴリズム
TPKアルゴリズムはドナルド・クヌースとルイス・トラブ・パルドがコンピュータのプログラミング言語の進化を説明するために紹介した簡単なプログラムである。1976年8月の論文『プログラミング言語の初期開発』(原題 “The Early Development of Programming Languages” [1])の中で,配列,インデクス,数学的関数,サブルーチン,入出力,条件分岐と繰り返しに関する小さなプログラムを紹介した。次に初期のプログラミング言語でのアルゴリズムの実装を記してその概念がどう表現されるか説明した。
“TPK” の名前について,作者はグリムの法則(ゲルマン語の子音 /t/, /p/と/k/に関する法則),“typical” という語の発音(IPA: [ˈtɪ.pɪ.k(ə)l]),および名前のイニシャル(Trabb Pardo と Knuth)に言及した。クヌースはその論文に基づいたトークで,以下のように述べた:
このテーマがいかに深いかは,人々がどれほどもがき,アイデア一つ一つがどのようにして生まれたのか考えければ理解できない。これを研究するために,—ルイスがこのアイデアの中心的な発案者だと思うが—我々はプログラム—あるいはアルゴリズム—を一つとって,すべての言語でそれをコードに書く。そうして,一つの例から,直ちにその特定の言語の特徴を分析できる。これをTPKプログラムと呼ぶが,これがTrabb PardoとKnuthのイニシャルになっているのはただの面白い偶然に過ぎない。
アルゴリズム
クヌースは以下のように説明する:
「TPKアルゴリズム」と呼ばれる簡単な手続きを導入し,各言語に対してそれぞれ独自のスタイルでプログラムを書くことで特徴を見出した。[…] TPKアルゴリズムは,11個の数![]()
- TPKアルゴリズムのページへのリンク