JOVIAL

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
JOVIAL
ParadigmsProcedural, imperative, structured
FamilyALGOL
Designed bySystem Development Corporation
DeveloperSoftware Engineering Associates[1]
First appeared1960; 60 years ago (1960)
Typing disciplinestatic, strong, safe, structural
ScopeLexical
Major implementations
mainframe, micro, PC, macOS, Windows, Linux, SPARC, PowerPC, 1750A, other legacy systems
Dialects
J3, J3B-2, J73
Influenced by
ALGOL, SAGE
Influenced
CMS-2, Coral 66, SYMPL

JOVIAL is a high-level programming language similar to ALGOL, 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 70s.

History[edit]

JOVIAL was developed as a new "high-order"[citation needed] 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.[2]

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.[3]

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.[4]

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.[5][6]

JOVIAL was standardized during 1973 with MIL-STD-1589 and was revised during 1984 with MIL-STD-1589C. It is still used much 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.[7]

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.[8]

Influence[edit]

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

Features[edit]

JOVIAL includes features not found in standard ALGOL, such as records, arrays of records, and inline assembly language.[10]

Applications[edit]

Notable systems using embedded JOVIAL software include:

Example[edit]

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

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

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[edit]

  1. ^ "Software Engineering Associates, Inc. (SEA)".
  2. ^ Schwartz, Jules I. "Oral History interview with Jules I. Schwartz". Charles Babbage Institute. University of Minnesota. Schwartz worked for the RAND Corporation on various defense related projects: especially Semi-Automatic Ground Environment (SAGE) and JOHNNIAC. When RAND organized the System Development Corporation, Schwartz went to the new company. For most of the interview, Schwartz describes his association with SAGE, his part in the computer laboratory work on time-sharing for the AN/FSQ-32 computer, computer networks, control system projects (such as TDMS), and his interactions with J. C. R. Licklider, Lawrence G. Roberts, and Robert Saxton Taylor. He discusses his later position at Computer Sciences Corporation.
  3. ^ a b Schwartz, Jules I. (August 8, 1978). "The Development of Jovial" (PDF). ACM SIGPLAN Notices. 13 (8): 203. doi:10.1145/960118.808385. S2CID 17913060. Retrieved January 28, 2015.
  4. ^ Campbell-Kelly, Martin (2003). From airline reservations to Sonic the Hedgehog: a history of the software industry. Cambridge, Massachusetts: MIT Press. pp. 46-7. ISBN 0-262-03303-8.
  5. ^ Schachter, Oscar. "Oral history interview with Oscar Schachter". Charles Babbage Institute. University of Minnesota. p. 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. pp. 21–24.
  7. ^ "Mature Development Systems, Field Proven on Hundreds of Applications". DDC-I. Phoenix, Arizona. 2020. Retrieved 22 April 2020.
  8. ^ Rayner, Gordon (December 12, 2014). "UK flights chaos: Air traffic control computers using software from the 1960s". Daily Telegraph. Retrieved 2020-04-21.
  9. ^ Digital Computer Basics Rate Training Manual, NAVEDTRA 10088-B, United States Navy, 1978
  10. ^ Halang, Wolfgang A.; Stoyenko, Alexander D. (1991). Constructing Predictable Real Time Systems. Springer Verlag. p. 31. ISBN 978-1-4615-4032-8.
  11. ^ "Jovial to smooth U.S. Air Force shift to Ada". Defense Electronics. March 1, 1984. Archived from the original on 2012-10-12. Retrieved January 28, 2015.
  12. ^ "AN/APG-73, Warfighter's Encyclopedia". Archived from the original on 2004-11-05.
  13. ^ Softech, Inc. (June 1981). Computer Programming Manual for the JOVIAL (J73) Language (PDF). Rome, New York: Rome Air Development Center. p. 12. Retrieved May 16, 2018.

External links[edit]