Está en la página 1de 4

Capitulo 2.

2-

Estructura de un programa Cobol. Descripcin General.

Un programa fuente COBOL es un conjunto de sentencias COBOL sintcticamente correctas. Las sentencias, entradas, prrafos y secciones de un programa COBOL son agrupadas en cuatro divisiones que forman la estructura general de dicho programa. El formato general y el orden de presentaci n de las entradas y sentencias que constituyen un programa COBOL es! "#E$%"&"C'%"O$ #"(")"O$. E$("*O$+E$% #"(")"O$. #'%' #"(")"O$. ,*OCE#U*E #"(")"O$. -E$# ,*O.*'+ id/programa0 Estos nom1res representan las ca1eceras de las cuatro divisiones mencionadas y la ca1ecera de final de programa que es opcional y valida 1ajo las normas '$)23. En esta ultima, id-programa de1e coincidir con el nom1re especificado en el parrafo ,*O.*'+/"#.

Identification division.
La division de "#E$%"&"C'C"O$, sirve para proporcionar un nom1re para identificar el programa. Opcionalmente se puede especificar informaci n acerca del autor, fecha en que fue escrito, etc.. El formato general para la divisi n es el siguiente. "#E$%"&"C'%"O$ #"(")"O$. ,*O.*'+/"#. $om1re del programa. -'U%4O*. $om1re del programador.0 -"$)%'L'%"O$. Lugar de instalaci n.0 -#'%E/5*"%%E$. &echa en que fue escrito.0 -#'%E/CO+,"LE#. &echa en que fue compilado.0 -)ECU*"%6. Entrada de comentarios.0 )olo las dos primeras lineas, "#E$%"&"C'%"O$ #"(")"O$ y ,*O.*'+/"#, son o1ligatorias. Program-id. Este parrafo sirve para espeficar el nom1re del programa. Este nom1re sera utili7ado por el compilador o durante la ejecuci n para indicar en que programa ocurrio algun error. El nom1re del programa de1e ajustarse a las reglas de formaci n de un identificador COBOL, vistas en el capitulo anterior. El resto de los parrafos son opcionales, pueden aparecer en cualquier orden, y su utili7aci n queda perfectamente definida en el formato descrito. )i un comentario ocupa mas de una linea, no esta permitido utili7ar el gui n como caracter de continuaci n, sin em1argo puede ser continuado en las lineas siguientes, comen7ando en el margen B.

Environment division.

* La division de E$%O*$O permite definir el tipo de ordenador para el que fue escrito el programa, asi como los dispositivos perifericos necesarios para soportar los ficheros utili7ados en el programa. El formato general de la secci n es el siguiente! E$("*O$+E$% #"(")"O$. -CO$&".U*'%"O$ )EC%"O$. )OU*CE/CO+,U%E*. +odelo de ordenador. OB8EC%/CO+,U%E*. +odelo de ordenador. ),EC"'L/$'+E). $om1res especiales.0 -"$,U%/OU%,U% )EC%"O$. &"LE/CO$%*OL. Control de ficheros. -"/O CO$%*OL. Control de entrada 9 )alida.0 0 Seccion de configuracin. Esta secci n es opcional. )u utilidad es documentar el programa COBOL, indicando el modelo de ordenador utili7ado y asociar los nom1res nemonicos especificados por el programador a nom1res utili7ados por el compilador. ' continuaci n se descri1en los parrafos que la componen. Parrafo SO !CE" )irve para especificar el modelo de ordenador que va a compilar el programa. )u formato es el siguiente! )OU*CE CO+,U%E*. +odelo de ordenador. -5"%4 #EBU."$. +O#E.0 La opci n 5"%4 #EBU."$. +O#E permite introducir en el fichero fuente COBOL, codigo que nos servira de ayuda para depurar el programa. Parrafo O#$EC%" )irve para especificar el modelo de ordenador que va a ejecutas el programa. )u formato es el siguiente! OB8EC% CO+,U%E*. +odelo de ordenador. +emory )":E entero 5O*#) C4'*'C%E*) +O#ULE)

