Cobol

No soy responsable del uso que usted haga de la información contenida o vinculada desde estas páginas web.
  • 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.

Referencias

Cobol

No soy responsable del uso que usted haga de la información contenida o vinculada desde estas páginas web.
  • 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.

Referencias