JOVIAL [1] is a high-order computer programming language similar to ALGOL, but specialized for the development of embedded systems. JOVIAL is an acronym for “Jules Own Version of the International Algorithmic Language”. It was developed to compose software for the electronics of military aircraft by Jules Schwartz in 1959. But is JOVIAL really cheerful and friendly?
Jovial is based on Algol-58, but includes features such as assembly level inserts, records and array of records, and is used extensively in USAF applications. It is reasonably well structured and has rudimentary typing, is readable and simple, and produces fast code. Jovial was used extensively in the 1970s and 1980s to develop software for a broad range of military and aerospace systems. Among these are the B-52, B-1, and B-2 bombers, C-130, C-141, and C-17 transport aircraft, F-15, F-16, F-18, and F-117 fighter aircraft, E-3 Sentry AWACS aircraft, Navy Aegis cruisers, Army Multiple Launch Rocket System (MLRS), and the Army UH-60 Black Hawk helicopters.
For many years it ran the air traffic control systems of many countries, but these have been slowly replaced with more agile systems. That is, except in the United Kingdom. In December 2014, a disruption to the air traffic control infrastructure in the vicinity of London and southeast England was caused by problems with the National Airspace system, which is written in, you guessed it – Jovial. They are using software reminiscent of the 1960s.
Here’s an example of a Jovial function to calculate a factorial:
PROC FACTORIAL(ARG) U;
BEGIN
ITEM ARG U;
ITEM TEMP U;
TEMP = 1;
FOR I:2 BY 1 WHILE I<=ARG;
TEMP = TEMP*I;
FACTORIAL = TEMP;
END
Here the function has one parameter, ARG of type U (unsigned), and returns a type U. The return value is set when TEMP is assigned to FACTORIAL. (Note that earlier definitions of the language were messier).
NB: The language was originally suppose to be called OVIAL – Our Version of the International Algebraic Language. However it was the late 1950s, and OVIAL suggested it was related to the birth process, which wasn’t deemed that acceptable!
[1] Cheatham, T.E., “A brief description of JOVIAL”, Abstract SIGPLAN Notices, Vol.14(4) (1979).