| パラダイム | 手続き的、命令的、構造化された |
|---|---|
| 家族 | アルゴル |
| デザイン: | システム開発株式会社 |
| 開発者 | ソフトウェアエンジニアリングアソシエイツ[1] |
| 初登場 | 1960年 |
| タイピングの規律 | 静的、強力、安全、構造的 |
| 範囲 | 語彙 |
| 主な実装 | |
| MVS、OpenVMS、macOS、Windows、Linux、SPARC、PowerPC、MIL-STD-1750A、その他のレガシーシステム | |
| 方言 | |
| J3、J3B-2、J73 | |
| 影響を受けた | |
| アルゴル、賢者 | |
| 影響を受けた | |
| CMS-2、コーラル66、SYMPL | |
JOVIALはALGOL 58をベースにした高水準プログラミング言語で、組み込みシステム(通常は機械部品を含むより大規模で完全なデバイスの一部として組み込まれる、1つまたは少数の専用機能を実行するように設計された特殊なコンピュータシステム)の開発に特化しています。1960年代から1970年代にかけて、主要なシステムプログラミング言語でした。 [2]
歴史
_Language.djvu/page1-440px-Computer_Programming_Manual_for_the_Jovial_(J73)_Language.djvu.jpg)
JOVIALは、1959年にジュール・シュワルツ率いるシステム開発会社(SDC)のチームによって、軍用航空機の電子機器用ソフトウェアを作成するために、新しい「高次」[3] : 1 プログラミング言語として開発されました。 [4]
JOVIALという名前は、国際代数言語のJules' Own Version [5] の頭字語です。国際アルゴリズム言語(IAL)は、もともとALGOL 58に対して提案された名前でした。[6] Schwartzによると、この言語はもともとOVIALと呼ばれていましたが、さまざまな理由から反対されました。その後、 Jに意味を付与せずにJOVIALが提案されました。やや冗談めかして、会議の議長であったSchwartzにちなんで言語に名前を付けることが提案され、この非公式な名前が採用されました。[7]
1960年代、JOVIALは、リアルタイムコンピューティングプログラミング言語が不足していたため、米国軍のLプロジェクトシリーズ、特にITT 465L戦略航空指揮統制システム(戦略自動指揮統制システム(SACCS)プロジェクト)の一部でした。国際電話電信社(ITT)が管理し、主にSDCがソフトウェアを書いたSACCSプロジェクトの約95%は、JOVIALで書かれました。ソフトウェアプロジェクトには2年かかり、1,400プログラマ年未満で、 SAGE Lプロジェクトの同等の期間の半分以下でした。 [8]

