stringtranslate.com

JOVIAL

JOVIAL es un lenguaje de programación de alto nivel basado en ALGOL 58 , especializado para el desarrollo de sistemas embebidos (sistemas informáticos especializados diseñados para realizar una o varias funciones dedicadas, generalmente embebidos como parte de un dispositivo más grande y completo, incluyendo partes mecánicas). Fue un importante lenguaje de programación de sistemas durante las décadas de 1960 y 1970. [2]

Historia

Manual de programación informática para el lenguaje Jovial (J73)

JOVIAL fue desarrollado como un nuevo lenguaje de programación de "orden superior" [3] :1  a partir de 1959 por un equipo de System Development Corporation (SDC) dirigido por Jules Schwartz para componer software para la electrónica de aviones militares. [4]

El nombre JOVIAL es un acrónimo de Jules' Own Version [5] del International Algebraic Language ; International Algorithmic Language (IAL) fue un nombre propuesto originalmente para ALGOL 58. [ 6] Según Schwartz, el lenguaje se llamó originalmente OVIAL , pero hubo oposición por varias razones. Entonces se sugirió JOVIAL , sin ningún significado asociado a J. Un poco en broma, se sugirió que el lenguaje se llamara en honor a Schwartz, ya que él era el presidente de la reunión , y este nombre no oficial se mantuvo. [7]

Durante la década de 1960, JOVIAL formó parte de la serie de proyectos militares L de los EE. UU. , en particular el Sistema de control de mando aéreo estratégico ITT 465L (proyecto SACCS), debido a la falta de lenguajes de programación de computación en tiempo real disponibles. Alrededor del 95 por ciento del proyecto SACCS, administrado por International Telephone & Telegraph (ITT) con software escrito principalmente por SDC, se escribió en JOVIAL. El proyecto de software llevó dos años y menos de 1400 años de programación, menos de la mitad del tiempo equivalente en el proyecto L SAGE . [8]

Botón de pin que muestra JOVIAL como uno de los lenguajes para los que Advanced Computer Techniques creó compiladores cruzados

A 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, la MIL-STD-1750A , y se crearon programas JOVIAL posteriores para ese procesador. Varios proveedores comerciales proporcionaron compiladores y herramientas de programación relacionadas para crear JOVIAL para procesadores como el MIL-STD-1750A, incluidos Advanced Computer Techniques (ACT), TLD Systems , Proprietary Software Systems (PSS) y otros. [9] [10]

JOVIAL se estandarizó en 1973 con MIL-STD-1589 y se revisó en 1984 con MIL-STD-1589C . Todavía se utiliza para actualizar y mantener el software en vehículos y aeronaves militares más antiguos. Hay tres dialectos de uso común: J3, J3B-2 y J73.

A partir de 2010 , JOVIAL ya no es mantenido ni distribuido por la Oficina del Programa JOVIAL de la USAF (JPO). El software que antes distribuía la 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/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 incluye compiladores JOVIAL y herramientas relacionadas a partir de abril de 2020. [ 2]

La mayor parte del software implementado en JOVIAL es de misión crítica y su mantenimiento es cada vez más difícil. En diciembre de 2014, se informó que el software derivado del código JOVIAL producido en la década de 1960 estuvo involucrado en una falla importante de la infraestructura de control de tráfico aéreo del Reino Unido y que la agencia que lo utiliza, NATS Holdings , tuvo que capacitar a su personal de TI en JOVIAL para que pudieran mantener este software, cuyo reemplazo no estaba programado hasta 2016. [11]

Influencia

Los lenguajes influenciados por JOVIAL incluyen CORAL , SYMPL , Space Programming Language (SPL) y, en cierta medida, CMS-2 . [12] Un subconjunto interactivo de JOVIAL llamado TINT, similar a JOSS , se desarrolló en la década de 1960. [7]

Características

JOVIAL incluye características que no se encuentran en el ALGOL estándar, como elementos (ahora llamados estructuras ), matrices de elementos, variables de estado (ahora llamadas enumeraciones ) y lenguaje ensamblador en línea . [13]

También se incluyeron disposiciones para datos "empaquetados" dentro de tablas. El empaquetamiento 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 era importante con respecto a la memoria y el almacenamiento limitados de los sistemas informáticos de la era JOVIAL.

El pool de comunicaciones (COMPOOL) en Jovial es similar a las bibliotecas de archivos de encabezado para lenguajes como PL/I y C.

Aplicaciones

Los sistemas notables que utilizan el software JOVIAL integrado incluyen:

Ejemplo

