| パラダイム | 手続き的、命令的、構造化された |
|---|---|
| 家族 | ウィルト ALGOL |
| デザイン: | ニクラウス・ヴィルト、 ジョセフ・W・ウェルズ・ジュニア、 エドウィン・サッタースウェイト・ジュニア |
| 開発者 | スタンフォード大学 |
| 初登場 | 1966年 |
| タイピングの規律 | 静的、強い |
| 範囲 | 語彙(静的) |
| 実装言語 | ALGOL、次にPL360 |
| プラットフォーム | バロウズ B5000、IBM システム/360 |
| 影響を受けた | |
| ALGOL、実行システム問題指向言語(ESPOL) | |
| 影響を受けた | |
| アルゴルW | |
PL360 (またはPL/360)は、ニクラウス・ヴィルトが設計し、ヴィルト、ジョセフ・W・ウェルズ・ジュニア、エドウィン・サッタースウェイト・ジュニアがスタンフォード大学のIBM System/360コンピュータ用に書いたシステムプログラミング言語である。PL360の説明は1968年初頭に公開されたが、実装はヴィルトが1967年にスタンフォードを去る前に完了していたと思われる。[1]
説明
PL/360は、 ALGOLに似た構文を持つワンパスコンパイラであり、アセンブリ言語に似た[a]機械語(言語)命令とレジスタを正確に指定する機能を提供するだけでなく、複雑な算術式や制御構造など、高級プログラミング言語によく見られる機能も提供します。WirthはPL360を使用してALGOL Wを作成しました。
データ型は次のとおりです: [2] : 8
- バイトまたは文字 – 1 バイト
- 短整数 – 2バイト、2の補数バイナリ表記の整数として解釈されます
- 整数または論理 - 4 バイト、2 の補数バイナリ表記の整数として解釈されます。
- 実数 – 4 バイト、基数 16 ( 16 進数) の短い浮動小数点数として解釈されます。
- 長実数 – 8 バイト、16 進数の長浮動小数点数として解釈されます。
レジスタには、整数、実数、または長整数実数を含めることができます。
個々の System/360 命令は、フォーマットと操作コードによって命令を定義する PL360「関数ステートメント」を使用してインラインで生成できます。関数引数は、命令内のフィールドに順番に割り当てられます。例[説明が必要]は次のとおりです。
例
R0、R1、R2、および FLAG は事前に宣言された名前です。
BEGIN INTEGER BUCKET ; IF FLAG THEN BEGIN BUCKET := R0 ; R0 := R1 ; R1 := R2 ; R2 := BUCKET ; END ELSE BEGIN BUCKET := R2 ; R2 := R1 ; R1 := R0 ; R0 := BUCKET ; END RESET ( FLAG ) ; END
実装
Wirth は 1963 年から 1967 年までスタンフォード大学に在籍し、その初期にはオイラーコンパイラとインタープリタを開発していました。そのソースは 1965 年のものです。また 1965 年に、スタンフォード大学はドラム ストレージを備えたコア メモリベースのB5000 を、ディスク ストレージを備えたコア メモリ ベースの B5500 に更新しました。
ターゲットのIBM S/360(既存のIBM 7090を置き換える予定だった)は1967年まで導入されなかったため、PL360の最初の実装はALGOLで書かれ、スタンフォードのB5500でテストされた。[3]動作が確認されると、コンパイラはPL360で再コーディングされ、バロウズシステムで再コンパイルされ、バイナリファイルとしてS/360に移動された。[1] : 66
B5500 は、高級 ALGOL 派生言語であるExecutive Systems Problem Oriented Language (ESPOL) でプログラムされており、PL360 は IBM メインフレーム アーキテクチャに同等の機能をもたらすことを目的としていましたが、 Assembler Fと ESPOLの両方の主要な機能が欠けていました。この意図はほとんど無視され、プログラマーは IBM のマクロ アセンブラの実装を使い続けました。
しかし、1970 年代初頭に、PL360 はより多くの機能を提供するために拡張され、スタンフォード大学のデータベース管理システムであるStanford Physics Information Retrieval System (SPIRES)の開発に選択されたプログラミング言語となりました。
参照
注記
- ^ しかし、暗黙的なアドレス指定機能がない。例えば、
USING
参考文献
- ^ ab Wirth, Niklaus (1968 年 1 月). 「PL360、360 台のコンピュータのためのプログラミング言語」. Journal of the ACM . 15 (1): 34–74. doi : 10.1145/321439.321442 . S2CID 7376057.
- ^ Wirth, Niklaus (1965 年 12 月 24 日)。360 台のコンピュータのためのプログラミング言語(PDF) (技術レポート)。スタンフォード大学。CS33。
- ^ Satterthwaite, E. (1968 年 3 月)。「Operating System/360 内のサブシステムの構築に関する注記」(PDF)。p. 1。CGTM #43。
外部リンク
- Wirth, Niklaus (1965 年 12 月 24 日)。360 台のコンピュータ用のプログラミング言語(PDF) (技術レポート)。スタンフォード大学。CS33。
- Malcolm, Michael A. (1972 年 5 月)。PL360 (改訂版) 360 コンピュータ用プログラミング言語(PDF) (技術レポート)。スタンフォード大学。STAN-CS-71-215r。
- PL360 教科書
- PL360@エブリシング2
