| パラダイム | マルチパラダイム: 手続き型、命令型、構造化型、機能型 |
|---|---|
| デザイン: | Christopher Strachey他 |
| 初登場 | 1963年 |
| 影響を受けた | |
| アルゴル60 | |
| 影響を受けた | |
| BCPL | |
CPL ( Combined Programming Language ) は、 1960 年代初頭に開発されたマルチパラダイム プログラミング言語です。BCPLおよびB言語を経てC 言語の先祖となります。
デザイン
CPL [1]は当初、ケンブリッジ大学の数学研究所で「ケンブリッジプログラミング言語」として開発され、後にケンブリッジ大学とロンドン大学コンピュータユニットが共同で「複合プログラミング言語」として公開されました(CPLは「ケンブリッジプラスロンドン」 [2]または「クリストファーのプログラミング言語」[3]というニックネームで呼ばれることもあります)。クリストファー・ストラチー、デビッド・バロンなどが開発に携わりました。CPLについて説明した最初の論文は1963年に発表されましたが、当時はケンブリッジのタイタンコンピュータとロンドンのアトラスコンピュータに実装されていました。
CPLはALGOL 60の影響を強く受けていましたが、極端に小さく、洗練されていてシンプルというわけではなく、科学的計算よりも広い応用分野を対象としていたため、ALGOL 60よりも複雑で洗練されていませんでした。CPLは当時としては大きな言語でした。CPLはALGOLを超えて、産業プロセス制御、ビジネスデータ処理、そしておそらく初期のコマンドラインゲームも含めようとしました。[4] CPLは、同じ言語を使用して低レベルのプログラミングと高レベルの抽象化を可能にすることを目的としていました。
しかし、CPLの実装は非常にゆっくりとしたものでした。最初のCPLコンパイラはおそらく1970年頃に書かれましたが、[5]この言語はあまり人気を得ることはなく、1970年代のある時点で跡形もなく消えてしまったようです。
BCPL(「Basic CPL」の略だが、元々は「Bootstrap CPL」)は、CPLをベースにした非常にシンプルな言語で、主にシステムプログラミング言語、特にコンパイラを書くための言語として意図されていました。[6] CPLが最初に実装される前の1967年に初めて実装されました。その後、BCPLはBを経由して、人気があり影響力のあるCプログラミング言語につながりました。
例
ピーター・ノーヴィグによって定式化された関数MAX: [5]
Max(Items, ValueFunction) = 値 § (ベスト, ベスト値) = (NIL, -∞) アイテムは§ (アイテム、値) = (ヘッド(アイテム)、値関数(ヘッド(アイテム))) Val > BestVal の場合、(Best, BestVal) := (Item, Val) アイテム := 残り(アイテム) ̸§ 結果は最高です̸§
ここで使用されている終了セクション ブロック記号 ( ̸§) は、元の記号の近似値であり、横線が垂直になっています。これは Unicode では として使用できますが§⃒、多くのシステムでは正しく表示されません。
実装
CPLは1960年代には完全には実装されておらず、部分的な実装に関する研究がいくつか行われた理論的な構成として存在していたと考えられています。[7] [8]
Peter Norvigは、 PythonコンパイラであるYapps用に、現代のマシン向けのシンプルなCPLからPythonへのトランスレータを作成しました。[5] [9]
参照
参考文献
- ^ Barron, DW; Buxton, JN; Hartley, DF; Nixon, E.; Strachey, C. (1963 年 8 月 1 日). 「CPL の主な機能」. The Computer Journal . 6 (2): 134–143. doi : 10.1093/comjnl/6.2.134 . ISSN 0010-4620.
- ^ 「CPLとBCPLに関するClive Featherの見解」 Lysator.liu.se . 2013年8月18日閲覧。
- ^ Jensen, Richard (2020年12月9日). 「「なんて愚かなことをするんだ」—Cの起源」Ars Technica . 2020年12月10日閲覧。
- ^ Yadav, P. (2005). コンピュータと言語. Discovery Publishing House. ISBN 978-81-8356-041-2。
- ^ abc Norvig, Peter (2011年8月23日). 「先見の明はあるが完璧ではない: 1966年のScientific Americanのシステム分析に関する記事を振り返る」. Scientific American Blog Network . 2020年12月10日閲覧。
- ^ ミッチェル、ジョン C.;アプト、クリストフ(2003)。プログラミング言語の概念。ケンブリッジ大学出版局。ISBN 978-0-521-78098-8。
- ^ Coulouris, GF (1968 年 1 月 1 日). 「ロンドン CPL1 コンパイラ」.コンピュータジャーナル. 11 : 26–30. doi : 10.1093/comjnl/11.1.26 .
- ^ Coulouris, George (2013). 「Computer Resurrection Issue 62 / The Compiler Compiler - Reflections of a User 50 Years On / The CPL1 Compiler」. Computer Conservation Society . 2023年5月3日閲覧。
- ^ Norvig, Peter. 「Complete Annotated Checkers Program」. norvig.com . 2021年6月11日閲覧。
文献
- BCPLがCPLからどのように進化したか、マーティン・リチャーズ、2011年 [1]
- クリストファー・ストラチーの文書集成、CPL に関するセクション、オックスフォード大学ボドリアン図書館所蔵、CSAC 71.1.80/C.136-C.184
- D. W. Barron、J. N. Buxton、D. F. Hartley、E. Nixon、C. Strachey。「CPL の主な機能」The Computer Journal 6 :2:134-143 (1963)、オンラインで入手可能。
- J. Buxton、J. C. Gray、D. Park. CPL 初級プログラミングマニュアル、第 2 版 (ケンブリッジ) (1966)。
- ロンドン大学コンピュータサイエンス研究所およびケンブリッジ数学研究所。CPLワーキングペーパー(1966年)。