El siguiente ejemplo está tomado del Manual de programación informática para el lenguaje JOVIAL (J73). [3] : 12 

PROC RETRIEVE(CODIGO:VALOR); COMENZAR CÓDIGO DEL ARTÍCULO U; VALOR DEL ARTICULO F; VALOR = -99999.; PARA I:0 POR 1 MIENTRAS I<1000; SI CÓDIGO = TABCODE(I); COMENZAR VALOR = TABVALUE(I); SALIDA; FIN FIN

Este ejemplo define un procedimiento denominado RETRIEVEque toma un argumento de entrada entero sin signo CODEy un argumento de salida de punto flotante VALUE. Busca en la matriz de 1000 elementos TABCODEuna entrada que coincida con CODEy, a continuación, establece la variable de punto flotante VALUEen el elemento de la matriz TABVALUEque tenga el mismo índice de matriz coincidente. Si no se encuentra ningún elemento coincidente, VALUEse establece en −99999.0.

Referencias

  1. ^ "Software Engineering Associates, Inc. (SEA)". Archivado desde el original el 21 de diciembre de 2019. Consultado el 17 de agosto de 2006 .
  2. ^ ab "Sistemas de desarrollo maduros, probados en campo en cientos de aplicaciones". DDC-I . Phoenix, Arizona. 2020 . Consultado el 22 de abril de 2020 .
  3. ^ ab Softech, Inc. (junio de 1981). Manual de programación informática para el lenguaje JOVIAL (J73) (PDF) . Roma, Nueva York: Rome Air Development Center. pág. 1. Archivado (PDF) del original el 29 de julio de 2018. Consultado el 16 de mayo de 2018 .
  4. ^ Schwartz, Jules I. (7 de abril de 1989). "Entrevista de historia oral con Jules I. Schwartz". Instituto Charles Babbage . Universidad de Minnesota.Schwartz trabajó para la RAND Corporation en varios proyectos relacionados con la defensa: especialmente Semi-Automatic Ground Environment (SAGE) y JOHNNIAC . Cuando RAND organizó la System Development Corporation , 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 sobre 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 sobre su puesto posterior en Computer Sciences Corporation .
  5. ^ "Ed y Kay, pioneros de JOVIAL". jovial.com . Consultado el 23 de febrero de 2021 .
  6. ^ Shaw, Christopher J. (1963-12-01). "Una especificación de JOVIAL". Comunicaciones de la ACM . 6 (12): 721–736. doi : 10.1145/763973.763978 . ISSN  0001-0782. S2CID  1427629.
  7. ^ ab Schwartz, Jules I. (8 de agosto de 1978). "El desarrollo de Jovial" (PDF) . ACM SIGPLAN Notices . 13 (8): 203. doi :10.1145/960118.808385. S2CID  17913060 . Consultado el 28 de enero de 2015 .
  8. ^ Campbell-Kelly, Martin (2003). De las reservas de las aerolíneas a Sonic the Hedgehog: una historia de la industria del software . Cambridge, Massachusetts: MIT Press . Págs. 46-7. ISBN. 0-262-03303-8.
  9. ^ Schachter, Oscar (7 de mayo de 2004). "Entrevista de historia oral con Oscar Schachter". Instituto Charles Babbage . Universidad de Minnesota: 17.
  10. ^ "Jovial (J73) y herramientas de soporte de software ISA MIL-STD-1750A". Boletín Ada–JOVIAL . Instalación de control de lenguaje de alto orden, Base de la Fuerza Aérea Wright-Patterson, Fuerza Aérea de los EE. UU. Septiembre de 1993. Págs. 21–24.
  11. ^ Rayner, Gordon (12 de diciembre de 2014). «Caos en los vuelos del Reino Unido: ordenadores de control del tráfico aéreo que utilizan software de la década de 1960». Daily Telegraph . Consultado el 21 de abril de 2020 .
  12. ^ Manual de entrenamiento de velocidad sobre conceptos básicos de computadoras digitales, NAVEDTRA 10088-B , Marina de los Estados Unidos , 1978
  13. ^ Halang, Wolfgang A.; Stoyenko, Alexander D. (1991). Construcción de sistemas predecibles en tiempo real. Springer Verlag. pág. 31. ISBN 978-1-4615-4032-8.
  14. ^ "Jovial to smooth US Air Force shift to Ada". Defense Electronics . 1 de marzo de 1984. Archivado desde el original el 12 de octubre de 2012. Consultado el 28 de enero de 2015 .
  15. ^ "AN/APG-73, Enciclopedia del guerrero". Archivado desde el original el 5 de noviembre de 2004.

Enlaces externos