JOVIAL es un lenguaje de programación de alto nivel basado en ALGOL 58 , especializado para desarrollar sistemas embebidos ( sistemas informáticos especializados diseñados para realizar una o pocas funciones dedicadas, generalmente embebidos como parte de un dispositivo más grande y completo, incluidas partes mecánicas). Fue un lenguaje de programación de sistemas importante durante las décadas de 1960 y 1970. [ cita requerida ]
Paradigmas | Procesal , imperativo , estructurado |
---|---|
Familia | ALGOL |
Diseñada por | Corporación de desarrollo de sistemas |
Desarrollador | Asociados de ingeniería de software [1] |
Apareció por primera vez | 1960 |
Disciplina de mecanografía | estático , fuerte , seguro , estructural |
Alcance | Léxico |
Implementaciones importantes | |
mainframe , micro, PC, macOS , Windows , Linux , SPARC , PowerPC , 1750A, otros sistemas heredados | |
Dialectos | |
J3, J3B-2, J73 | |
Influenciado por | |
ALGOL , SABIO | |
Influenciado | |
CMS-2 , Coral 66 , SYMPL |
Historia
JOVIAL fue desarrollado como un nuevo lenguaje de programación de "alto orden" [ cita requerida ] a partir de 1959 por un equipo de System Development Corporation (SDC) encabezado por Jules Schwartz para componer software para la electrónica de aviones militares. [2]
El nombre JOVIAL es un acrónimo de Jules 'Own Version [3] del Lenguaje Algebraico Internacional ; Lenguaje algorítmico internacional (IAL) fue un nombre propuesto originalmente para ALGOL 58 . [4] Según Schwartz, el idioma originalmente se llamaba OVIAL , pero se opuso a esto por varias razones. JOVIAL continuación, se sugirió, sin significado unido a la J . De manera un tanto en broma, se sugirió que el idioma llevara el nombre de Schwartz, ya que él era el presidente de la reunión , y este nombre no oficial se mantuvo. [5]
Durante la década de 1960, JOVIAL fue parte de la serie de proyectos L militares de EE. UU. , En particular el Sistema de Control de Comando Aéreo Estratégico ITT 465L (el proyecto Sistema de Control y Comando Automatizado Estratégico (SACCS)), debido a la falta de programación informática en tiempo real Idiomas disponibles. Aproximadamente el 95 por ciento del proyecto SACCS, administrado por International Telephone & Telegraph (ITT) con software escrito principalmente por SDC, fue escrito en JOVIAL. El proyecto de software tomó dos años y menos de 1.400 años de programador, menos de la mitad del tiempo equivalente en el proyecto L de SAGE . [6]
Durante finales de la década de 1970 y principios de la de 1980, la Fuerza Aérea de los Estados Unidos adoptó una unidad central de procesamiento (CPU) estandarizada , el MIL-STD-1750A , y los programas JOVIAL posteriores se crearon para ese procesador. Varios proveedores comerciales proporcionaron compiladores y herramientas de programación relacionadas para construir JOVIAL para procesadores como el MIL-STD-1750A, incluidas las técnicas informáticas avanzadas (ACT), los sistemas TLD , los sistemas de software patentados (PSS) y otros. [7] [8]
JOVIAL se estandarizó durante 1973 con MIL-STD-1589 y se revisó durante 1984 con MIL-STD-1589C . Todavía se usa mucho para actualizar y mantener software en vehículos y aviones militares más antiguos. Hay tres dialectos de uso común: J3, J3B-2 y J73.
A partir de 2010[actualizar]JOVIAL ya no es mantenido ni distribuido por la Oficina del Programa JOVIAL de la USAF (JPO). El software anteriormente distribuido por JPO todavía está disponible a través de recursos comerciales en Software Engineering Associates, Inc., (SEA) al igual que otras combinaciones de procesadores host / de destino, incluidos Windows , Linux , Mac OS X en PowerPC , SPARC , VAX , 1750A , PowerPC , TI-9989 , Zilog Z800x , Motorola 680x0 e IBM System 360 , System 370 y System z . Además, DDC-I , que adquirió partes de Advanced Computer Techniques, también enumera los compiladores de JOVIAL y las herramientas relacionadas a partir de abril de 2020.[actualizar]. [9]
La mayor parte del software implementado en JOVIAL es de misión crítica y el mantenimiento es cada vez más difícil. En diciembre de 2014, se informó de que el software deriva de código JOVIAL producida en la década de 1960 estuvo involucrado en un gran fracaso del Reino Unido 's de control del tráfico aéreo de infraestructura, y que la agencia que lo utiliza, NATS Holdings , fue tener que entrenar a su Personal de TI en JOVIAL para que pudieran mantener este software, cuya sustitución no estaba prevista hasta 2016. [10]
Influencia
Los lenguajes influenciados por JOVIAL incluyen CORAL , SYMPL , Space Programming Language (SPL) y, hasta cierto punto, CMS-2 . [11] En la década de 1960 se desarrolló un subconjunto interactivo de JOVIAL llamado TINT, similar a JOSS . [5]
Características
JOVIAL incluye características que no se encuentran en ALGOL estándar, como registros , matrices de registros y lenguaje ensamblador en línea . [12]
También incluía disposiciones para datos "empaquetados" dentro de tablas. El empaquetado de tablas se refiere a la asignación de elementos dentro de una entrada a palabras de almacenamiento (bits en una unidad de datos). Esto fue importante con respecto a la memoria y el almacenamiento limitados de los sistemas informáticos de la era JOVIAL.
Aplicaciones
Los sistemas notables que utilizan el software JOVIAL integrado incluyen:
- Satélite de comunicaciones milstar
- Misil de crucero avanzado
- Bombarderos B-52 , B-1B , [13] B-2
- Aviones de transporte C-130 , C-141 , C-17
- F-111 , F-15 , F-16 (antes del Bloque 50), aviones de combate F-117
- LANTIRN
- Avión U-2
- Avión Boeing E-3 Sentry AWACS (antes del bloque 40/45)
- Cruceros Navy Aegis
- Sistema de cohetes de lanzamiento múltiple del ejército ( MLRS )
- Ejército Sikorsky UH-60 Halcón Negro helicópteros
- Motores a reacción F100 , F117 , F119
- Sistema de control y defensa aérea NORAD (sistema Hughes HME-5118ME)
- Sistema de Medio Ambiente Terrestre de Defensa Aérea de la OTAN (NADGE)
- Motores de cohete RL10
- Control de tráfico aéreo civil NAS (Sistema Nacional del Espacio Aéreo)
- Sistemas de radar de a bordo APG-70 , APG-71 y APG-73 [14]
Ejemplo
El siguiente ejemplo está tomado del Manual de programación de computadora para el lenguaje JOVIAL (J73). [15]
PROC RECUPERAR (CÓDIGO: VALOR); EMPEZAR CÓDIGO DEL ARTÍCULO U; VALOR DEL ARTÍCULO F; VALOR = -99999 .; PARA I: 0 POR 1 MIENTRAS I <1000; SI CÓDIGO = TABCODE (I); EMPEZAR VALOR = TABVALOR (I); SALIDA; FINAL FINAL
Este ejemplo define un procedimiento llamado RETRIEVE
que toma un argumento de entrada entero sin signo CODE
y un argumento de salida de punto flotante VALUE
. Busca en la matriz de 1000 elementos TABCODE
una entrada que coincida CODE
y luego establece la variable de punto flotante VALUE
en el elemento de la matriz que TABVALUE
tiene el mismo índice de matriz coincidente. Si no se encuentra ningún elemento coincidente, VALUE
se establece en −99999.0
.
Referencias
- ^ "Asociados de ingeniería de software, Inc. (SEA)" .
- ^ Schwartz, Jules I. "Entrevista de historia oral con Jules I. Schwartz" . Instituto Charles Babbage . Universidad de Minnesota.Schwartz trabajó para RAND Corporation en varios proyectos relacionados con la defensa: especialmente Semi-Automatic Ground Environment (SAGE) y JOHNNIAC . Cuando RAND organizó la Corporación de Desarrollo de Sistemas , Schwartz se fue a la nueva empresa. Durante la mayor parte de la entrevista, Schwartz describe su asociación con SAGE, su participación en el trabajo de laboratorio de computación en el tiempo compartido para la computadora AN / FSQ-32 , redes de computadoras , proyectos de sistemas de control (como TDMS) y sus interacciones con JCR. Licklider , Lawrence G. Roberts y Robert Saxton Taylor . Habla de su puesto posterior en Computer Sciences Corporation .
- ^ "Ed y Kay, pioneros de JOVIAL" . jovial.com . Consultado el 23 de febrero de 2021 .
- ^ Shaw, Christopher J. (1 de diciembre de 1963). "Una especificación de JOVIAL" . Comunicaciones de la ACM . 6 (12): 721–736. doi : 10.1145 / 763973.763978 . ISSN 0001-0782 .
- ^ a b Schwartz, Jules I. (8 de agosto de 1978). "El desarrollo de Jovial" (PDF) . Avisos ACM SIGPLAN . 13 (8): 203. doi : 10.1145 / 960118.808385 . S2CID 17913060 . Consultado el 28 de enero de 2015 .
- ^ Campbell-Kelly, Martin (2003). Desde reservas de aerolíneas hasta Sonic the Hedgehog: una historia de la industria del software . Cambridge, Massachusetts: MIT Press . pp. 46 -7. ISBN 0-262-03303-8.
- ^ Schachter, Oscar. "Entrevista de historia oral con Oscar Schachter" . Instituto Charles Babbage . Universidad de Minnesota. pag. 17.
- ^ "Herramientas de soporte de software ISA JOVIAL (J73) y MIL-STD-1750A". Boletín Ada – JOVIAL . Centro de control de idiomas de alto nivel, Wright-Patterson AFB, Fuerza Aérea de EE. UU. Septiembre de 1993. págs. 21-24.
- ^ "Sistemas de desarrollo maduros, probados en el campo en cientos de aplicaciones" . DDC-I . Phoenix, Arizona. 2020 . Consultado el 22 de abril de 2020 .
- ^ Rayner, Gordon (12 de diciembre de 2014). "Caos de vuelos del Reino Unido: computadoras de control de tráfico aéreo que utilizan software de la década de 1960" . Daily Telegraph . Consultado el 21 de abril de 2020 .
- ^ Manual de capacitación sobre tarifas básicas de computadoras digitales, NAVEDTRA 10088-B , Marina de los Estados Unidos , 1978
- ^ Halang, Wolfgang A .; Stoyenko, Alexander D. (1991). Construcción de sistemas predecibles en tiempo real . Springer Verlag. pag. 31. ISBN 978-1-4615-4032-8.
- ^ "Jovial para suavizar el cambio de la Fuerza Aérea de EE.UU. a Ada" . Electrónica de defensa . 1 de marzo de 1984. Archivado desde el original el 12 de octubre de 2012 . Consultado el 28 de enero de 2015 .
- ^ "AN / APG-73, Enciclopedia de guerreros" . Archivado desde el original el 5 de noviembre de 2004.
- ^ Softech, Inc. (junio de 1981). Manual de programación informática para el lenguaje JOVIAL (J73) (PDF) . Roma, Nueva York: Rome Air Development Center. pag. 12 . Consultado el 16 de mayo de 2018 .
enlaces externos
- El desarrollo de jovial
- "MIL-STD-1589C, Norma militar: JOVIAL (J73)" (PDF) . Departamento de Defensa de Estados Unidos . 6 de julio de 1984.
- Archivo de abril de 2006 de la Oficina del Programa JOVIAL
- Página sobre Jules Schwartz , incluida la película de una charla humorística sobre el desarrollo de JOVIAL [ enlace muerto ]
- DODSSP Departamento de Defensa de EE. UU. Único punto de almacenamiento para especificaciones militares, estándares y publicaciones relacionadas
- Asociados de ingeniería de software
- DDC-I, Inc .: DDC-I JOVIAL Compiler System (DJCS)
- Schwartz, Jules. Conferencia de Jules Schwartz sobre JOVIAL (video). YouTube . Consultado el 22 de abril de 2020 .