ArticleslgStudy

science

JOVIAL

JOVIAL is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand JOVIAL rather than just read about it. In short: JOVIAL is a high-level programming language based on ALGOL 58, specialized for developing embedded systems (specialized computer systems designed to perform one or a few dedicated functions, usually embedded as part of a larger, more complete device, including mechanical parts). It was a major system programming language through the 1960s and 1970s.

JOVIAL — main illustration
JOVIAL — illustration

Key takeaways

  • JOVIAL belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect JOVIAL to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of JOVIAL from memory before moving on to harder problems.

Reference excerpt

JOVIAL is a high-level programming language based on ALGOL 58, specialized for developing embedded systems (specialized computer systems designed to perform one or a few dedicated functions, usually embedded as part of a larger, more complete device, including mechanical parts). It was a major system programming language through the 1960s and 1970s.

History

JOVIAL was developed as a new "high-order" programming language starting in 1959 by a team at System Development Corporation (SDC) headed by Jules Schwartz to compose software for the electronics of military aircraft. The name JOVIAL is an acronym for Jules' Own Version of the International Algebraic Language; International Algorithmic Language (IAL) was a name proposed originally for ALGOL 58. According to Schwartz, the language was originally called OVIAL, but this was opposed for various reasons. JOVIAL was then suggested, with no meaning attached to the J. Somewhat jokingly it was suggested that the language be named after Schwartz, since he was the meeting chairperson, and this unofficial name stuck. During the 1960s, JOVIAL was a part of the US Military L-project series, particularly the ITT 465L Strategic Air Command Control System (the Strategic Automated Command and Control System (SACCS) project), due to a lack of real-time computing programming languages available. Some 95 percent of the SACCS project, managed by International Telephone & Telegraph (ITT) with software mainly written by SDC, was written in JOVIAL. The software project took two years and fewer than 1,400 programmer years, less than half of the equivalent time in the SAGE L-project.

During the late 1970s and early 1980s, the United States Air Force adopted a standardized central processing unit (CPU), the MIL-STD-1750A, and subsequent JOVIAL programs were built for that processor. Several commercial vendors provided compilers and related programming tools to build JOVIAL for processors such as the MIL-STD-1750A, including Advanced Computer Techniques (ACT), TLD Systems, Proprietary Software Systems (PSS), and others. JOVIAL was standardized during 1973 with MIL-STD-1589 and was revised during 1984 with MIL-STD-1589C. It is still used to update and maintain software on older military vehicles and aircraft. There are three dialects in common use: J3, J3B-2, and J73. As of 2010, JOVIAL is no longer maintained and distributed by the USAF JOVIAL Program Office (JPO). Software formerly distributed by the JPO is still available through commercial resources at Software Engineering Associates, Inc., (SEA) as are other combinations of host/target processors including Windows, Linux, Mac OS X on PowerPC, SPARC, VAX, 1750A, PowerPC, TI-9989, Zilog Z800x, Motorola 680x0, and IBM System 360, System 370, and System z. Further, DDC-I, which acquired parts of Advanced Computer Techniques, also lists JOVIAL compilers and related tools as of April 2020. Most software implemented in JOVIAL is mission critical, and maintenance is growing more difficult. In December 2014, it was reported that software derived from JOVIAL code produced in the 1960s was involved in a major failure of the United Kingdom's air traffic control infrastructure, and that the agency that uses it, NATS Holdings, was having to train its IT staff in JOVIAL so they could maintain this software, which was not scheduled for replacement until 2016.

Influence Languages influenced by JOVIAL include CORAL, SYMPL, Space Programming Language (SPL), and to some extent CMS-2. An interactive subset of JOVIAL called TINT, similar to JOSS was developed in the 1960s.

Features JOVIAL includes features not found in standard ALGOL, such as items (now called structures), arrays of items, status variables (now called enumerations) and inline assembly language. It also included provisions for "packed" data within tables. Table packing refers to the allocation of items within an entry to words of storage (bits in a unit of data). This was important with respect to the limited memory and storage of the computing systems of the JOVIAL era. The Communication Pool (COMPOOL) in Jovial is similar to libraries of header files for languages such as PL/I and C.

Applications Notable systems using embedded JOVIAL software include:

Milstar communications satellite Advanced Cruise Missile B-52, B-1B, B-2 bombers C-130, C-141, C-17 transport aircraft F-111, F-15, F-16 (prior to Block 50), F-117 fighter aircraft LANTIRN U-2 aircraft Boeing E-3 Sentry AWACS aircraft (Prior to Block 40/45) Navy Aegis cruisers Army Multiple Launch Rocket System (MLRS) Army Sikorsky UH-60 Black Hawk helicopters F100, F117, F119 jet engines NORAD air defense & control system (Hughes HME-5118ME system) NATO Air Defence Ground Environment (NADGE) system RL10 rocket engines Civil NAS (National Airspace System) Air Traffic Control APG-70, APG-71, and APG-73 airborne radar systems

Example The following example is taken from Computer Programming Manual for the JOVIAL (J73) Language.

This example defines a procedure named RETRIEVE which takes an unsigned integer input argument CODE and a floating-point output argument VALUE. It searches the 1000-element array TABCODE for an entry that matches CODE, and then sets the floating-point variable VALUE to the element of array TABVALUE having the same matching array index. If no matching element is found, VALUE is set to −99999.0.

References

External links The Development of Jovial "MIL-STD-1589C, Military Standard: JOVIAL (J73)" (PDF). United States Department of Defense. 6 Jul 1984. April 2006 archive of the JOVIAL Program Office Page on Jules Schwartz, including film of a humorous talk on the development of JOVIAL DODSSP U.S. Department of Defense Single Stock Point for Military Specifications, Standards and Related Publications Software Engineering Associates Archived 2019-12-21 at the Wayback Machine DDC-I, Inc.: DDC-I JOVIAL Compiler System (DJCS) Archived at Ghostarchive and the Wayback Machine: Schwartz, Jules. Jules Schwartz lecture on JOVIAL (video). YouTube. Retrieved 2020-04-22. Hogan, Michael Olin. "The History of JOVIAL". California State University. Retrieved Mar 11, 2022.

Illustrations

JOVIAL: Pin button showing JOVIAL as one of the languages that Advanced Computer Techniques made cross-compilers for
Pin button showing JOVIAL as one of the languages that Advanced Computer Techniques made cross-compilers for

Worked examples

Example 1 — a first encounter with JOVIAL

Start with the simplest possible case. Write down what JOVIAL claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to JOVIAL before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about JOVIAL ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of JOVIAL

In research
JOVIAL appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses JOVIAL in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
JOVIAL is common in secondary-school and first-year university syllabi. It links to neighbouring topics ALGOL 58 dialect, Avionics programming languages, High-integrity programming languages, so understanding it makes those chapters shorter.
In everyday life
Look for JOVIAL outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “JOVIAL” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study JOVIAL in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what JOVIAL means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain JOVIAL out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is JOVIAL in simple terms?

JOVIAL is a high-level programming language based on ALGOL 58, specialized for developing embedded systems (specialized computer systems designed to perform one or a few dedicated functions, usually embedded as part of a larger, more complete device, including mechanical parts). It was a major syst…

Why does JOVIAL matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study JOVIAL?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on JOVIAL.

Tags

  • ALGOL 58 dialect
  • Avionics programming languages
  • High-integrity programming languages
  • Procedural programming languages
  • Systems programming languages

Keep exploring