typestar

Fundamentos del lenguaje

27 pasos en 9 series de COBOL.

COBOL es el lenguaje más viejo de esta colección y el que más probablemente esté moviendo tu dinero en este momento: diseñado en 1959 para el procesamiento de datos de negocio, todavía liquida lotes de tarjetas de crédito, salda reclamos de seguros e imprime estados de cuenta en mainframes que han sobrevivido a todos los planes de reescritura. Se lee como los memos de una oficina muy cuidadosa — datos descritos hasta el dígito, verbos que dicen lo que hacen, un punto al final de cada oración.

Este tour cubre el núcleo moderno en formato libre tal como lo compila GnuCOBOL: el esqueleto de divisiones, las cláusulas PICTURE y la salida editada, MOVE y REDEFINES, los verbos aritméticos, IF y EVALUATE y los nombres de condición de nivel 88, la familia de bucles PERFORM, tablas OCCURS con STRING e INSPECT, y funciones intrínsecas con CALL. El bis entrega programas completos. Cada fragmento compila sin advertencias y corre. Las palabras de COBOL corren largas, así que las barras de ritmo están más abajo que en cualquier otro lenguaje — el tecleo es el mismo, los tokens son más grandes.

Empieza este tour

La forma del programa

  • La forma del programaEl programa COBOL más pequeño: dos divisiones, dos oraciones y un punto final en cada una.
  • WORKING-STORAGETres elementos de nivel 01 declaran los datos del faro antes de que corra ninguna sentencia.
  • ACCEPT FROMACCEPT lee valores del sistema — la fecha y el reloj — sin tocar el teclado.

Pictures

  • Cláusulas PICTURELa cláusula PIC es el sistema de tipos: 9 para dígitos, X para cualquier cosa, V y S invisibles.
  • Campos editadosMOVE hacia un campo editado es la manera COBOL de formatear números para personas.
  • Elementos de grupoLos números de nivel arman un registro: el 01 es dueño del grupo, los 05 son sus campos.

Mover datos

  • La semántica de MOVEMOVE ajusta el emisor al receptor: rellena con espacios hacia un lado, corta hacia el otro.
  • INITIALIZEUn solo INITIALIZE limpia un registro entero: números a cero, texto a espacios.
  • REDEFINESREDEFINES tiende una segunda estructura sobre los mismos bytes: una fecha, dos vistas.

Aritmética

  • ADD y SUBTRACTAritmética con el verbo adelante, que se lee como una orden al encargado del depósito.
  • COMPUTE y ROUNDEDCOMPUTE toma una expresión entera de una vez; ROUNDED prolija el resultado.
  • DIVIDE con REMAINDERUn solo DIVIDE llena las cajas y la canasta: cociente y resto en un mismo verbo.

Condiciones

  • IF y END-IFUna decisión de navegación en un IF anidado: sin llaves, con END-IF cerrando cada bloque.
  • EVALUATEEVALUATE es el switch de COBOL: un sujeto, un WHEN por código de carga, OTHER para el resto.
  • Condiciones de nivel 88El nivel 88 le pone nombre a un valor de dato, para probarlo y fijarlo con SET como una bandera.

Bucles

  • PERFORM TIMESEl bucle más simple: tocar la campana del barco una cantidad contada de veces.
  • PERFORM VARYINGEl bucle contado: FROM, BY y una prueba UNTIL llevando el entrenamiento de los perros de trineo.
  • PERFORM con párrafosLos párrafos son las subrutinas de COBOL: bloques con nombre que PERFORM visita y de los que vuelve.

Tablas y cadenas

  • Tablas OCCURSOCCURS convierte una picture en una tabla de mareas de cinco casillas, con subíndices desde 1.
  • STRING ... DELIMITEDSTRING empalma campos en una sola etiqueta de amarre, recortando cada uno por su delimitador.
  • INSPECTINSPECT lee o reescribe caracteres en el lugar: cuenta los DOT y después parcha la cinta.

Funciones y llamadas

Bis

  • word_freq.cobUna tabla de frecuencia de palabras hecha de UNSTRING, búsqueda lineal y un gráfico de numerales.
  • grade_report.cobLos puntajes de quiz se pliegan en promedios y calificaciones, y luego en un reporte formateado.
  • temp_stats.cobUna semana de máximas diarias reducida a mínima, máxima y media, con una barra a escala por día.

Los otros tours de COBOL