JOVIAL

Last updated
JOVIAL
Paradigms Procedural, imperative, structured
Family ALGOL
Designed by System Development Corporation
Developer Software Engineering Associates [1]
First appeared1960;63 years ago (1960)
Typing discipline static, strong, safe, structural
Scope Lexical
Major implementations
MVS, OpenVMS, macOS, Windows, Linux, SPARC, PowerPC, MIL-STD-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 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. [2]

Contents

History

Computer Programming Manual for the Jovial (J73) Language Computer Programming Manual for the Jovial (J73) Language.djvu
Computer Programming Manual for the Jovial (J73) Language

JOVIAL was developed as a new "high-order" [3] :1 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. [4]

The name JOVIAL is an acronym for Jules' Own Version [5] of the International Algebraic Language; International Algorithmic Language (IAL) was a name proposed originally for ALGOL 58. [6] 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. [7]

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

Pin button showing JOVIAL as one of the languages that Advanced Computer Techniques made cross-compilers for Advanced Computer Techniques Ada Jovial Fortran 1750A pin button.jpg
Pin button showing JOVIAL as one of the languages that Advanced Computer Techniques made cross-compilers for

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. [9] [10]

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

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

Influence

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

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

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:

Example

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

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.

Related Research Articles

<span class="mw-page-title-main">Ada (programming language)</span> High-level programming language first released in 1980

Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, inspired by Pascal and other languages. It has built-in language support for design by contract (DbC), extremely strong typing, explicit concurrency, tasks, synchronous message passing, protected objects, and non-determinism. Ada improves code safety and maintainability by using the compiler to find errors in favor of runtime errors. Ada is an international technical standard, jointly defined by the International Organization for Standardization (ISO), and the International Electrotechnical Commission (IEC). As of 2020, the standard, called Ada 2012 informally, is ISO/IEC 8652:2012.

<span class="mw-page-title-main">ALGOL</span> Family of programming languages

ALGOL is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by the Association for Computing Machinery (ACM) in textbooks and academic sources for more than thirty years.

MIL-STD-1750A or 1750A is the formal definition of a 16-bit computer instruction set architecture (ISA), including both required and optional components, as described by the military standard document MIL-STD-1750A (1980). Since August 1996, it has been inactive for new designs.

The Burroughs Large Systems Group produced a family of large 48-bit mainframes using stack machine instruction sets with dense syllables. The first machine in the family was the B5000 in 1961, which was optimized for compiling ALGOL 60 programs extremely well, using single-pass compilers. The B5000 evolved into the B5500 and the B5700. Subsequent major redesigns include the B6500/B6700 line and its successors, as well as the separate B8500 line.

<span class="mw-page-title-main">For loop</span> Control flow statement for repeated execution

In computer science a for-loop or for loop is a control flow statement for specifying iteration. Specifically, a for loop functions by running a section of code repeatedly until a certain condition has been satisfied.

In a given programming language design, a first-class citizen is an entity which supports all the operations generally available to other entities. These operations typically include being passed as an argument, returned from a function, and assigned to a variable.

ALGOL 60 is a member of the ALGOL family of computer programming languages. It followed on from ALGOL 58 which had introduced code blocks and the begin and end pairs for delimiting them, representing a key advance in the rise of structured programming. ALGOL 60 was one of the first languages implementing function definitions. ALGOL 60 function definitions could be nested within one another, with lexical scope. It gave rise to many other languages, including CPL, PL/I, Simula, BCPL, B, Pascal, and C. Practically every computer of the era had a systems programming language based on ALGOL 60 concepts.

<span class="mw-page-title-main">ALGOL 68</span> Programming language

ALGOL 68 is an imperative programming language that was conceived as a successor to the ALGOL 60 programming language, designed with the goal of a much wider scope of application and more rigorously defined syntax and semantics.

ALGOL 58, originally named IAL, is one of the family of ALGOL computer programming languages. It was an early compromise design soon superseded by ALGOL 60. According to John Backus

The Zurich ACM-GAMM Conference had two principal motives in proposing the IAL: (a) To provide a means of communicating numerical methods and other procedures between people, and (b) To provide a means of realizing a stated process on a variety of machines...

The TPK algorithm is a simple program introduced by Donald Knuth and Luis Trabb Pardo to illustrate the evolution of computer programming languages. In their 1977 work "The Early Development of Programming Languages", Trabb Pardo and Knuth introduced a small program that involved arrays, indexing, mathematical functions, subroutines, I/O, conditionals and iteration. They then wrote implementations of the algorithm in several early programming languages to show how such concepts were expressed.

