ŽOVIÁLNÍ

JOVIAL  je vysokoúrovňový programovací jazyk podobný ALGOL , který se specializuje na vývoj vestavěných systémů .

Historie

JOVIAL byl vyvinut v roce 1959 jako nový „vysoce kvalitní“ programovací jazyk týmem System Development Corporation (SDC) vedeným Julesem Schwartzem za účelem vytvoření softwaru pro elektroniku vojenských letadel [1] . Jméno JOVIAL je zkratkou pro Julesovu vlastní verzi mezinárodního algebraického jazyka . _ Podle Schwartze se jazyk původně jmenoval OVIAL, ale tento název byl z různých důvodů odmítnut. Poté byl navržen název „JOVIAL“ bez jakéhokoli významu písmene „J“ (v angličtině. , fr. , španělština atd. žoviální "veselý; veselý"). Bylo vtipně naznačeno, že jazyk je pojmenován po Schwartzovi, který schůzi předsedal, a tento neformální název se konečně ujal. [2]

V 60. letech byl JOVIAL součástí řady amerických vojenských projektů, konkrétně 465L (projekt SACCS ) kvůli nedostatku dostupných jazyků pro zpracování v reálném čase. Asi 95 % softwaru SACCS bylo napsáno v JOVIAL. [3]

Koncem 70. a začátkem 80. let americké letectvo přijalo standardizovaný procesor MIL-STD-1750A a programy byly pro tento procesor napsány v JOVIAL. Pro takové procesory vyvinulo několik komerčních společností kompilátory a související vývojové nástroje JOVIAL ( Advanced Computer Techniques , TLD Systems , Proprietary Software Systems a další). [4] [5]

JOVIAL byl standardizován v roce 1973 jako MIL-STD- 1589 ; vývoj jazyka byl zdokumentován v roce 1984 v MIL-STD-1589C . Jazyk je stále široce používán pro aktualizaci a údržbu softwaru na starších vojenských vozidlech a letadlech. Existují tři dialekty: J3, J3B-2 a J73.

Od roku 2010 již JOVIAL není podporován ani distribuován programovou kanceláří USAF JOVIAL (JPO). Software dříve distribuovaný JPO je stále dostupný prostřednictvím komerčních zdrojů Software Engineering Associates, Inc. (SEA) a také další hostitelské procesory včetně Microsoft Windows , Linux , Mac OS X na PowerPC , SPARC , VAX , 1750A , PowerPC , TI-9989 , Zilog Z800x , Motorola 680x0 a IBM System 360 / System 370 / System z . Také DDC-I , který získal části Advanced Computer Techniques , stále zobrazuje kompilátory JOVIAL a související nástroje. [6]

Většina programů implementovaných na JOVIAL je kritická a jejich údržba je stále obtížnější. V prosinci 2014 bylo oznámeno, že software využívající JOVIAL, vydaný v 60. letech, souvisel s velkým selháním infrastruktury řízení letového provozu Spojeného království a že agentura, která jej používá, musela školit své IT pracovníky v programování JOVIAL tak, aby mohli pracovat s tímto softwarem, jehož výměna se plánuje až v roce 2016. [7] Proto je převod JOVIAL kódu na nové platformy stále častější. Převod JOVIAL do jiných jazyků v současnosti provádí společnost Semantic Designs , k převodu některých programů JOVIAL pro bombardér B - 2 na C byl použit DMS Software Reengineering Toolkit [osm]

Vliv

Podle Schwartze byl JOVIAL ovlivněn programovacími jazyky jako CORAL , SYMPL , Space Programming Language (SPL) a do určité míry CMS-2 . [9] Interaktivní podmnožina JOVIAL s názvem TINT , podobná JOSS , byla vyvinuta v 60. letech 20. století. [2]

Funkce

JOVIAL obsahuje funkce, které nenajdete ve standardním ALGOL, jako jsou záznamy, pole záznamů a inline assembler. [deset]

Příklad

Následující příklad je převzat z JOVIAL Programming Guide (J73). [jedenáct]

PROC RETRIEVE(KÓD:HODNOTA); ZAČÍT KÓD POLOŽKY U; HODNOTA POLOŽKY F; HODNOTA = -99999.; PRO I:0 BY 1, KDYŽ I<1000; IF CODE = TABCODE(I); ZAČÍT HODNOTA = TABVALUE(I); VÝSTUP; KONEC KONEC

Tento příklad definuje pojmenovanou proceduru RETRIEVE, která přebírá CODEargument celého čísla bez znaménka a výstupní argument s plovoucí desetinnou čárkou VALUE . Vyhledá v poli 1000 prvků TABCODEpoložku, která se shoduje, CODEa poté nastaví VALUEproměnnou s pohyblivou řádovou čárkou na prvek pole TABVALUE, který má stejný odpovídající index pole. Pokud není nalezen žádný odpovídající prvek, hodnota VALUEje -99999,0.

Poznámky

  1. Rozhovor Oral History s Julesem I. Schwartzem .
  2. ↑ 1 2 Jules I. Schwartz. Vývoj žoviálních  //  ACM SIGPLAN oznámení. - 1978. - 8. září ( roč. 13 , č. 8 ). — S. 203 . Archivováno z originálu 5. listopadu 2018.
  3. Martin Campbell-Kelly. Od rezervací leteckých společností po Sonic the Hedgehog: historie softwarového průmyslu  //  Cambridge Mass: The MIT Press. - 2003. - ISSN 0-262-03303-8 .
  4. Orální historický rozhovor s Oscarem Schachterem  //  Charles Babbage Institute. — Str. 17 .
  5. Nástroje softwarové podpory ISA JOVIAL (J73) a MIL-STD-1750A // Newsletter Ada–JOVIAL. - 1993 9. - S. 21-24 .
  6. Vyspělé vývojové systémy, osvědčené v praxi ve stovkách aplikací // DDC-I.
  7. Gordon Rayner. Chaos letů ve Spojeném království: Počítače řízení letového provozu pomocí softwaru z 60. let  //  Daily Telegraph. - 2016. - 12. prosince. Archivováno z originálu 3. července 2018.
  8. Sémantické vzory. Sémantické návrhy jsou v souladu s Northrop Grumman a modernizují softwarové  systémy B-2 Spirit Bomber . Archivováno z originálu 9. září 2018.
  9. Americké námořnictvo. Školicí příručka Základy digitálního počítače // NAVEDTRA 10088-B. — 1978.
  10. Wolfgang A. Halang, Alexander D. Stoyenko. Konstrukce předvídatelných systémů v reálném čase  //  Springer Verlag. - 1991. - S. 31 . — ISSN 978-1-4615-4032-8 .
  11. Softtech, Inc. POČÍTAČOVÁ PROGRAMOVACÍ PŘÍRUČKA PRO JOVIÁLNÍ (J73) JAZYK  // CENTRUM ROZVOJOVÉHO CENTRUM ŘÍMSKÉHO VZDUCHU. - 1981. - Červen. - S. 12 . Archivováno z originálu 1. března 2017.