Введение
Язык программирования JOVIAL — это язык программирования высокого уровня, основанный на ALGOL 58 и специализирующийся на разработке встроенных систем (специализированных компьютерных систем, предназначенных для выполнения одной или нескольких выделенных функций, обычно встроенных в состав более крупного, комплексного устройства, включая механические компоненты). Он являлся основным языком системного программирования в 1960-х и 1970-х годах. Разработка этого языка программирования началась в 1959 году командой из корпорации System Development Corporation (SDC) под руководством Жюля Шварца для создания программного обеспечения для авионики военных самолетов. Название JOVIAL является акронимом от Jules' Own Version of the International Algebraic Language; Международный алгоритмический язык (IAL) первоначально предлагался в качестве названия для ALGOL 58. По словам Шварца, изначально язык назывался OVIAL, но это предложение было отклонено по различным причинам. Затем было предложено название JOVIAL, буква «J» не имела какого-либо специального значения. В шутку было предложено назвать язык в честь Шварца, поскольку он был председателем собраний, и это неофициальное название прижилось. В 1960-х годах JOVIAL использовался в рамках серии проектов L Вооруженных сил США, в частности, в системе управления Стратегическим командованием ВВС ITT 465L (проект Strategic Automated Command and Control System (SACCS)), из-за отсутствия доступных языков программирования для вычислений в реальном времени. Около 95% проекта SACCS, управляемого компанией International Telephone & Telegraph (ITT) при активном участии SDC в разработке программного обеспечения, было написано на JOVIAL. Реализация программного обеспечения заняла два года и потребовала менее 1400 человеко-лет, что составляет менее половины времени, затраченного на эквивалентный проект SAGE L. В конце 1970-х и начале 1980-х годов ВВС США приняли стандартизированный центральный процессор (ЦП) MIL STD 1750A, и последующие программы на JOVIAL создавались для этого процессора. Несколько коммерческих поставщиков предоставляли компиляторы и сопутствующие инструменты программирования для разработки JOVIAL для процессоров, таких как MIL STD 1750A, включая Advanced Computer Techniques (ACT), TLD Systems, Proprietary Software Systems (PSS) и другие. JOVIAL был стандартизирован в 1973 году стандартом MIL STD 1589 и пересмотрен в 1984 году стандартом MIL STD 1589C. Он до сих пор используется для обновления и обслуживания программного обеспечения устаревшей военной техники и авиации. Существует три распространенных диалекта: J3, J3B 2 и J73. По состоянию на 2010 год поддержка и распространение JOVIAL со стороны Управления программ JOVIAL ВВС США (JPO) прекращены. Программное обеспечение, ранее распространявшееся JPO, по-прежнему доступно через коммерческие источники в компании Software Engineering Associates, Inc. (SEA), а также существуют другие комбинации хост/целевых процессоров, включая Windows, Linux, Mac OS X на PowerPC, SPARC, VAX, 1750A, PowerPC, TI 9989, Zilog Z800x, Motorola 680x0 и IBM System 360, System 370 и System z. Кроме того, DDC I, приобретшая часть Advanced Computer Techniques, также предлагает компиляторы JOVIAL и сопутствующие инструменты по состоянию на 2020 год. Большинство программных продуктов, реализованных на JOVIAL, критически важны для функционирования систем, и их обслуживание становится все более сложным. В декабре 2014 года сообщалось, что программное обеспечение, разработанное на основе кода JOVIAL, созданного в 1960-х годах, стало причиной серьезного сбоя в инфраструктуре управления воздушным движением Великобритании, и компания NATS Holdings, использующая это программное обеспечение, была вынуждена обучать свой ИТ-персонал JOVIAL для его обслуживания, поскольку замена программного обеспечения была запланирована только на 2016 год.
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. 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 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.
Влияние
Языки, испытавшие влияние JOVIAL, включают CORAL, SYMPL, язык космического программирования (SPL) и, в некоторой степени, CMS 2. В 1960-х годах был разработан интерактивный поднабор JOVIAL под названием TINT, аналогичный JOSS. Он также предусматривал возможность использования "упакованных" данных в таблицах. Упаковка таблиц относится к размещению элементов внутри записи в слова памяти (биты в единице данных). Это было особенно важно из-за ограниченного объема памяти и хранилищ вычислительных систем эпохи JOVIAL. Коммуникационный пул (COMPOOL) в JOVIAL аналогичен библиотекам заголовочных файлов для языков, таких как PL/I и C.