-
Lenguaje similar al Ingles para ser fácil de leer, entender y mantener.
-
Enterprise COBOL, es el nombre que se da código compilado y ejecutado en IBM z/OS.
-
Facil e escribir, data global,
-
Completamente procedural
-
Programas monoliticos
-
Si una variable va mal, debo buscar en todas partes
-
La forma principal de re-utilizacion es Copiar y Pegar
Reglas de código y formato de referencia
El código fuente en COBOL es dependiete de las columnas, las reglas de las columnas se aplican estríctamente. Cada línea de COBOL tiene cinco areas, cada una con su columna de principio y fin.
| 123456 | 8 | 891011 | 12...72 | 73...80 |
| Sequence | I | A Area | B Area | Ident. |
| Number | | | | Area |
| Area | | | | |
El código fuente en COBOL se debe escribir en la referencia de formato de COBOL.
- Área de número de sequencia (columnas 1 - 6)
- Indicator Area, en blanco o reservado para números de línea (columna 7)
- Área A, multi-propósito (columnas 8 - 11)
- Linea de comentario (generalmente *)
- Línea de continuación (generalmente un hypen)
- Linea e depuración (D o d)
- Formato del listado fuente (un slash)
- Ciertos elementos deben estar en Área A:
- Indicadores de nivel
- Declarativo
- Encabezados de División, Sección, Párrafo
- Nombres de párrafos
- Columna 8 se refiere a como el margen de A
- Área B (Columnas 12 - 72)
- Ciertos elementos pertenecen al área B:
- Entradas, sentencias, declaraciones y claúsulas
- Líneas de continuación
- Columna 12 se refiere al margen de B
- Área de identificación
- Ignorada por el compilador
- Puede ser en blanco o utilizada para cualquier propósito
Estructura de COBOL
COBOL es una estructura jerárquica consistente de arriba hacía abajo:
- Divisiones
- Secciones
- Párrafos
- Sentencias
- Declaraciones
Palabras Reservadas
COBOL tiene muchas palabras reservadas que no pueden usarse como nombres de variables o nombres de tipos de datos del programador.
Algunos ejemplos comunes son: PERFORM, MOVE, COMPUTE, IF, THEN, ELSE, EVALUATE, PICTURE, etc. https://www.ibm.com/support/knowledgecenter/zh/SSZJPZ_9.1.0/com.ibm.swg.im.iis.ds.mfjob.dev.doc/topics/r_dmnjbref_COBOL_Reserved_Words.html
Declaraciones
Palabras reservadas específicas se usan para cambiar el flujo de ejecución basado en las condiciones actuales. “Statements” solo existen dentro de la Procedure Division, la lógica de procesamiento del programa. IF, Evaluate y Perform son palabras reservadas para cambiar el flujo de ejecución.
Scope Terminator
Un scope terminator puede ser implícito o explícito. En scope terminator explícito marca el fin de ciertas declaraciones de la PROCEDURE DIVISION con la palabra reservada “END”. Cualquier verbo en COBOL que sea condicional (IF, EVALUATE) or tenga una cláusula condicional (COMPUTE, PERFORM, READ) read deberá tener un scope terminator. Un scope terminator implícito es un punto (.) que termina el alcance de todas las declaraciones previas que no han sido terminadas aún.
Sentencias
Una Sentencia son una o más declaraciones seguidas por un punto (.), donde el punto sirve como un scope terminator.
Párrafos
Un párrafo es un nombre definido por el usuario o pre-definido seguido de un punto. Un párrafo consiste de cero o más sentencias y son la sub-división de una sección o división.
*-----------------
PROCEDURE DIVISION
*-----------------
OPEN-FILES.
OPEN INPUT ACCT-REC.
OPEN OUTPUT PRINT-LINE.
Sección
Una sección es un nombre definido por el usuario o pre-definido seguido de un punto y consiste de cero o mas sentencias. Una sección es una colección de párrafos.
Divisiones
Estructura de las divisiones de COBOL
Divisions se sub-dividen en Sections.
Sections se sub-dividen en Paragraphs.
Paragraphs están sub-divididos en Sentences.
Sentences consisten de Statements.
Statements inician con palabras reservadas de COBOL y pueden sub-dividirse en Phrases.
IDENTIFICATION DIVISION
Identifica el programa con un nombre y opcionalmente otra información de identificación, como el autor, fecha, etc.
ENVIRONMENT DIVISION
Describe los aspectos del programa que denenden del ambiente de cómputo, como la configuración y las entradas y salidas.
DATA DIVISION
Es donde las características de la información se define en una de las siguientes secciones:
- FILE SECTION, define datos usados en operaciones de entrada-salida.
- LINKAGE SECTION, describe datos de otro programa. Cuando se definen datos desarrollados para procesamiento interno.
- WORKING-STORAGE SECTION, almacenamiento asignado y sobrante por la vida del programa.
- LOCAL-STORAGE SECTION, almacenamiento aasignado cada vez que el programa se llama y liberado cuando termina.
PROCEDURE DIVISION
Contiene instrucciones relacionadas a la manipulación de datos e interfaces con otros procedimientos se especifican. Es donde el trabajo se hace en el programa. Las declaraciones se encuentran en PROCEDURE DIVISION donde son acciones a tomar por el programa. Esta PROCEDURE DIVISION se requiere para que la información pueda ser procesada por el programa.
-
Section, sub-divisón lógica, tiene un encabezado y opcionalmente es seguida por uno o más párrafos. Una sección puede ser el tema de una declaración PERFORM. Un tipo de sección es para declarativas. Declarativas son un conjunto especial de uno oas secciones especiales que pueden tener cosas como decripción e entradas y salidas. Se escriben al inico de la PROCEDURE DIVISION, el primero es precedidio por la palabra clave DECLARATIVAS y el último por END DECLARATIVES.
-
Paragah, una sub-división de una sección, procedimiento o programa. Puede ser una declaración.
-
Sentence, Una serie de una o mas declaraciones de COBOL que terminan con un punto.
-
Statement, una acción a tomar por el programa.
-
Phrase, una pequeña parte de una declaración.
Zowe
zowe --version
zowe profiles ls <zosmf| TODO>
Check status of z/OSMF
zowe zosmf check status
Lista lso datasets que pertenecen a tu ID
zowe files list ds "<USERID>.*"
Listar los miembros de un dataset particionado
zowe files list am "<USERID>.CBL"
Funcionaes intrinsecas
Enterprise COBOL aun no permite funciones definidas por el usuario, pero hay planes.
FUNCTION <name>(parameters)
COMPUTE NUM = FUNCTION RANDOM (99)
- Mathematical
- statistical
- Financial
- Date/Time
- Character-handling
- General
Tips para principiantes:
-
Usa comillas para pasar los parámetros.
-
Usa COMPUTE para capturar resultados.
-
Si estas usando una función alfa-númerica… TODO
Debug
Lo usual es poner declaraciones DISPLAY en el programa. Estas aparecen en la sección SYSOUT de la salida del trabajo.
Cambia la sección ENVIRONMENT a SOURCE COMPUTER. xxxx WITH DEBUGGING MODE., usa una D en la columna 7 (la columna de comentarios) en todas las declaraciones DISPLAY. Cuando termines de depurar, solo quita la línea WITH DEBUGGING MODE. y deja todos los DISPLAY. O comenta esa línea y deja solo SOURCE COMPUTER. xxx., hará que todos los D sean mágicamente interpretados por el compilador como asteriscos.