viernes, 3 de mayo de 2013

Cobol: Perform

La instrucción PERFORM nos permite transferir el control a otro u otros procedimientos (párrafos) o bien realizar una serie de sentencias dentro de ella misma mientras se cumplan las condiciones que le hayamos indicado.

A continuación vamos a ver los diversos formatos de esta instrucción.

Formato 1: Con este formato transferimos el control del programa a un párrafo, cuando éste termine vuelve el control a la instrucción que sigue al PERFORM.

          PERFORM nombre_párrafo

Formato 2: Una extensión del anterior es indicarle que ejecute más de un párrafo, especificando el inicio y el fin.

          PERFORM nombre_párrafo1 THRU nombre_párrafo2

Nota: Los párrafos relativos a  nombre_párrafo1  y a  nombre_párrafo2  pueden ir seguidos, por lo que se ejecutará uno y luego el otro; pero al poner el THRU lo que conseguimos es que el control no se devuelva hasta llegar al párrafo indicado después del THRU. Es decir, entre los párrafos  nombre_párrafo1 y nombre_párrafo2  podrá haber cinco párrafos más y todos ellos se hubieran ejecutado.

Formato 3: Seguimos ampliando las capacidades, ahora conseguimos que el PERFORM se realice tantas veces como se indique en el número o variable que va delante de TIMES.

 PERFORM nombre_párrafo1 [THRU nombre_párrafo2] número-o-variable TIMES

Formato 4: Igual que el anterior formato solo que el número de veces que se ejecute dependerá de una condición y no de un número fijo.

PERFORM nombre_párrafo1 [THRU nombre_párrafo2] número-o-variable UNTIL condición

Formato 5: Ejecutar una serie de sentencias en un bucle utilizando PERFORM y END-PERFORM.

          PERFORM número-o-variable TIMES
                    condiciones
          END-PERFORM

          PERFORM condición TIMES
                    condiciones
          END-PERFORM

Nota: Como veis no puede haber puntos entre el PERFORM y el END-PERFORM puesto que eso haría terminar con error la sentencia. Es decir, en condiciones estarán todas las sentencias a ejecutar, una detrás de o otra y ninguna de ellas lleva punto.


     PERFORM  VARYING variable FROM número-o-variable1 BY número-o-valor2
     UNTIL  condición
          sentencias
     END-PERFORM


La anterior sentencia inicializa la variable indicada en variable con el valor que sigue al FROM, es decir el valor indicado por el número o variable de número-o-variable1, a continuación va incrementado el valor de la variable en la cantidad indicada por el valor de número-o-valor2 que va después del BY y ejecuta las sentencias que van a continuación hasta que se cumple la condición indicada en condición y que suele ser algo del estilo a variable = número-o-valor3.


Formato 6: En primer lugar, hay que aclarar que, por defecto, el contenido del PERFORM se ejecuta después de hacer la comprobación de la condición que precede a UNTIL, pero podemos hacer que ésta se realice antes.

     PERFORM  WITH TEST  [AFTER - BEFORE ] VARYING variable FROM 
     número-o-variable1 BY número-o-valor2 UNTIL condición
          sentencias
     END-PERFORM


Con la opción TEST BEFORE, que es la opción por defecto, se comprueba primero la condición y si se cumple se ejcuta el resto, con lo cual es posible que las sentencias no se ejecuten ninguna vez, si al comenzar ya está rota la condición.

Con la opción TEST AFTER, se ejecutan las sentencias antes de comprobar la condición, con lo cual las sentencias se van a ejecutar al menos en una ocasión, incluso aunque entremos en el PERFORM con la condición rota.




jueves, 25 de abril de 2013

Carencia de profesionales Cobol

Como profesional del Cobol y del entorno HOST, sigo el blog llamado Consultorio Cobol. En él, se ha publicado recientemente una entrada hablando acerca de la dificultad que tienen las empresas de encontrar programadores cobol (pinchar aquí para ver la entrada). En esa misma entrada se adjunta el artículo en el que se basa dicha entrada.

