PL/I(ピーエルワン)は汎用
プログラミング言語の一つであり、科学技術、工業、商業などの幅広い用途での
データ処理を主な目的に設計されています。
1964年に誕生したPL/Iは、教育機関や商業、工業分野で多く使用されてきました。
PL/Iの命名と呼称
PL/Iという名称は「programming language one」から来ており、最初は「NPL」として提案されました。また、当初は「PL/1」という表記も使われていましたが、その後ローマ数字の表記である「PL/I」が正式な名称となりました。この名称は、同時に開発されていた
IBMの階層型データベース照会言語「DL/I」との一貫性を持つとも考えられています。
PL/Iの言語としての特徴
PL/Iは、次のような言語の特徴を兼ね備えています。
- - FORTRANの記述形式
- - COBOLのレコード構造や入出力機能
- - ALGOLのアルゴリズム記述能力
このように、PL/Iは異なる
プログラミング言語の良いところを取り入れており、
予約語が存在しないため、より柔軟なプログラミングが可能です。
PL/Iの利点と欠点
長所
- - 商業計算と科学技術計算を一つの言語で実現
- - 初めから構造化された設計
- - 段階的に学べる積み木構造の機能\
- - IBMメインフレーム(OS/390|OS_390、z/OSなど)での広範な使用
短所
- - 複雑な言語仕様は当時の小型機では性能上の問題を引き起こし、大型機に限定されがちだった
PL/Iの歴史
PL/Iは
1963年に
IBMとそのユーザー団体であるSHAREにより提案され、
1965年に
IBMによって完成されました。
1979年にはISOで標準化され、科学技術計算に特化したFORTRANや、ビジネス処理向けの
COBOLといった既存の言語に対抗する形で開発されました。特に、
ALGOLに匹敵するアルゴリズム記述能力が付加され、PL/Iは多様なニーズに応える能力を持つ言語として評価されています。
一方で、言語仕様の複雑さから、大型計算機以外ではあまり使用されなかったという記録もあります。しかし、
デジタルリサーチ社の
ゲイリー・キルドールが
インテルのi8080に対応したサブセット版のPL/Mを開発し、オペレーティングシステム
CP/M|CP_Mを構築した事例もあります。また、
CP/M|CP_M上で動作するPL/Iのバージョン(PL/I-80)も存在していました。さらに、
UNIX開発のきっかけとなったMulticsもPL/Iで書かれていました。正確な理由ではありませんが、Multicsの失敗がその後の
C言語の成立に影響を与えたとも言われています。
現在の利用状況
2016年時点では、銀行の勘定系システムの多くが依然として
COBOLやPL/Iで記述され続けており、その信頼性が評価されています。PL/Iは特に
IBMのメインフレーム環境でその存在感を発揮しています。
エピソード
PL/I
コンパイラで使用されるメッセージIDには「
IBM」が最初に付けられており、それは
IBMがPL/I開発に力を入れていたことを反映しています。また、BSDがネットワークサポートを追加した際、referenced structure に関するコメントとして「CはPL/1ではない」という一言が添えられたというエピソードがあります。
結論
PL/Iは、複雑な仕様により特定の環境向けに特化しているものの、その多機能性と適用領域の広さによって、今なお多くのシステムで利用されています。