
Hojas de papel y las columnas de COBOL
Capítulo 9: Hoja de codificación - Columnas
Si ya has programado en lenguajes de programación modernos, puede que te preguntes, ¿por qué es tan rara la escritura de COBOL? ¿Por qué dejamos una parte del principio de la línea vacía? ¿Qué son estas guías que trae OpenCobolIDE?
En este capítulo obtendrás respuestas a todo esto y más.
Programación en papel
Sí, lo has leído bien. ¿Te han hecho en alguna clase de programación hacer un examen en papel escribiendo código?
Si estudias programación en algún centro, seguro que sí. Algunos piensan que es una tontería y otros que no, que así se forjan los programadores más rudos. Mi opinión personal, aunque no sea relevante, es que para qué aprender a fuego todo lo que escribimos si tenemos grandes ayudas con todo el software que hay hoy en día.
No pido hacer exámenes con internet para realizar búsquedas, solo un ordenador para poder ir probando los resultados de tu código. ¿Acaso, te compila todo a la primera? ¿Por qué tendrías que ser mejor estudiante que programador y escribir un código sin errores a la primera en un examen?
Cuestiones actuales a parte, en la época de la salida de COBOL, esto no era una opción, era un requisito, ya que había que dibujar primero lo que se conoce como "flowchart" en inglés, que se puede traducir como diagrama de flujo. Este servía y sirve para simplificar en un dibujo el algoritmo antes de ponerse a escribir código (cosa que se sigue haciendo igualmente hoy en día).

Una vez tenías la idea, era el momento de pasarlo a código. También a mano, con hojas de codificación.
Hojas de codificación de COBOL
Inicialmente los programas de COBOL se escribían en hojas de codificación. Los programas eran perforados en tarjetas perforadas y posteriormente se leían en un ordenador con un lector de tarjetas.

Una vez tenías el programa terminado, llevabas todas tus hojas ordenaditas a perforar en tarjetas como esta:

Y aquí tienes un programa literalmente físico. Todas las tarjetas debían estar ordenadas, de lo contrario se mascaba la tragedia.

¿Por qué te cuento todo esto? Bien, COBOL, en tu equipo, funciona igual que las hojas de codificación. Así está hecho COBOL y ya no va a cambiar a estas alturas en este sentido.
Transformemos la explicación de esta hoja de COBOL a la de nuestro IDE.
Mira la hoja de codificación. Abajo del todo y arriba, aunque muy pequeñito, se pueden ver números que empiezan desde el 1 (izquierda) hasta el 72 (derecha). Estas son las columnas. Cada caracter ocupará una de ellas.
Arriba, tenemos áreas que separan ciertas columnas.
Área de secuencia de hoja de codificación COBOL
La primera área, va de las columnas de la 1 a la 6. Estas representan la secuencia (SEQUENCE), son para el número de secuencia, el cual, va en orden ascendente.
Ya puedes ver que esto ha quedado totalmente obsoleto, ya que con el propio IDE, no necesitamos establecer ninguna secuencia.
Columna de comentarios
Si tenemos que incluír un comentario en cierta línea, marcaremos la columna 7 (área indicadora) con un asterísco.
Las áreas A y B de COBOL
La siguientes áreas van desde la columna 8 hasta la 11. La conocida como área A, y desde la columna 12 a la 72 el área B.
Normalmente se empieza a escribir a partir de la zona A las DIVISIONES, SECCIONES, números de nivel superiores, etc.
A partir de la columna B, las instrucciones del programa, números de nivel mayores al 01
, etc.
Evidentemente, no debes saber que son algunas de las cosas que voy diciendo. Pronto lo aprenderás, no te preocupes. Solo quédate que con que desde el área A hasta el final de la B, escribes el programa.
Si lo empiezas todo desde el área A no da error, pero está peor organizado y puede dar errores en compiladores antiguos, así que siempre intenta hacerlo lo mejor posible siguiendo mis ejemplos y las convenciones que te vaya mostrando.
La última área es la que va desde la columna 73 a la 80, la llamada área de identificación, la cuál está en desuso y es ignorada por el compilador. En la hoja de codificación aparece arriba del todo.
Bien, algunas hojas llevaban para todas las filas un espacio para este área, lo cual es algo bastante innecesario, algo así como puedes ver en OpenCobolIDE, que deja todas las filas para esa área, como esta:

No se ve muy bien, pero fíjate que hay una columna (IDENTIFICATION) extra al final.
Veamos todo esto representado en OpenCobolIDE.
El área de secuencia es la que ocupa la zona marcada. 6 caracteres, a uno de la primera línea.

Después tenemos la columna de comentarios (la columna que sobra entre el área de secuencia y la primera línea).

Entre la primera línea corresponde al área A y la segunda a la B.
Entre la línea 3 y la 4, tenemos el área de identificación, la cual podemos utilizar para poner los números de línea de código, lo cual, con un IDE, ya es innecesario, ya que a la izquierda, nos las va contando.
Si siguiésemos el uso de las hojas de codificación en nuestro editor, quedaría algo así:

Sin embargo, esto es totalmente innecesario y además, OpenCobolIDE no está preparado para hacerlo, ya que tenemos que ir tabulando manualmente.
Sin embargo, esto compila correctamente, en ese aspecto si que está adaptado.
En la columna IDENTIFICATION, no puedes escribir código. Por ejemplo, mira este DISPLAY
, no puede pasarse de ese área.
Correcto:

Incorrecto:

Resultado en la consola
Se esperaba un caracter de continuación (ya lo explicaré).
Error de sintaxis, fin de archivo inesperado.
continuation character expected
syntax error, unexpected end of file
Toda la información de este capítulo, te ha servido para entender el porqué de esta forma tan peculiar de escribir en COBOL.
Comentarios
Si te quedan dudas sobre el temario, sobre Cobol, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.