热门问题
时间线
聊天
视角
JOVIAL
来自维基百科,自由的百科全书
Remove ads
JOVIAL,是一种高级编程语言,基于ALGOL 58,主要针对嵌入式系统开发。JOVIAL包含ALGOL标准所没有的一些特点,如记录、记录数组、内联汇编等。JOVIAL是1960年代至1970年代主要的系统程式语言[2]。
Remove ads
历史

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。
Remove ads
例子
下列例子取自《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
。
Remove ads
应用案例
使用嵌入式JOVIAL软件的著名系统包括:
参考文献
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads