JOVIAL
JOVIAL,是一種高級編程語言,基於ALGOL 58,主要針對嵌入式系統開發。JOVIAL包含ALGOL標準所沒有的一些特點,如記錄、記錄數組、內聯匯編等。JOVIAL是1960年代至1970年代主要的系統程式語言[2]。
編程範型 | 過程式, 指令式, 結構化 |
---|---|
語言家族 | ALGOL |
設計者 | 系統開發公司 |
實作者 | 軟件工程協會公司[1] |
面市時間 | 1960年 |
型態系統 | 靜態, 強類型, 安全, 結構 |
作用域 | 詞法 |
主要實作產品 | |
MVS, OpenVMS, macOS, Windows, Linux, SPARC, PowerPC, MIL-STD-1750A, 和其他遺留系統 | |
衍生副語言 | |
J3, J3B-2, J73 | |
啟發語言 | |
ALGOL, SAGE | |
影響語言 | |
CMS-2, Coral 66, SYMPL |
歷史
JOVIAL是「Jules Own Version of the International Algorithmic Language.」(朱爾斯自己版本的國際算法語言)一語的縮寫。[3]JOVIAL於1959年由系統開發公司(SDC)的朱爾斯·施瓦茲所領導的團隊發明,用於編寫軍用飛機電子系統的編寫。
在1960年代期間,JOVIAL是美國軍方「L計劃」系列的一部份,特別是ITT 465L戰略空軍司令部控制系統(戰略自動命令與控制系統(SACCS)計劃),其原由是缺乏實時計算編程語言可用。SACCS計劃由國際電話與電報公司(ITT)用主要由SDC編寫的軟件來管理,它大約有95%是用JOVIAL編寫的。這個軟件項目耗時2年和不到1,400程序員人年,不到半自動地面防空系統所需時間的一半[4]。
在1970年代後期和1980年代前期,美國空軍採納了標準化的中央處理器(CPU)MIL-STD-1750A,並為這個處理器編寫了後續的JOVIAL程序。一些商業廠商提供了編譯器和有關的編程工具,用來為處理器比如MIL-STD-1750A建造JOVIAL程序,這包括了高級計算機技術(ACT)、TLD系統、專有軟件系統(PSS)等公司[5][6]。
JOVIAL在1973年被標準化為MIL-STD-1589並在1984年被修訂為MIL-STD-1589C。它仍被於更新和維護老舊軍用車輛和飛行器的軟件。常用有三種方言:J3、J3B-2和J73。
例子
下列例子取自《JOVIAL(J73)語言的計算機編程手冊》[7]:
PROC RETRIEVE(CODE:VALUE);
BEGIN
ITEM CODE U;
ITEM VALUE F;
VALUE = -99999.;
FOR I:0 BY 1 WHILE I<1000;
IF CODE = TABCODE(I);
BEGIN
VALUE = TABVALUE(I);
EXIT;
END
END
這個例子定義了叫做RETRIEVE
的一個過程,它接受一個無符號整數輸入參數CODE
,和一個浮點輸出參數VALUE
。它在數組TABCODE
的前1000
個元素中,查找匹配CODE
的項目,並接着將浮點變量VALUE
設置成,數組TABVALUE
的有相同匹配數組索引的那個元素。如果未找到匹配元素,則VALUE
被設置成−99999.0
。
應用案例
使用嵌入式JOVIAL軟件的著名系統包括:
參考文獻
- ^ Software Engineering Associates, Inc. (SEA). [2023-07-22]. (原始內容存檔於2019-12-21).
- ^ Mature Development Systems, Field Proven on Hundreds of Applications. DDC-I. Phoenix, Arizona. 2020 [2020-04-22]. (原始內容存檔於2023-03-27).
- ^ 存档副本. [2014-08-26]. (原始內容存檔於2018-06-04).
- ^ Campbell-Kelly, Martin. From airline reservations to Sonic the Hedgehog: a history of the software industry . Cambridge, Massachusetts: MIT Press. 2003: 46-7. ISBN 0-262-03303-8.
- ^ Schachter, Oscar. Oral history interview with Oscar Schachter. Charles Babbage Institute (University of Minnesota). 7 May 2004: 17.
- ^ JOVIAL (J73) and MIL-STD-1750A ISA Software Support Tools. Ada–JOVIAL Newsletter (High Order Language Control Facility, Wright-Patterson AFB, U.S. Air Force). September 1993: 21–24.
- ^ Softech, Inc. Computer Programming Manual for the JOVIAL (J73) Language (PDF). Rome, New York: Rome Air Development Center. June 1981: 1 [May 16, 2018]. (原始內容存檔 (PDF)於July 29, 2018).