| 伍長 | |
|---|---|
| パラダイム | マルチパラダイム: 手続き型、命令型、構造型、機能型 |
| デザイン : | クリストファー・ストレイチー他 |
| 初 登場 | 1963年 (1963年) |
| 影響を受けた | |
| アルゴル60 | |
| 影響を受けた | |
| BCPL | |
CPL(Combined Programming Language)は、1960年代初頭に開発されたマルチパラダイムプログラミング言語です。BCPLやB言語を経て、C言語の初期の祖先にあたります。
CPL [ 1 ]は、当初ケンブリッジ大学数学研究所で「ケンブリッジ プログラミング言語」として開発され、後にケンブリッジ大学とロンドン大学コンピュータユニットの共同で「複合プログラミング言語」として発表されました(CPL は「ケンブリッジ プラス ロンドン」[ 2 ]または「クリストファーのプログラミング言語」[ 3 ]とも呼ばれていました)。クリストファー ストラッチー、デイビッド バロンらがその開発に関わっていました。最初の論文は、ケンブリッジのTitan コンピュータとロンドンのAtlas コンピュータで実装されていた 1963 年に発表されました。
CPLはALGOL 60の影響を強く受けていましたが、ALGOL 60のように極めて小さく、洗練されていてシンプルな言語ではなく、科学計算よりも広い応用分野を想定していたため、ALGOL 60よりもはるかに複雑で洗練されていませんでした。CPLは当時としては大規模な言語であり、ALGOLを超えて産業プロセス制御、ビジネスデータ処理、そしておそらく初期のコマンドラインゲームまで含めることを目指していました。[ 4 ] CPLは、同じ言語を使用して低レベルプログラミングと高レベル抽象化を可能にすることを意図していました。
しかし、CPLの実装は非常にゆっくりとしか進みませんでした。最初のCPLコンパイラはおそらく1970年頃に書かれたと思われますが[ 5 ]、この言語はあまり普及せず、1970年代のある時期に跡形もなく消えてしまったようです。
BCPL(「Basic CPL」の略で、元々は「Bootstrap CPL」)は、CPL をベースにしたはるかにシンプルな言語で、主にシステムプログラミング言語、特にコンパイラの作成を目的としていました。[ 6 ] 1967 年に初めて実装され、CPL の最初の実装よりも前に開発されました。BCPL はその後、 Bを介して、人気があり影響力のあるC プログラミング言語へと発展しました。
Peter Norvigによって定式化された関数 MAX : [ 5 ]
Max(Items, ValueFunction) = 値 § (Best, BestVal) = (NIL, -∞) アイテムが§ (アイテム、値) = (ヘッド(アイテム)、値関数(ヘッド(アイテム))) Val > BestVal の場合、(Best, BestVal) := (Item, Val) Items := Rest(Items) ̸§ 結果は最高です
ここで使用されているセクションの閉じるブロック記号(̸§)は、横線が垂直である元の記号の近似値です。これはUnicodeでとして利用できますが§⃒、多くのシステムでは正しく表示されません。
CPLは1960年代には完全には実装されず、部分的な実装に関する研究はあったものの、理論的な構成物として存在していたと考えられている。[ 7 ] [ 8 ]
Peter Norvig は (Pythonコンパイラ コンパイラである Yapps 用に) 現代のマシン向けのシンプルな CPL からPythonへのトランスレータを作成しました。[ 5 ] [ 9 ]