Link 16 is a military tactical data link network used by NATO and nations allowed by the MIDS International Program Office (IPO). Its specification is part of the family of Tactical Data Links.

MIL-STD-498, Military Standard Software Development and Documentation, was a United States military standard whose purpose was to "establish uniform requirements for software development and documentation." It was released Nov. 8, 1994, and replaced DOD-STD-2167A, DOD-STD-2168, DOD-STD-7935A, and DOD-STD-1703. It was meant as an interim standard, to be in effect for about two years until a commercial standard was developed.

A United States defense standard, often called a military standard, "MIL-STD", "MIL-SPEC", or (informally) "MilSpecs", is used to help achieve standardization objectives by the U.S. Department of Defense.

<span class="mw-page-title-main">AN/APG-63 radar family</span> American all-weather multimode radar family

The AN/APG-63 and AN/APG-70 are a family of all-weather multimode radar systems designed by Hughes Aircraft for the F-15 Eagle air superiority fighter. These X band pulse-Doppler radar systems are designed for both air-air and air-ground missions; they are able to look up at high-flying targets and down at low-flying targets without being confused by ground clutter. The systems can detect and track aircraft and small high-speed targets at distances beyond visual range down to close range, and at altitudes down to treetop level. The radar feeds target information into the aircraft's central computer for effective weapons delivery. For close-in dogfights, the radar automatically acquires enemy aircraft and projects this information onto the cockpit head-up display. The name is assigned from the Army Navy Joint Electronics Type Designation System.

The AN/APG-65 and AN/APG-73 are designations for a family of all-weather multimode airborne radar systems designed by Hughes Aircraft for the F/A-18 Hornet, and used on a variety of fighter aircraft types. The APG-79 is an upgraded AESA version.

Programming languages are used for controlling the behavior of a machine. Like natural languages, programming languages follow the rules for syntax and semantics.

ALGOL 68RS is the second ALGOL 68 compiler written by I. F. Currie and J. D. Morrison, at the Royal Signals and Radar Establishment (RSRE). Unlike the earlier ALGOL 68-R, it was designed to be portable, and implemented the language of the Revised Report.

DDC-I, Inc. is a privately held company providing software development of real-time operating systems, software development tools, and software services for safety-critical embedded applications, headquartered in Phoenix, Arizona. It was first created in 1985 as the Danish firm DDC International A/S, a commercial outgrowth of Dansk Datamatik Center, a Danish software research and development organization of the 1980s. The American subsidiary was created in 1986. For many years, the firm specialized in language compilers for the programming language Ada.

Jules I. Schwartz was an American computer scientist chiefly known for his creation of the JOVIAL programming language.

<span class="mw-page-title-main">TLD Systems</span>

TLD Systems, Ltd. was an American software company active in the 1980s and 1990s and based in Torrance, California, that specialized in language compilers for the JOVIAL and Ada programming languages that were targeted to embedded systems.

References

  1. "Software Engineering Associates, Inc. (SEA)".
  2. 1 2 "Mature Development Systems, Field Proven on Hundreds of Applications". DDC-I. Phoenix, Arizona. 2020. Retrieved 22 April 2020.
  3. 1 2 Softech, Inc. (June 1981). Computer Programming Manual for the JOVIAL (J73) Language (PDF). Rome, New York: Rome Air Development Center. p. 1. Archived (PDF) from the original on July 29, 2018. Retrieved May 16, 2018.
  4. Schwartz, Jules I. (7 April 1989). "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.
  5. "Ed and Kay, JOVIAL Pioneers". jovial.com. Retrieved 2021-02-23.
  6. Shaw, Christopher J. (1963-12-01). "A specification of JOVIAL". Communications of the ACM. 6 (12): 721–736. doi: 10.1145/763973.763978 . ISSN   0001-0782. S2CID   1427629.
  7. 1 2 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.
  8. 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.
  9. Schachter, Oscar (7 May 2004). "Oral history interview with Oscar Schachter". Charles Babbage Institute . University of Minnesota: 17.
  10. "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.
  11. Rayner, Gordon (December 12, 2014). "UK flights chaos: Air traffic control computers using software from the 1960s". Daily Telegraph . Retrieved 2020-04-21.
  12. Digital Computer Basics Rate Training Manual, NAVEDTRA 10088-B, United States Navy, 1978
  13. Halang, Wolfgang A.; Stoyenko, Alexander D. (1991). Constructing Predictable Real Time Systems. Springer Verlag. p. 31. ISBN   978-1-4615-4032-8.
  14. "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.
  15. "AN/APG-73, Warfighter's Encyclopedia". Archived from the original on 2004-11-05.