Manual Detallado Cobol

  • Published on
    14-Jul-2015

  • View
    267

  • Download
    1

Embed Size (px)

Transcript

MANUAL DE COBOL Introduccin La orientacin del curso / manual la enfocar a mi entorno de trabajo, es decir RM bajo UNIX, pero como os he dicho antes, no hay muchas diferencias. Al pensar en Cobol como lenguaje de programacin debemos de tener presente que nos referimos a un lenguaje dedicado a gestin de datos con una magnfica transportabilidad entre los distintos sistemas, yo he ejecutado el mismo programa en MS-DOS y UNIX sin modificar ni una linea de cdigo y copiando solo el objeto. Si se le llaman lenguajes de programacin, es porque realmente se consideran como cualquier idioma, es decir tiene su gramtica, sus verbos, sus frases, sus prrafos y el cobol adems tiene una gran similitud con el ingls, ya que todo su entorno est sacado de ste idioma. Cobol adems es un lenguaje estructurado y sus partes se diferencias claramente en Divisiones. Estas son 4, son obligatorias y cada una de ellas tiene una misin diferente dentro de cada programa como veremos a continuacin. El programa cobol se escribe secuencialmente en lneas de 80 caracteres o menos con la siguiente divisin:

La parte (1) comprende las columnas de la 1 a la 6 ambas inclusive y se utiliza para numerar las lneas, aunque hoy en da prcticamente no se utilizan. La parte (2) comprende la columna 7 y en ella podemos encontrar, un guin (-) que nos indica que esta lnea es continuacin de la anterior pero que por su tamao ocupa mas de una lnea, un asteristo (*) que nos indica que el texto que viene a continuacin es un comentario y por lo tanto que el compilador lo ignore, o bien puede servir dependiendo de los compiladores para indicaciones del debug. La parte (3) se le llama Area A comprende las columnas 8 a 11 ambas inclusive y aqu es donde se escriben los nombre de las divisiones, de las secciones, de los prrafos, los indicadores de FD (File Description) y los niveles de variables 01 y 77. La parte (4) llamada Area B comprende desde la columna 12 a la 72 y en ellas se incluirn todas las instrucciones del programa, las lineas de las secciones y los niveles de variables mayores a 01. La parte (5) de la columna 73 a la 80 no se utiliza y por lo tanto es ignorada por el compilador. El punto es un signo de vital importancia en cobol ya que nos indica el final de una linea, en el han de terminar todas las secciones, divisiones y prrafos. Si al final de una linea el compilador no encuentra el punto, interpretar que la instruccin contina hasta que aparezca el punto de fin de linea. Al igual que en otros lenguajes, el cobol dispone de palabras reservadas que no debemos de utilizar como nombres de variables o de prrafos, adems stos no deben de exceder de 30 caracteres (depende del compilador). Las variables y constantes que se pueden utilizar son numricas, alfabticas o alfanumricas. Las numricas al contrario de la mayora de los lenguajes actuales o las bases de datos no

miden su tamao por bytes sino por dgitos, es decir, que una variable de 6 dgitos podr contener nmeros desde 0 hasta 999999 si es de valor absoluto o incluyendo los negativos si lleva signo. Para las alfanumricas en cambio no hay cambio alguna y su tamao viene indicado por el nmero de caracteres que ocupa. Existen adems en cobol unas variables que vienen con un valor propio y que se pueden utilizar libremente, tambin llamadas Constantes Figurativas, como ZERO, SPACE, LOW-VALUES, HIGHVALUES, etc... Quisiera respetar para todo el manual las mismas pautas, color Amarillo para las palabras reservadas cobol, subrayado para las obligatorias, en cursiva los comentarios y en normal el resto.

Identification Division Esta es la primera linea de todo programa Cobol e identifica a la primera divisin donde se especifica el nombre del programa, el del autor y dems datos, su sintaxis sera la siguiente: IDENTIFICATION DIVISION. PROGRAM-IDNombre del programa. AUTHOR Nombre del autor. INSTALLATION Lugar donde est instalado. DATE-WRITTEN Fecha de creacin. DATE-COMPILED Fecha de compilacin. REMARKSComentarios. Vemos que el nico prrafo obligatorio adems del nombre de divisin es el que hace referencia al nombre del programa, los dems nombre de autor, lugar de instalacin, fechas de creacin y compilacin y comentarios son opcionales, eso si, si se incluyen se deben de poner cumpliendo las normas. Podemos incluir adems todos los comentarios o explicaciones que creamos oportunas incluyendo en la columna 7 un asterisco (*) que nos indica que el compilador har caso omiso de lo que venga a continuacin, por ejemplo. * /////// Este programa es para hacer algo /////// * // atencin a la seccin de la fecha //// Ejemplo: IDENTIFICATION DIVISION. PROGRAM-ID. MANCLI. AUTHOR. ANDRES MONTES. INSTALLATION. WWW. REMARKS. Programa para mantenimiento de fichero de clientes. Nota final: Poco mas podemos decir de sta division, obviamente las dems no son tan pequeas, sin embargo posee dos de las lineas mas importantes de cualquier programa cobol. Nota final:

Poco mas podemos decir de sta division, obviamente las dems no son tan pequeas, sin embargo posee dos de las lineas mas importantes de cualquier programa cobol.

