Jovial
   HOME

TheInfoList



OR:

JOVIAL is a
high-level programming language A high-level programming language is a programming language with strong Abstraction (computer science), abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be ea ...
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 A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
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 The chair, also chairman, chairwoman, or chairperson, is the presiding officer of an organized group such as a Board of directors, board, committee, or deliberative assembly. The person holding the office, who is typically elected or appointed by ...
, 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 Real-time computing (RTC) is the computer science term for Computer hardware, hardware and software systems subject to a "real-time constraint", for example from Event (synchronization primitive), event to Event (computing), system response. Rea ...
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 The United States Air Force (USAF) is the Air force, air service branch of the United States Department of Defense. It is one of the six United States Armed Forces and one of the eight uniformed services of the United States. Tracing its ori ...
adopted a standardized
central processing unit A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary Processor (computing), processor in a given computer. Its electronic circuitry executes Instruction (computing), instructions ...
(CPU), the MIL-STD-1750A, and subsequent JOVIAL programs were built for that processor. Several commercial vendors provided
compiler In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
s 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. , 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 Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
Mac OS X macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
on
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
, SPARC, VAX, 1750A,
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
, 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 . 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 The United Kingdom of Great Britain and Northern Ireland, commonly known as the United Kingdom (UK) or Britain, is a country in Northwestern Europe, off the coast of European mainland, the continental mainland. It comprises England, Scotlan ...
's
air traffic control Air traffic control (ATC) is a service provided by ground-based air traffic controllers who direct aircraft on the ground and through a given section of controlled airspace, and can provide advisory services to aircraft in non-controlled air ...
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 Corals are colonial marine invertebrates within the subphylum Anthozoa of the phylum Cnidaria. They typically form compact Colony (biology), colonies of many identical individual polyp (zoology), polyps. Coral species include the important Coral ...
'', '' SYMPL'', ''Space Programming Language'' (SPL), and to some extent '' CMS-2''. An
interactive Across the many fields concerned with interactivity, including information science, computer science, human-computer interaction, communication, and industrial design, there is little agreement over the meaning of the term "interactivity", but mo ...
subset of JOVIAL called TINT, similar to
JOSS JOSS (acronym for JOHNNIAC Open Shop System) was one of the first interactive, time-sharing programming languages. It pioneered many features that would become common in languages from the 1960s into the 1980s, including use of line numbers as bo ...
was developed in the 1960s.


Features

JOVIAL includes features not found in standard ALGOL, such as items (now called
structure A structure is an arrangement and organization of interrelated elements in a material object or system, or the object or system so organized. Material structures include man-made objects such as buildings and machines and natural objects such as ...
s),
arrays An array is a systematic arrangement of similar objects, usually in rows and columns. Things called an array include: {{TOC right Music * In twelve-tone and serial composition, the presentation of simultaneous twelve-tone sets such that the ...
of items, status variables (now called
enumeration An enumeration is a complete, ordered listing of all the items in a collection. The term is commonly used in mathematics and computer science to refer to a listing of all of the element (mathematics), elements of a Set (mathematics), set. The pre ...
s) 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 The Rockwell B-1 Lancer is a supersonic variable-sweep wing, heavy bomber used by the United States Air Force. It has been nicknamed the "Bone" (from "B-One"). , it is one of the United States Air Force's three strategic bombers, along with th ...
, B-2 bombers * C-130, C-141, C-17 transport aircraft * F-111, F-15,
F-16 The General Dynamics F-16 Fighting Falcon is an American single-engine supersonic multirole fighter aircraft originally developed by General Dynamics for the United States Air Force (USAF). Designed as an air superiority day fighter, it e ...
(prior to Block 50),
F-117 The Lockheed F-117 Nighthawk is an officially retired American single-seat, subsonic, Twinjet, twin-engined, stealth aircraft, stealth attack aircraft developed by Lockheed Corporation, Lockheed's secretive Skunk Works division and operated ...
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 engine A jet engine is a type of reaction engine, discharging a fast-moving jet (fluid), jet of heated gas (usually air) that generates thrust by jet propulsion. While this broad definition may include Rocket engine, rocket, Pump-jet, water jet, and ...
s * 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 Radar is a system that uses radio waves to determine the distance ('' ranging''), direction ( azimuth and elevation angles), and radial velocity of objects relative to the site. It is a radiodetermination method used to detect and track ...
systems


Example

The following example is taken from ''Computer Programming Manual for the JOVIAL (J73) Language. 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


External links


The Development of Jovial
*
April 2006 archive of the JOVIAL Program Office


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

DDC-I, Inc.: DDC-I JOVIAL Compiler System (DJCS)
* Archived a
Ghostarchive
and th
Wayback Machine
* {{DEFAULTSORT:Jovial Procedural programming languages Avionics programming languages Systems programming languages High-integrity programming languages ALGOL 58 dialect