Curiosamente en linkedin he encontrado un debate en uno de los grupos a los que pertenezco que ha sido iniciado con la siguiente entrada del blog de Ramiro González en el que se cuenta lo mismo (pincha aquí para ver la entrada).

El perfil del programador cobol sigue siendo un perfil muy demandado, de hecho, el negocio de algunos sectores (el bancario por ejemplo) depende enormemente del entorno HOST. Depende de tal manera que si hoy mismo desapareciera el cobol y se extinguiera, se conseguiría lo que no ha hecho 5 años de crisis: que los bancos se fueran al garate de forma fulminante. Pero, a pesar de ello, me resulta enormemente curioso que entre los informáticos y programadores de otros lenguajes como Java se siga teniendo la falsa creencia de que el cobol es un lenguaje casi extinto y que queda muy poca gente programando en cobol.

Visto lo visto, el cobol tiene tal resistencia al paso del tiempo y a las modas que tengo la sensación de que si hoy mismo cayese una bomba atómica sólo sobrevivirían dos cosas: las cucarachas y el cobol.

viernes, 19 de abril de 2013

jueves, 18 de abril de 2013

Citas Informáticas 1

Ley de Alzheimer de la programación: si lees un código que escribiste hace más de dos semanas es como si lo vieras por primera vez. - Dan Hurvitz

Qué gran verdad!!! ¿A quién no le ha pasado eso alguna vez? Tras dos semanas, o incluso menos, necesitas varios minutos para repasar el código y recordar qué hacía eso con la sensación de "¿Pero yo he hecho esto?¿En serio?"

lunes, 15 de abril de 2013

Cobol: Lista de FILE STATUS (para VSAM)

Hemos visto los posibles FILE STATUS que puede devolver un fichero secuencial cuando éste es manejado en un programa cobol. Pero, ¿qué sucede con los VSAM o ficheros indexados?

Aquí os dejo un listado de FILE STATUS para VSAM: FILE STATUS (para VSAM)

Este listado es el más completo que he encontrado porque en este listado existen algunos códigos, como el 19, que no son contemplados en otros listados que he encontrado en otras páginas.

lunes, 1 de abril de 2013

Cobol: apuntes en pdf

He reunido algunos apuntes en pdf de cobol que he encontrado en internet. Adjunto enlaces:


Los encontrarás en la página HOST de este mismo blog (bajo el epígrafe de Apuntes encontrados en internet).

Espero que os sean de utilidad.

lunes, 11 de marzo de 2013

viernes, 1 de marzo de 2013

Cobol: manejo de ficheros VSAM

     He encontrado unos apuntes realmente interesantes acerca del manejo de ficheros VSAM y de longitud variable. El enlace de dichos apuntes es el siguiente: http://es.scribd.com/doc/36278564/CODIFICACION-COBOL-VSAM

     Son unos apuntes muy útiles en caso de tener que manejar ese tipo de ficheros en un programa cobol.

     Desde aquí quiero agradecer al autor de dichos apuntes, taurus22, por compartirlos.

miércoles, 20 de febrero de 2013

Concurso para elegir al 'mejor estudiante de Cobol'

Micro Focus y la consultora AnyHelp han convocado un concurso para elegir al ‘mejor estudiante de Cobol’.

El ganador recibirá una beca de trabajo remunerada y por una duración de seis meses en AnyHelp y, además, entrará en los procesos de selección que tiene Micro Focus para su sede en el Reino Unido, ya que la compañía británica está reclutando profesionales hispanohablantes para su centro internacional de atención a usuarios, ubicado en Belfast (Irlanda).

El concurso (I Concurso Visual Cobol) está dirigido a estudiantes de Informática que estén matriculados en cualquier Facultad o Escuela autorizada. Para participar en la convocatoria es preciso presentar un proyecto en lenguaje de programación Cobol orientado al entorno empresarial.

El plazo de presentación concluye el 11 de marzo y los premios se otorgarán en el propio Congreso RITSI.

Mucha suerte a los participantes.