Environment Division Es la segunda division por orden de aparicin, y en ella se especifican, el ordenador donde se escribi y se ejecutar el programa, asi como la relacion entre los ficheros a utilizar con sus correspondencias externas, es decir con los dispositivos a los que har referencia el programa objeto cuando vaya a establecer comunicacin con dicho fichero. Diremos antes de continuar que en los primeros cobol haba muchas partes que eran obligatorias en cada programa, pero hoy en dia, por ejemplo, sta divisin ya no es obligatoria, asi como ninguna de sus partes. Su sintaxis sera la siguiente: ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. Ordenador donde se escribi el fuente. OBJECT-COMPUTER. Ordenador donde se ejecuta el objeto. SPECIAL-NAMES. Cambiar valores para constantes del lenguaje, pueden variar en cada compilador. Como se aprecia en su sintaxis, sta segunda division se divide a su vez en dos secciones, que se describen a continuacion: CONFIGURATION SECTION: Donde describimos los tipos de ordenadores en que se escribio y se ejecutar el programa, o bien el nombre del compilador y asignacin de valores a ciertas constantes utilizadas por el compilador, estos valores se introducen en sus respectivas lineas como se ve arriba. Para la linea de SPECIAL-NAMES el uso mas habitual es el de cambiar el punto decimal usado por los ingleses por la coma y asi poder especificar los puntos para los miles, su formato sera el siguiente: SPECIAL-NAMES. DECIMAL-POINT IS COMMA. Tambin podriamos cambiar el valor del smbolo de la moneda con: CURRENCY SIGN IS literal , suele ser un solo caracter y no puede coincidir con ninguno de los que usamos para definir las variables, es decir ni A,ni Z,ni 9,ni -,ni +,ni X, etc... O hacer que todas las letras introducidas sean maysculas o minsculas o que no haya diferencias entre ambas con la clausula ALPHABET. INPUT-OUTPUT SECION: Es la siguiente seccin dentro de la Environment, donde se especificarn todos los ficheros que vamos a utilizar, su tipo, su modo de acceso asi como el medio en que estarn, esta seccin solo ser obligatoria cuando vayamos a utilizar ficheros. Esta tiene dos prrafos FILE-CONTROL e I-O-CONTROL. 123456789012 AB INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT [OPTIONAL] Nombre-de-archivo ASSIGN TO Tipo-de-dispositivo ORGANIZATION IS Tipo de organizacion ACCESS MODE IS Mode de acceso al fichero RECORD KEY IS Clave del registro

ALTERNATE RECORD KEY IS Claves alternativas registro WITH DUPLICATES FILE STATUS IS Variable de estado del fichero. Vamos a explicar cada una de las clusulas que encontramos dentro de la Input-Output Section. Clusula SELECT es aqui donde especificamos el nombre lgico que va a tener el fichero dentro del programa, suele ser una palabra que identifique lo mas claro posible el contenido del fichero, por ejemplo ARTICULOS, PROVEEDORES, CLIENTES. Clusula OPTIONAL si indicamos esta opcin al hacer un OPEN I-O, si el archivo no existe, se crea. Con lo cual nos evitamos tener que abrirlo como OUTPUT y cerrarlo, antes de poder utilizarlo por primera vez. Clusula ASSIGN aqui especificamos el tipo de dispositivo, si es una impresora PRINTER, si es un fichero sobre el que vamos a grabar RANDOM o DISC, se pueden utilizar otros como INPUT, INPUT-OUTPUT, CASSETTE, MAGNETIC-TAPE, pero sin duda los mas utilizados son los dos primeros para identificar si el fichero utilizar una salida impresa o se utilizar sobre disco. Para identificar ficheros utilizados para clasificar utilizaremos SORT. Clusula ORGANIZATION aqui indicamos la organizacin de los registros de nuestro fichero, podr ser SEQUENTIAL, RELATIVE o INDEXED, si nuestro archivo fuera secuencial se podran omitir sta clausula asi como las restantes. De sta organizacin se deriva el formato del fichero, SEQUENTIAL si los registros se graban secuencialmente conforme se dan entrada sin importar si estn o no repetidos, un ejemplo claro son los archivos de impresora, todos los listados son secuenciales. RELATIVE, si cada registro es identificado por un valor entero con su posicin relativa (practicamente no se utiliza). INDEXED es la mas utilizada e identifica a ficheros que sus registros son accesibles mediante una clave unica e irrepetible o por varias que pueden estar duplicadas, cualquier fichero de mantenimiento, por ejemplo de ARTICULOS, podra ser INDEXED, y cada cdigo ser nico para cada artculo y con el nos iremos a su posicin y podremos ver todos los demas datos que hagan referencia al registro. Existe tambin para los archivos de texto, tipo AUTOEXEC.BAT la posibilidad de asignarlos directamente especificando LINE SEQUENTIAL en sta clausula.

Clusula ACCESS MODE indica el modo de acceso al fichero, puede ser SEQUENTIAL, RANDOM o DYNAMIC, si no se especifica ninguno o si el fichero es SEQUENTIAL entiende que el modo ser SEQUENTIAL. RANDOM indica que accederemos a el