Articulo de referencia

CMS-2

{{citation\n | title = Digital Computer Basics Rate Training Manual, NAVEDTRA 10088-B\n | author = U.S. Navy\n | publisher = U.S. Navy\n | date = 1978\n | quote = \n}} "},"influ...

Ejemplo de código CMS-2

CMS-2 es un lenguaje de programación para sistemas embebidos utilizado por la Armada de los Estados Unidos . [ 2 ] Fue un intento inicial de desarrollar un lenguaje de programación de alto nivel estandarizado, con el objetivo de mejorar la portabilidad y la reutilización del código. CMS-2 se desarrolló principalmente para los sistemas de datos tácticos ( NTDS ) de la Armada de los Estados Unidos. [ 1 ]

CMS-2 fue desarrollado por RAND Corporation a principios de la década de 1970 y significa "Compiler Monitor System" (Sistema de Monitoreo del Compilador). En la literatura, al nombre "CMS-2" le sigue una letra que designa el tipo de sistema objetivo. Por ejemplo, CMS-2M está dirigido a procesadores de 16 bits de la Armada, como el AN/AYK-14 . [ 2 ]

Historia

CMS-2 fue desarrollado para FCPCPAC (Fleet Computer Programming Center - Pacific) en San Diego, California. Fue implementado por Computer Sciences Corporation en 1968 con la asistencia de diseño de Intermetrics . El lenguaje continuó desarrollándose, llegando a ser compatible con varias computadoras, incluidas las AN/UYK-7 , AN/UYK-43 , UYK-20 y UYK-44 [ 3 ] . [ 4 ]

Características del idioma

CMS-2 fue diseñado para fomentar la modularización de programas, permitiendo la compilación independiente de partes de un sistema completo. El lenguaje está orientado a sentencias. El código fuente es de formato libre y puede organizarse para facilitar la programación. Los tipos de datos incluyen punto fijo, punto flotante, booleano, carácter y estado. Se permite la referencia directa y la manipulación de cadenas de caracteres y bits. Puede incluirse código máquina simbólico, conocido como código directo. [ 1 ]

Estructura del programa

Ejemplo de sistema de tiempo de compilación CMS-2

Un programa CMS-2 se compone de sentencias. Las sentencias están formadas por símbolos separados por delimitadores. Las categorías de símbolos incluyen operadores, identificadores y constantes. Los operadores son primitivas del lenguaje asignadas por el compilador para operaciones o definiciones específicas en un programa. Los identificadores son nombres únicos asignados por el programador a unidades de datos, elementos del programa y etiquetas de sentencias. Las constantes son valores conocidos que pueden ser numéricos, cadenas de Hollerith, valores de estado o booleanos.

Las declaraciones CMS-2 son de formato libre y finalizan con el signo de dólar. Se puede colocar una etiqueta al principio de la declaración para fines de referencia.

Un programa fuente CMS-2 se compone de dos tipos básicos de instrucciones. Las instrucciones declarativas proporcionan información de control básica al compilador y definen la estructura de los datos asociados a un programa en particular. Las instrucciones dinámicas hacen que el compilador genere instrucciones de máquina ejecutables (código objeto).

Las declaraciones que definen los datos de un programa se agrupan en unidades llamadas diseños de datos. Los diseños de datos consisten en definiciones precisas para áreas de almacenamiento de datos temporales y permanentes, áreas de entrada, áreas de salida y unidades de datos especiales. Las instrucciones dinámicas que actúan sobre los datos o realizan cálculos se agrupan en procedimientos. Los diseños de datos y los procedimientos se agrupan a su vez para formar elementos del sistema de un programa CMS-2. El compilador combina los elementos del sistema en un sistema de tiempo de compilación. Un sistema de tiempo de compilación puede ser independiente o formar parte de un programa más grande. [ 1 ]

Declaraciones de datos

Las declaraciones de datos proporcionan al compilador información sobre las definiciones de los elementos de datos. Definen el formato, la estructura y el orden de los elementos de datos en un sistema en tiempo de compilación. Los tres tipos principales de datos son los conmutadores, las variables y los agregados. [ 1 ]

Interruptores

Los conmutadores permiten transferir el control del programa a una ubicación específica en un sistema de compilación. Contienen un conjunto de identificadores o puntos de conmutación para facilitar las transferencias y bifurcaciones del programa. El conmutador representa la dirección del programa, la etiqueta de una instrucción o el nombre de un procedimiento.

Variables

Una variable es un dato individual. Puede constar de un bit, varios bits o palabras. Se le puede asignar un valor en su definición. Las variables pueden contener un valor constante o variable. Los tipos de datos incluyen enteros, números de punto fijo, números de punto flotante, cadenas de caracteres Hollerith, estados y valores booleanos.

