JOVIAL

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

 历史 

JOVIAL是“Jules Own Version of the International Algorithmic Language.”（朱尔斯自己版本的国际算法语言）一语的缩写。JOVIAL于1959年由（SDC）的所领导的团队发明，用于编写军用飞机电子系统的编写。

在1960年代期间，JOVIAL是美国军方“L计划”系列的一部份，特别是（（SACCS）计划），其原由是缺乏实时计算编程语言可用。SACCS计划由国际电话与电报公司（ITT）用主要由SDC编写的软件来管理，它大约有95%是用JOVIAL编写的。这个软件项目耗时2年和不到1,400程序员人年，不到半自动地面防空系统所需时间的一半。

在1970年代后期和1980年代前期，美国空军采纳了标准化的中央处理器（CPU）MIL-STD-1750A，并为这个处理器编写了后续的JOVIAL程序。一些商业厂商提供了编译器和有关的编程工具，用来为处理器比如MIL-STD-1750A建造JOVIAL程序，这包括了（ACT）、、专有软件系统（PSS）等公司。

JOVIAL在1973年被标准化为MIL-STD-1589并在1984年被修订为MIL-STD-1589C。它仍被于更新和维护老旧军用车辆和飞行器的软件。常用有三种方言：J3、J3B-2和J73。

例子
下列例子取自《JOVIAL(J73)语言的计算机编程手册》：
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软件的著名系统包括：

 AGM-129先进巡航导弹
 B-52同温层堡垒轰炸机、B-1枪骑兵轰炸机、B-2幽灵战略轰炸机
 C-130運輸機、洛克希德C-141"星"式运输机、波音C-17环球霸王III运输机
 F-111战斗轰炸机、F-15鹰式战斗机、F-16战隼战斗机、F-117夜鷹戰鬥攻擊機
 LANTIRN
 U-2侦察机
 E-3空中預警機
 神盾戰鬥系統
 M270多管火箭系統
 UH-60黑鹰直升机
 F100渦輪扇發動機、普惠 F119渦輪扇發動機
 北美空防司令部
 RL10火箭发动机

参考文献

Category:ALGOL程式語言家族
Category:系統程式語言