-,*O.*'+ COLL'%"$. )E;UE$CE ") codigo0 -)E.+E$%/L"+"% ") numero/segmento0. 0 La clausula +E+O*6 )":E tiene como finalidad documentar el programa y especifica el tama<o de la memoria necesaria para poder ejecutar el programa e=presado en pala1ras, caracteres o modulos. La clausula )E;UE$CE, especifica la secuencia de caracteres util7ada en comparaciones y clasificaciones no numericas. )i esta se omite se utili7a el codigo ')C"" o EBC#"C. En nuestro caso se utili7a el codigo ')C"" La clausula )E.+E$%/L"+"% solo sirve de comentario. La segmentaci n en COBOL tiene sentido en la ,*OCE#U*E #"(")"O$, la cual y para este proposito, estara dividida completamentamente en secciones, cada una de las cuales estara clasificada como una porcion fija o como un segmento independiente del programa o1jeto. El numero de segmento esta comprendido entre > y ?@. Parrafo SPECI&'-(&)ES" El fomato de este parrafo es el siguiente! ),EC"'L/$'+E) -$om1re de funci n ") nom1re nem nico0 -'L,4'BE%0

+ -#EC"+'L/,"O"$% ") CO++'0 -CU**E$C6 )".$ ") literal0 Nombre de funcin es un nom1re reconocido por el compilador, por ejemplo ,*"$%E* y nombre nemotecnico es un nom1re creado por el programador. La clausula ALPHABET se utili7a para asignar un nom1re a un conjunto especifico de caracteres o a una determinada secuencia de clasificaci n. )u formato es el siguiente! )%'$#'*#/> )%'$#'*#/A 'L,4'BE% nom1re/alfa1eto ") $'%"(E ')C"" EBC#"C 'L,4'BE% nom1re/alfa1eto ") literal/> %4*U literal/A 'L)O literal/B

El juego de caracteres )%'$#'*#/> o ')C"" es el codigo 'merican )tandard Code for "nformation "nterchange. )%'$#'*#/A es el codigo ")O C/1it. La clausula $'%"(E se refiere al codigo ')C"" o EBC#"C dependiendo de la version COBOL. Cuando se especifica un nom1re de alfa1eto en una clausula CO#E/)E% en la descripci n de fichero, es para especificar el codigo de caracteres que se quiere utili7ar. )i se especifica la opci n de literal, el nom1re de alfa1eto no puede referenciarse en la clausula CO#E/)E%. La secuencia de clasificaci n identificada esta definida de acuerdo con las siguientes reglas! >/ El valor de cada literal especifica! 'D El valor ordinal de un caracter dentro del juego de caracteres nativo, si el literal es numerico. BD El caracter actual dentro del juego de caracteres nativo, si el literal no es numerico. )i el literal no es numerico y esta formado por varios caracteres, cada caracter, comen7ando con el caracter mas a la i7quierda, es asignado a posiciones sucesivas, ascendentemente, en la secuencia de clasificaci n que esta especificando. A/ El orden en el que los literales aparecen en la clausula 'L,4'BE%, en secuencia ascendente, especifica el nEmero ordinal del caracter dentro de la secuencia de clasificaci n. B/ Cualquier caracter dentro de la secuenca nativa de clasificaci n que este e=plicitamente espresado en el literal, asume una posici n, en la secuencia de clasificaci n, mayor que cualquiera de los caracteres e=plicitamente especificados. ?/ )i se especifica la opci n %4*U, el conjunto de caracteres contiguos, del codigo nativo, que comien7an con el caracter especificado por el literal-1 y que termina con el
caracter especificado por el literal-2, es asignado a posiciones sucesivas, ascendentemente, en la secuencia de clasificaci n que se esta especificando. 3/ )i se especifica la opci n 'L)O, los caracteres del codigo nativo especificados por literal-1 y literal-3 se asignan a la misma posici n en la secuencia de clasificaci n que se esta especificando. Los caracteres que ocupan las posiciones mas 1aja y mas alta en la secuencia de clasificaci n definida, se asocian con las constantes figurativas LO5/('LUE y 4".4/('LUE respectivamente. )i estas posiciones son ocupadas por mas de un caracter, el valor de la constante figurativa correspondiente se asocia al ultimo caracter especificado. La clausula E!"#AL-P$"NT "% !$##A permite transformar, en la edici n de resultados, el punto decimal en los numeros, en coma.

,
La funci n de la clausula !&''EN!( "% literal es la de reempla7ar el signo F de la moneda americana, que se usa en la clausula ,"C%U*E, por el correspondiente signo de la moneda local. El literal esta limitado a un solo caracter, el cual de1e especificarse en la clausula ,"C%U*E correspondiente, en lugar del caracter F. Seccion de entrada-salida. Esta secci n es opcional. ,ermite declarar los ficheros de E9) que utili7a el programa, asi como definir las tecnicas especiales de E9).