JOWIALNY
Paradygmaty | Proceduralne , imperatywne , ustrukturyzowane |
---|---|
Rodzina | ALGOL |
Zaprojektowany przez | Korporacja Rozwoju Systemu |
Deweloper | Współpracownicy inżynierii oprogramowania |
Po raz pierwszy pojawiły się | 1960 |
Dyscyplina pisania | statyczne , mocne , bezpieczne , strukturalne |
Zakres | Leksykalny |
Główne implementacje | |
MVS , OpenVMS , macOS , Windows , Linux , SPARC , PowerPC , MIL-STD-1750A , inne starsze systemy | |
Dialekty | |
J3, J3B-2, J73 | |
Pod wpływem | |
ALGOL , SAGE | |
Pod wpływem | |
CMS-2 , Coral 66 , SYMPL |
JOVIAL to język programowania wysokiego poziomu oparty na ALGOL 58 , wyspecjalizowany do tworzenia systemów wbudowanych (wyspecjalizowanych systemów komputerowych zaprojektowanych do wykonywania jednej lub kilku dedykowanych funkcji, zwykle wbudowanych jako część większego, bardziej kompletnego urządzenia, w tym części mechanicznych). Był to główny język programowania systemów w latach sześćdziesiątych i siedemdziesiątych XX wieku.
Historia
JOVIAL został opracowany jako nowy język programowania „wysokiego rzędu” , począwszy od 1959 roku przez zespół System Development Corporation (SDC) kierowany przez Julesa Schwartza w celu komponowania oprogramowania dla elektroniki samolotów wojskowych.
Nazwa JOVIAL jest skrótem od Jules' Own Version of the International Algebraic Language ; International Algorithmic Language (IAL) to nazwa zaproponowana pierwotnie dla ALGOL 58 . Według Schwartza język pierwotnie nosił nazwę OVIAL , ale sprzeciwiano się temu z różnych powodów. Następnie zasugerowano JOVIAL , bez żadnego znaczenia przypisywanego J. Nieco żartobliwie zasugerowano, aby język został nazwany na cześć Schwartza, ponieważ był on przewodniczącym spotkania , i ta nieoficjalna nazwa utknęła.
W latach sześćdziesiątych JOVIAL był częścią amerykańskiej wojskowej serii L-projektów , w szczególności ITT 465L Strategic Air Command Control System ( projekt Strategiczny Automatyczny System Dowodzenia i Kontroli (SACCS)), ze względu na brak programowania komputerowego w czasie rzeczywistym dostępne języki. Około 95 procent projektu SACCS, zarządzanego przez International Telephone & Telegraph (ITT) z oprogramowaniem napisanym głównie przez SDC, zostało napisanych w JOVIAL. Projekt oprogramowania trwał dwa lata i mniej niż 1400 lat programowania, czyli mniej niż połowę równoważnego czasu w SAGE Projekt L.
W późnych latach siedemdziesiątych i wczesnych osiemdziesiątych Siły Powietrzne Stanów Zjednoczonych przyjęły znormalizowaną jednostkę centralną (CPU), MIL-STD-1750A , a kolejne programy JOVIAL zostały zbudowane dla tego procesora. Kilku komercyjnych dostawców dostarczyło kompilatory i powiązane narzędzia programistyczne do budowy JOVIAL dla procesorów, takich jak MIL-STD-1750A, w tym Advanced Computer Techniques (ACT), TLD Systems , Proprietary Software Systems (PSS) i inne.
JOVIAL został znormalizowany w 1973 roku z MIL-STD-1589 i został poprawiony w 1984 z MIL-STD-1589C . Nadal jest używany do aktualizacji i konserwacji oprogramowania starszych pojazdów wojskowych i samolotów. W powszechnym użyciu są trzy dialekty: J3, J3B-2 i J73.
Od 2010 roku JOVIAL nie jest już utrzymywany i dystrybuowany przez Biuro Programowe USAF JOVIAL (JPO). Oprogramowanie wcześniej dystrybuowane przez JPO jest nadal dostępne za pośrednictwem zasobów komercyjnych w Software Engineering Associates, Inc., (SEA), podobnie jak inne kombinacje procesorów host/docelowych, w tym Windows , Linux , Mac OS X na PowerPC , SPARC , VAX , 1750A , PowerPC , TI-9989 , Zilog Z800x , Motorola 680x0 i IBM System 360 , System 370 i System z . Ponadto DDC-I , która nabyła części Advanced Computer Techniques, wymienia również kompilatory JOVIAL i powiązane narzędzia według stanu na kwiecień 2020 r.
Większość oprogramowania zaimplementowanego w JOVIAL ma krytyczne znaczenie dla misji , a konserwacja staje się coraz trudniejsza. W grudniu 2014 roku zgłoszono, że oprogramowanie wywodzące się z kodu JOVIAL wyprodukowanego w latach 60. XX wieku było zaangażowane w poważną awarię infrastruktury kontroli ruchu lotniczego w Wielkiej Brytanii , a agencja, która go używa, NATS Holdings , musiała szkolić swoich IT w JOVIAL, aby mogli utrzymywać to oprogramowanie, którego wymiana była planowana dopiero w 2016 roku.
Wpływ
Języki, na które wpłynął JOVIAL, to CORAL , SYMPL , Space Programming Language (SPL) i do pewnego stopnia CMS-2 . Interaktywny podzbiór JOVIAL o nazwie TINT, podobny do JOSS , został opracowany w latach sześćdziesiątych.
Cechy
JOVIAL zawiera funkcje, których nie ma w standardowym ALGOL-u, takie jak elementy (obecnie nazywane strukturami ), tablice elementów, zmienne statusu (obecnie nazywane wyliczeniami ) i wbudowany język asemblera .
Zawierał również przepisy dotyczące „pakowanych” danych w tabelach. Pakowanie tabel odnosi się do przydzielania pozycji we wpisie do słów pamięci (bitów w jednostce danych). Było to ważne ze względu na ograniczoną pamięć i pamięć masową systemów komputerowych ery JOVIAL.
Pula komunikacyjna (COMPOOL) w Jovial jest podobna do bibliotek plików nagłówkowych dla języków takich jak PL/I i C.
Aplikacje
Godne uwagi systemy wykorzystujące wbudowane oprogramowanie JOVIAL obejmują:
- Satelita komunikacyjny Milstar
- Zaawansowany pocisk manewrujący
- Bombowce B-52 , B-1B , B-2
- Samoloty transportowe C-130 , C-141 , C-17
- F-111 , F-15 , F-16 (przed blokiem 50), samolot myśliwski F-117
- LANTIRN
- samolot U-2
- Boeing E-3 Sentry AWACS (przed blokiem 40/45)
- Krążowniki marynarki wojennej Aegis
- Wojskowy system rakiet wielokrotnego startu ( MLRS )
- Śmigłowce armii Sikorsky UH-60 Black Hawk
- Silniki odrzutowe F100 , F117 , F119
- NORAD (system Hughes HME-5118ME)
- ochrony naziemnej obrony powietrznej NATO (NADGE).
- Silniki rakietowe RL10
- Cywilny NAS ( Krajowy System Przestrzeni Powietrznej ) Kontrola Ruchu Lotniczego
- Pokładowe systemy radarowe APG-70 , APG-71 i APG-73
Przykład
Poniższy przykład pochodzi z Podręcznika programowania komputerów dla języka JOVIAL (J73).
PROC POBIERZ(KOD:WARTOŚĆ); KOD POZYCJI POCZĄTKOWEJ U; POZYCJA WARTOŚĆ F; WARTOŚĆ = -99999.; DLA I:0 O 1 GDY I<1000; KOD JEŚLI = KOD TAB.(I); WARTOŚĆ POCZĄTKOWA = WARTOŚĆ TAB.(I); WYJŚCIE; KONIEC KONIEC
W tym przykładzie zdefiniowano procedurę o nazwie RETRIEVE
, która pobiera argument wejściowy będący liczbą całkowitą bez znaku KOD
i argument wyjściowy zmiennoprzecinkowy WARTOŚĆ
. Przeszukuje 1000-elementową tablicę TABCODE
w poszukiwaniu wpisu pasującego do KODU
, a następnie ustawia zmienną zmiennoprzecinkową WARTOŚĆ
na element tablicy WARTOŚĆTAB, mający
ten sam pasujący indeks tablicy. Jeśli nie zostanie znaleziony pasujący element, WARTOŚĆ
jest ustawiana na −99999.0
.
Linki zewnętrzne
- Rozwój Jowialnego
- „MIL-STD-1589C, norma wojskowa: JOVIAL (J73)” (PDF) . Departament Obrony Stanów Zjednoczonych . 6 lipca 1984.
- Kwiecień 2006 archiwum Biura Programu JOVIAL
- Strona o Jules Schwartz , zawierająca film z humorystycznym wykładem na temat rozwoju JOVIAL [ martwy link ]
- DODSSP Departament Obrony USA Pojedynczy punkt magazynowy dla specyfikacji wojskowych, norm i powiązanych publikacji
- Współpracownicy inżynierii oprogramowania
- DDC-I, Inc.: System kompilatora DDC-I JOVIAL (DJCS)
- Zarchiwizowane w Ghostarchive i Wayback Machine : Schwartz, Jules. Wykład Julesa Schwartza na temat JOVIAL (wideo). YouTube . Źródło 2020-04-22 .
- Hogan, Michael Olin. „Historia JOVIAL” . Kalifornijski Uniwersytet Stanowy . Źródło 11 marca 2022 r .