1970年代後半から1980年代前半にかけて、アメリカ空軍は標準化された中央処理装置(CPU)であるMIL-STD-1750Aを採用し、その後JOVIALプログラムがそのプロセッサ用に構築されました。Advanced Computer Techniques(ACT)、TLD Systems、Proprietary Software Systems(PSS)など、いくつかの商用ベンダーが、MIL-STD-1750Aなどのプロセッサ用にJOVIALを構築するためのコンパイラと関連プログラミングツールを提供しました。 [9] [10]
JOVIAL は 1973 年に MIL-STD-1589 で標準化され、1984 年にMIL-STD-1589Cで改訂されました。古い軍用車両や航空機のソフトウェアの更新と保守に今でも使用されています。一般的に使用されている方言は J3、J3B-2、J73 の 3 つです。
2010年現在[アップデート]、JOVIALはUSAF JOVIALプログラムオフィス(JPO)によって保守および配布されなくなりました。以前JPOによって配布されたソフトウェアは、Software Engineering Associates, Inc.(SEA)の商用リソースを通じて引き続き入手できます。また、Windows、Linux、PowerPC、SPARC、VAX、1750A、PowerPC、TI-9989、Zilog Z800x、Motorola 680x0、IBM System 360、System 370、System z上のMac OS Xなど、他のホスト/ターゲットプロセッサの組み合わせも入手できます。さらに、 Advanced Computer Techniquesの一部を買収したDDC-Iも、2020年4月現在、JOVIALコンパイラと関連ツールをリストしています。[2][アップデート]
JOVIALで実装されているソフトウェアのほとんどはミッションクリティカルであり、メンテナンスがますます困難になっています。2014年12月、1960年代に作成されたJOVIALコードから派生したソフトウェアが英国の航空管制インフラの重大な障害に関係しており、それを使用している機関であるNATSホールディングスは、2016年まで交換が予定されていなかったこのソフトウェアを保守できるようにITスタッフにJOVIALのトレーニングを行う必要があると報告されました。[11]
影響
JOVIALの影響を受けた言語には、CORAL、SYMPL、Space Programming Language(SPL)、そしてある程度はCMS-2などがあります。[12] JOSSに似たJOVIALの対話型サブセットであるTINTは、 1960年代に開発されました。[7]
特徴
JOVIALには、アイテム(現在は構造体と呼ばれる)、アイテムの配列、ステータス変数(現在は列挙体と呼ばれる)、インラインアセンブリ言語など、標準ALGOLにはない機能が含まれています。[13]
また、テーブル内の「パックされた」データに関する規定も含まれていました。テーブル パッキングとは、エントリ内の項目をストレージのワード (データ単位のビット) に割り当てることです。これは、JOVIAL 時代のコンピューティング システムの限られたメモリとストレージに関して重要でした。
Jovial の通信プール (COMPOOL) は、PL/I や C などの言語のヘッダー ファイルのライブラリに似ています。
アプリケーション
組み込み JOVIAL ソフトウェアを使用する注目すべきシステムは次のとおりです。
- ミルスター通信衛星
- 先進巡航ミサイル
- B-52、B-1B、[14] B-2爆撃機
- C-130、C-141、C-17 輸送機
- F-111、F-15、F-16(ブロック50以前)、F-117戦闘機
- ランターン
- U-2航空機
- ボーイング E-3 セントリー AWACS航空機 (ブロック 40/45 以前)
- 海軍イージス巡洋艦
- 陸軍多連装ロケットシステム ( MLRS )
- 陸軍のシコルスキー UH-60 ブラックホークヘリコプター
- F100、F117、F119 ジェットエンジン
- NORAD防空管制システム (ヒューズ HME-5118ME システム)
- NATO防空地上環境(NADGE)システム
- RL10ロケットエンジン
- 民間 NAS (国家空域システム) 航空交通管制
- APG-70、APG-71、APG-73航空機搭載レーダーシステム[15]
例
以下の例はJOVIAL言語(J73)のコンピュータプログラミングマニュアルから引用したものです。[3] : 12
PROC RETRIEVE(コード:値);
始める
アイテムコード U;
項目値 F;
値 = -99999。;
I:0 かつ I<1000 の場合、1 になります。
IFコード = TABCODE(I);
始める
値 = TABVALUE(I);
出口;
終わり
終わり
RETRIEVEこの例では、符号なし整数入力引数CODEと浮動小数点出力引数を取る という名前のプロシージャを定義しますVALUE。 1000 要素の配列TABCODEで に一致するエントリを検索しCODE、浮動小数点変数を、同じ一致する配列インデックスを持つVALUE配列の要素に設定しますTABVALUE。 一致する要素が見つからない場合は、VALUEが に設定されます−99999.0。
参考文献
- ^ “Software Engineering Associates, Inc. (SEA)”. 2019年12月21日時点のオリジナルよりアーカイブ。2006年8月17日閲覧。
- ^ ab 「成熟した開発システム、何百ものアプリケーションで実証済み」。DDC -I。アリゾナ州フェニックス。2020年。 2020年4月22日閲覧。
- ^ ab Softech, Inc. (1981年6月). Computer Programming Manual for the JOVIAL (J73) Language (PDF) . Rome, New York: Rome Air Development Center. p. 1. 2018年7月29日時点のオリジナルよりアーカイブ(PDF) 。 2018年5月16日閲覧。
- ^ シュワルツ、ジュールス I. (1989 年 4 月 7 日)。「ジュールス I. シュワルツとのオーラル ヒストリー インタビュー」。チャールズ バベッジ研究所。ミネソタ大学。シュワルツは、RAND Corporationで、特に半自動地上環境(SAGE) とJOHNNIAC などのさまざまな防衛関連プロジェクトに携わった。RANDがSystem Development Corporationを組織したとき、シュワルツはこの新会社に移った。インタビューの大部分で、シュワルツは SAGE との関わり、AN/FSQ-32コンピュータのタイムシェアリングに関するコンピュータ研究所での役割、コンピュータ ネットワーク、制御システム プロジェクト (TDMS など)、およびJCR Licklider、Lawrence G. Roberts、Robert Saxton Taylorとの交流について説明している。また、Computer Sciences Corporationでのその後の役職についても語っている。
- ^ 「エドとケイ、JOVIALのパイオニア」jovial.com . 2021年2月23日閲覧。
- ^ Shaw, Christopher J. (1963-12-01). 「JOVIAL の仕様」Communications of the ACM . 6 (12): 721–736. doi : 10.1145/763973.763978 . ISSN 0001-0782. S2CID 1427629.
- ^ ab Schwartz, Jules I. (1978年8月8日). 「Jovialの開発」(PDF) . ACM SIGPLAN Notices . 13 (8): 203. doi :10.1145/960118.808385. S2CID 17913060. 2015年1月28日閲覧。
- ^ キャンベル・ケリー、マーティン (2003)。航空券予約からソニック・ザ・ヘッジホッグまで: ソフトウェア産業の歴史。マサチューセッツ州ケンブリッジ: MIT プレス。pp. 46-7。ISBN 0-262-03303-8。
- ^ Schachter, Oscar (2004 年 5 月 7 日)。「Oscar Schachter とのオーラル ヒストリー インタビュー」。チャールズ バベッジ研究所。ミネソタ大学: 17。
- ^ 「JOVIAL (J73) および MIL-STD-1750A ISA ソフトウェア サポート ツール」。Ada –JOVIAL ニュースレター。高位言語制御施設、ライト パターソン空軍基地、米国空軍。1993 年 9 月。21 ~ 24 ページ。
- ^ Rayner, Gordon (2014年12月12日). 「英国のフライトの混乱:航空管制コンピューターは1960年代のソフトウェアを使用している」。デイリー・テレグラフ。 2020年4月21日閲覧。
- ^ デジタルコンピュータ基礎訓練マニュアル、NAVEDTRA 10088-B、アメリカ海軍、1978年
- ^ Halang, Wolfgang A.; Stoyenko, Alexander D. (1991). 予測可能なリアルタイムシステムの構築. Springer Verlag. p. 31. ISBN 978-1-4615-4032-8。
- ^ 「Jovial to Smooth US Air Force shift to Ada」. Defense Electronics . 1984年3月1日. 2012年10月12日時点のオリジナルよりアーカイブ。 2015年1月28日閲覧。
- ^ 「AN/APG-73、戦闘員百科事典」。2004年11月5日時点のオリジナルよりアーカイブ。
外部リンク
- ジョビアルの開発
- 「MIL-STD-1589C、軍事規格: JOVIAL (J73)」(PDF)。米国国防総省。1984 年 7 月 6 日。
- 2006年4月のJOVIALプログラムオフィスのアーカイブ
- Jules Schwartz のページ。JOVIAL の開発に関するユーモラスな講演の映像も含まれています[リンク切れ]
- DODSSP 米国国防総省の軍事仕様、規格、関連出版物の単一ストックポイント
- ソフトウェアエンジニアリングアソシエイツ 2019-12-21 にWayback Machineにアーカイブされました
- DDC-I 株式会社: DDC-I JOVIAL コンパイラ システム (DJCS)
- Ghostarchive と Wayback Machine にアーカイブされています: Schwartz, Jules。Jules Schwartz の JOVIAL に関する講義 (ビデオ)。YouTube。2020年 4 月 22 日閲覧。
- ホーガン、マイケル・オリン。「JOVIALの歴史」カリフォルニア州立大学。 2022年3月11日閲覧。
