JOVIAL,是一种高级编程语言,基于ALGOL 58,主要针对嵌入式系统开发。JOVIAL包含ALGOL标准所没有的一些特点,如记录、记录数组、内联汇编等。JOVIAL是1960年代至1970年代主要的系統程式語言英语system programming language[2]

JOVIAL
编程范型过程式, 指令式, 结构化
语言家族ALGOL
設計者系统开发公司英语System Development Corporation
實作者软件工程协会公司[1]
发行时间1960年,​64年前​(1960
型態系統静态, 强类型, 安全, 结构英语Structural type system
作用域词法
主要實作產品
MVS英语MVS, OpenVMS, macOS, Windows, Linux, SPARC, PowerPC, MIL-STD-1750A, 和其他遗留系统
衍生副語言
J3, J3B-2, J73
啟發語言
ALGOL, SAGE
影響語言
CMS-2英语CMS-2, Coral 66英语CORAL, SYMPL英语SYMPL

历史

编辑
 
JOVIAL (J73)语言的计算机编程手册

JOVIAL是“Jules Own Version of the International Algorithmic Language.”(朱尔斯自己版本的国际算法语言)一语的缩写。[3]JOVIAL于1959年由系统开发公司英语System Development Corporation(SDC)的朱尔斯·施瓦兹英语Jules Schwartz所领导的团队发明,用于编写军用飞机电子系统的编写。

在1960年代期间,JOVIAL是美国军方“L计划”系列的一部份,特别是ITT 465L战略空军司令部控制系统英语ITT 465L Strategic Air Command Control System战略自动命令与控制系统英语Strategic Automated Command and Control System(SACCS)计划),其原由是缺乏实时计算编程语言可用。SACCS计划由国际电话与电报公司(ITT)用主要由SDC编写的软件来管理,它大约有95%是用JOVIAL编写的。这个软件项目耗时2年和不到1,400程序员人年,不到半自动地面防空系统所需时间的一半[4]

在1970年代后期和1980年代前期,美国空军采纳了标准化的中央处理器(CPU)MIL-STD-1750A,并为这个处理器编写了后续的JOVIAL程序。一些商业厂商提供了编译器和有关的编程工具,用来为处理器比如MIL-STD-1750A建造JOVIAL程序,这包括了高级计算机技术英语Advanced Computer Techniques(ACT)、TLD系统英语TLD Systems、专有软件系统(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软件的著名系统包括:

参考文献

编辑
  1. ^ Software Engineering Associates, Inc. (SEA). [2023-07-22]. (原始内容存档于2019-12-21). 
  2. ^ Mature Development Systems, Field Proven on Hundreds of Applications. DDC-I. Phoenix, Arizona. 2020 [2020-04-22]. (原始内容存档于2023-03-27). 
  3. ^ 存档副本. [2014-08-26]. (原始内容存档于2018-06-04). 
  4. ^ 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. 
  5. ^ Schachter, Oscar. Oral history interview with Oscar Schachter. Charles Babbage Institute (University of Minnesota). 7 May 2004: 17. 
  6. ^ 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. 
  7. ^ 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).