Áridos

Las tablas almacenan conjuntos ordenados de información con la misma estructura. La unidad básica de datos en una tabla es un elemento. Los elementos pueden subdividirse en campos, la subdivisión más pequeña de una tabla. Los tipos de datos permitidos en los campos incluyen entero, punto fijo, punto flotante, cadena de caracteres Hollerith, estado o booleano. Un array es una extensión del concepto de tabla. La unidad estructural básica de un array es un elemento. Los elementos del array contienen campos definidos por el programador.

Declaraciones dinámicas

Las sentencias dinámicas especifican operaciones de procesamiento y dan como resultado la generación de código ejecutable por parte del compilador. Una sentencia dinámica consta de un operador seguido de una lista de operandos y operadores adicionales. Un operando puede ser un nombre, una constante, una referencia a un elemento de datos o una expresión. [ 1 ]

Operadores de declaraciones

A continuación se resumen los principales operadores de CMS-2.

Operadores especiales

Los operadores especiales facilitan las referencias a estructuras de datos y las operaciones sobre ellas. [ 1 ]

Declaraciones de estructura del programa

Las instrucciones dinámicas que describen las operaciones de procesamiento de un programa se agrupan en bloques de instrucciones llamados procedimientos. [ 1 ]

Declaraciones de entrada/salida de alto nivel

Las instrucciones de entrada/salida proporcionan comunicación con los dispositivos de hardware mientras se ejecutan en un entorno que no es en tiempo real bajo un sistema de monitorización. [ 1 ]

Sistema de monitorización del compilador 2 (CMS-2)

El Compiler Monitor System 2 (CMS-2) era un sistema que se ejecutaba en el UNIVAC CP-642B ( AN/USQ-20 ). El software del sistema incluía el monitor , el compilador, el bibliotecario, el cargador CP-642, la utilidad de cinta y el diagrama de flujo. [ 1 ]

Monitor MS-2

Sistema operativo de procesamiento por lotes que controla la ejecución de los componentes CMS-2 y las tareas de usuario que se ejecutan en el ordenador CP-642. Proporciona funciones de entrada/salida, biblioteca de software y herramientas de depuración. También incluye contabilidad de tareas.

Compilador CMS-2

Un compilador para los lenguajes CS-1 y CMS-2 que genera código objeto para las computadoras CP-642 , L-304, AN/UYK-7 , 1830A y 1218/1219 . Durante la década de 1970, existieron diferentes versiones del compilador CMS-2, dependiendo de la computadora utilizada para compilar el código. Parte del código fuente tuvo que ser reescrito para solucionar problemas con ciertas funciones. Además, las distintas versiones de CMS-2 presentaban problemas con las herramientas de depuración.

Compilador XCMS-2

Un compilador CMS-2 extendido que añade características de lenguaje para la computadora AN/UYK-7. Solo genera código objeto para AN/UYK-7.

Bibliotecario CMS-2

Un sistema de gestión de archivos que proporciona almacenamiento y acceso al código fuente y al código objeto.

Cargadores de código objeto CP-642

Dos cargadores de código objeto para cargar código objeto absoluto o reubicable.

Utilidad de cinta

Un conjunto de utilidades para gestionar datos en cinta magnética.

Diagrama de flujo CMS-2

El software de diagramas de flujo procesa las instrucciones del diagrama de flujo en el código fuente de CMS-2 y genera un diagrama de flujo que se imprime en una impresora de alta velocidad.

Véase también

Referencias

  1. 1 2 3 4 5 6 7 8 9 10 Marina de los EE. UU. (1978), Manual de capacitación básica sobre informática digital, NAVEDTRA 10088-B , Marina de los EE. UU.
  2. 1 2 Neal Ziring (1998-10-19). "CMS-2" . Ziring MicroWeb. Archivado del original el 23-11-2014 . Recuperado el 08-07-2014 .{{cite web}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  3. Mark Wilson - experiencia personal trabajando con UYK-20 y UYK-44 en Aegis ORTS
  4. Actividad de apoyo a los sistemas de dirección de combate de la flota (1986), Manual de referencia para programadores del CMS-2Y para las computadoras AN/UYK-7 y AN/UYK-43 , Armada de los Estados Unidos
  • Manual de referencia para programadores CMS-2Y para los modelos AN UYK-7 y AN UYK-43 (octubre de 1986)
  • Sobre la viabilidad de emular la computadora AN/UYK-7 en el elemento de procesamiento de señales AADC.
  • Entrada del Diccionario de Lenguajes de Programación para CMS-2