LENGUAJE DE
PROGRAMACION:
COBOL
PROGRAMACIÓN DIGITAL APLICADA
INTRODUCCION
COBOL
HISTORIA DE COBOL
Década de los 50
CODASYL (1959)
• FLOW-MATIC (desarrollado por la contralmirante
Grace Hopper, el primer compilador que tradujo la
sintaxis similar al inglés al código de máquina)
• AIMACO (es un acrónimo de Air MAterial Command
y era un lenguaje para negocios que estaba en proceso
de desarrollo, diseñado por la Fuerza Aérea de los EE.
UU)
• COMTRAN (el COMercial TRANslator de IBM
desarrollado por Bob Bemer, este también usaba un
vocabulario y sintaxis parecidos a los del inglés)
ESTANDARES COBOL
COBOL ANS 68
• RESOLVIÓ INCOMPATIBILIDADES ENTRE
DIFERENTES VERSIONES DE COBOL
COBOL ANS 74
• INTRODUJO EL VERBO CALL
• SUBPROGRAMAS EXTERNOS
COBOL ANS 85
• PROGRAMACIÓN
ESTRUCTURADA DE COBOL
• END-IF Y END-CALL
• SUBPROGRAMA CONTENIDOS
COBOL ISO 2002
• COBOL ORIENTADO A OBJETOS
COBOL 2014
• ULTIMO ESTANDAR ACTUALMENTE
• GESTION DINÁMICA DE MEMORIA
COVID-19 EEUU FRASE DE BILL GATES
El gobernador de Nueva Jersey, Phil “No sé qué lenguaje habrá en el futuro,
Murphy, dijo que se necesitan expertos pero seguro que Cobol estará todavía
en COBOL en la crisis del coronavirus. ahí”
Estructura Básica
• El programa se organizan en programa, divisiones,
secciones, párrafos, sentencias, declaraciones y caracteres.
• Las divisiones son la subdivisión lógica del programa. Una
sección es una colección de párrafos.
• Los párrafos son la división de una sección o división. Es
definida por el usuario o un nombre predefinido seguido de
un período, y consta de cero o más frases/entradas.
• Las oraciones son la combinación de uno o más
declaraciones. Sólo aparecen en el procedimiento y debe
terminar con un punto.
• Las declaraciones es donde se indica algún procedimiento.
IDENTIFICATION DIVISION
Esta División se utiliza para declarar una serie de variables globales asociadas al
programa, tales como el nombre del objeto (PROGRAM-ID), el nombre del autor
del objeto (AUTHOR), la instalación (INSTALLATION), las fechas de codificación
y de compilación (DATE-WRITTEN y DATE- COMPILED) y la seguridad
(SECURITY).
ENVIRONMENT DIVISION
Esta División se compone de dos importantes secciones:
CONFIGURATION SECTION e INPUT-OUTPUT-SECTION.
CONFIGURATION SECTION
Aquí se especifica información relevante para el programa. Se debe indicar el nombre
de la máquina empleada para la codificación (SOURCE-COMPUTER y OBJECT-
COMPUTER). Por otro lado, en el apartado SPECIAL-NAMES hay que detallar las
configuraciones especiales que vaya a tener nuestro programa.
INPUT-OUTPUT SECTION
En esta sección, en el apartado FILE CONTROL se especifica el nombre de los ficheros que
se tratarán en nuestra fuente. Se indicará la equivalencia entre el nombre lógico que va a tener
un determinado fichero en el programa Cobol y el nombre externo que tendrá en el JCL que
lo invoque.
Adicionalmente, en esta sección aparece también el apartado I-O-CONTROL, indica el área
de memoria que va a ser compartida por los ficheros utilizados en el programa.
DATA DIVISION
Esta División es, quizás, la más compleja de la programación Cobol, ya que se
compone de varias secciones que no resultan del todo intuitivas para los
programadores de otros lenguajes más modernos. Presenta 3 apartados: File section,
working-storate section y Linkage section.
FILE SECTION
Aquí se definirá la estructura de los ficheros especificados en la INPUT-OUTPUT-
SECTION y también se detalla los campos en los que se desglosan los registros
asociados a cada uno de dichos ficheros.
WORKING-STORAGE SECTION
Aquí deben definirse todas las variables que van a usarse en la lógica procedimental
del programa. Se incluyen tanto las variables estándar como las variables auxiliares que
se emplearán para trabajar con la información descargada de los ficheros.
LINKAGE SECTION
Aquí se indican los parámetros con
los que debe invocarse nuestra fuente
si es llamado desde otro objeto.
PROCEDURE DIVISION
Aquí definimos las secciones y párrafos en las que queramos dividir
nuestro objeto y, en cada una de ellas, se deberán incluir las sentencias
requeridas para la correcta implementación del algoritmo de nuestro
programa.
SENTENCIAS BASICAS
La sentencia es la unidad básica de expresión del lenguaje COBOL , como lo es en
el idioma inglés. Una sentencia cobol se compone de una o más declaraciones, la
última de las cuales termina en un punto. y se clasifican en:
• Sentencias imperativas
• Sentencias condicionales
• Sentencias de instrucciones para el compilador
SENTENCIAS IMPERATIVAS
Las sentencias imperativas están formadas
exclusivamente por declaraciones imperativas,
Los verbos que confieren carácter imperativo
a las sentencias son los verbos de entrada –
salida, los verbos aritméticos y los verbos de
manipulación de datos.
SENTENCIAS CONDICIONALES
• Las sentencias condicionales están formadas por una declaración
condicional que termina en un punto.
• Esta declaración condicional puede ir precedida de una declaración
imperativa con tal que no termine en uno de los verbos de control de
secuencia GO TO y STOP RUN
SENTENCIAS DE INSTRUCCIONES PARA EL COMPILADOR
Una sentencia de instrucciones para el compilador es aquella que está
formada por uno de los verbos que dirige la acción del compilador.
• La finalidad de este tipo de sentencias es la de facilitar la compilación del
programa o la del permitir la inclusión de comentarios del programador
ACCEPT
esta sentencia hace la Instrucción utilizada como entrada de datos, tanto del
teclado como del sistema.
INITIALIZE
sentencia que se usa para inicializar variables , es decir , poner las variables
numéricas a 0 y las alfanuméricas y alfabéticas a blancos.
DISPLAY
Es la instrucción que usaremos como salida de datos en pantalla. Con ella
mostraremos cualquier texto, cualquier variable, cualquier constante o cualquier
valor.
DISPLAY variable, literal CLAUSULAS ...
COPY
Sirve para ahorrar espacio en el disco, usando el código escrito en el fichero de forma
temporal cuando se utiliza esta instrucción.
COPY fichero1.
MOVE
Es la instrucción que usaremos para enviar datos de una variable a otra u otras. Lo
que en realidad hace es que la una variable adquiera un valor determinado, ya sea
procedente de otra variable o bien desde un valor fijo o constante.
MOVE variable, valor TO variable, variable, variable, ....
INSPECT
Ésta sentencia se utiliza para contar, reemplazar o contar y reemplazar caracteres o
grupos de caracteres dentro de un campo. Se puede contar las veces que aparece un
carácter, o cambiar todos esos caracteres por otros, entre otras cosas.
INSPECT campo1
TALLYING variable1 FOR ( CHARACTERS)
(( BEFORE/AFTER) INITIAL) Cadena1
(ALL)(LEADING) Cadena2 ...
STRING
Se utiliza para unir o concatenar campos o partes de estos y el resultado almacenarlo en otro
campo.
En la unión se pueden incluir tanto variables como literales o constantes de texto.
STRING campo1, literal1
DELIMITED BY (campo2, literal2)(SIZE)
INTO Campo3
(WITH POINTER Identificador1)
(ON OVERFLOW Sentencia1)
(NOT ON OVERFLOW Sentencia2)
UNSTRING
Hace exactamente lo contrario que hacía STRING, es decir divide el contenido de un campo en
otros.
UNSTRING campo1, literal1
DELIMITED BY (campo2, literal2)(ALL)
OR (campo2, literal2)(ALL)
(Se puede repetir de nuevo)
SENTENCIAS DE CONTROL
IF ... THEN ... ELSE
Son sentencias que implican una condicional, permite dependiendo de una condición elegir
un camino u otro. Su sintaxis es la siguiente:
IF Condición
THEN {Sentencia1 / NEXT SENTENCE}
ELSE {Sentencia2 / NEXT SENTENCE}
Las condiciones se consiguen enfrentando dos variables mediante las condiciones <, > o =.
Como condiciones especiales nos podemos encontrar con:
IF Identificador IS [NOT] {POSITIVE / NEGATIVE / ZERO}.
Para saber si un identificador es o no positivo, negativo o neutro.
IF Identificador IS [NOT] {ALPHABETIC / NUMERIC}.
Para saber si el identificador es o no letra o número.
PERFORM
Esta sentencia nos permite ejecutar un párrafo en cualquier momento, y con la
opción TIMES lo podemos realizar varias veces consecutivas.
PERFORM Párrafo1 [THRU Párrafo2] {Identificador / Entero} TIMES
STOP
Indica el final del programa y su aparición hace volver al sistema operativo.
STOP RUN.
Si quisiéramos que nos indicara un valor al terminarse el programa usaríamos:
STOP Literal
Instalación del programa cobol y su compilador
Instalaremos primero el folder del documento COBOL luego su compilador
DOSBOX
Primero instalamos el folder del documento cobol en el siguente link :
[Link]
Hacemos clic derecho y ponemos extraer aquí y la carpeta que nos sale lo copeamos
al disco local C de nuestra pc y le ponemos el nombre de MyCobol
Ahora instalaremos el DOSBOX el cual emula programas antiguos como COBOL ,
entonces para instalar de forma segura a la pc entramos a [Link] dentro de esta
página en su buscador escribimos DOSBOX y nos sale para descargarlo
gratuitamente.
Una ves ya descargado el instalador hacemos doble clic en ella, le damos next, next, luego
finalmente le damos clic donde dice install
ahora vincularemos al COBOL con el DOSBOX
Luego abrimos con doble click Y escribimos esto
Luego abrimos la aplicación, y veremos que ya tenemos vinculado el cobol
con el dosbox
COBOL: PROS Y CONTRAS
PROS CONTRAS
Muy bien adapatado a su dominio de finanzas y Es necesario que un programador COBOL tenga
procesamiento masivos de datos conocimiento de otro lenguaje de código máquina, por si
los diagnósticos no producen una pista tan necesaria
Es detallado y esto ayuda a la legibilidad del como para mirar un "VOLCADO DE MEMORIA".
código y, por lo tanto, se dice que se documenta El tiempo requerido para compilar un programa COBOL
por sí mismo. . puede ser mayor que con un lenguaje de programación
Se ejecuta en muchas, muchas plataformas y orientado a máquina.
sistemas operativos. La programación estructurada es posible, pero puede
Es relativamente simple como un idioma parecer 'torpe' en comparación con otros lenguajes
EJEMPLOS APLICATIVOS
HOLA MUNDO
A CONTINUACION REALIZAREMOS EL
PROGRAMA DE INICIO DE CUALQUIER
PROGRAMADOR EN CUALQUIER
LENGUAJE Y COBOL NO ES LA
EXCEPCION.
EJEMPLOS APLICATIVOS
NOMBRE Y EDAD
AHORA REALIZAREMOS UN
PROGRAMA QUE MUESTRA TU
NOMBRE Y EDAD SOBRE LA
PANTALLA.
EJEMPLOS APLICATIVOS
SUMAR NUMEROS
ESTE PROGRAMA ES DE GRAN
UTILIDAD (CALCULADORA ) Y EN
ESTE CASO EN ESPECIFICO A SUMAR
NUMEROS; OTORGANDO LOS
RESULTADOS SOBRE PANTALLA
EJEMPLOS APLICATIVOS
PROGRAMA DE CUENTA DE
ELECTRICIDAD
UNA COMPAÑÍA DE ELECTRICIDAD
SUMINISRA ELECTRICIDAD A 4 TIPOS
DE CLIENTES CODIFICADOS 1,2,3 Y 4.
LA TABLA DE TARIFAS PARA
CLIENTES SE MUESTRA EN UNA
COMO LA SIGUIENTE:
PROGRAMA DE CUENTA DE ELECTRICIDAD
¿QUE MAS PUEDO HACER?
Manejo de archivos - secuenciales y
acceso directo
Subprogramas externos
(bibliotecas)
Cuadernos (incluir archivos)
Gnu COBOL se conecta a bases de
datos, pero no MySQL por el
momento.
Potente redacción de informes.
Funciones definidas por el usuario
COBOL orientado a objetos
¿APLICACIÓN DE COBOL EN LA NUBE?
Los sistemas desarrollados en COBOL no solo consisten en componentes de mainframe (que es un marco
principal), sino que incluyen aplicaciones compuestas o independientes que residen en el mainframe,
distribuido, virtual y en la nube, ahora esas aplicaciones se pueden ejecutar en .NET, en entornos JVM,
web, virtuales y ahora en la nube.
LA IMPORTANCIA DEL COBOL COMO LENGUAJES DE
PROGRAMACIÓN PARA LAS FINANZAS
Porque Cobol en realidad fue diseñado para desarrollar aplicaciones de grandes
negocios (por lo general, orientadas a archivos), no para desarrollar programas de sistema,
como desarrollar un sistema operativo o un compilador. Hace 50 años, Cobol era los mejor
para organizaciones grandes que tenían muchos datos que administrar. Sustentó el núcleo de
las aplicaciones de banca, finanzas, seguros, gobierno y salud.
Existen idiomas de programación que se
remontan a los años 50 como es el caso
de COBOL o FORTRAN. Otros lenguajes como
DELPHI, son más modernos, ya que datan de
la época de los 70. Estos idiomas fueron
fundamentales, pero lo importante, es que lo
siguen siendo en algunas áreas de nuestra
vida a día de hoy.
COBOL Y OTROS LENGUAJES DE
PROGRAMACIÓN
Al aprender programación, que todos los
anuncios que te llegan te hablan
de JavaScript, Java, C o Python. Estas
opciones están muy bien, pero no dejen de
lado al COBOL u otros leguajes olvidados
como DELPHI ya que la gente que controla
estos códigos gana mucho dinero porque son
muy pocos y están muy cotizados.
ENCUESTAS EN COBOL
La encuesta de Computer World 2012 encontró
que más de 60% de las organizaciones usaron
COBOL con 54% diciendo que más de la mitad
de sus internos el código comercial estaba escrito
en él (en comparación con 39% para Java).
En mayo de 2013, IBM observó que el 15% de
todos los nuevos la funcionalidad empresarial
está escrita en COBOL y que hay
200,000,000,000 líneas de código en uso,
creciendo entre 3% y 5% por año.
El informe de 2005 citó que COBOL maneja el
75% de todas las transacciones informáticas y el
90% de todas Transacciones financieras.
La mitad de las aplicaciones en los servicios
financieros siguen usando Cobol, por lo que
sigue siendo un lenguaje y una competencia muy
demandada.
CONCLUSIONES
o Como podemos apreciar la existencia de Cobol significo un punto de inflexión para la programación al ser un lenguaje
que se pueda utilizar en cualquier marca de computadora y ser la base de muchas aplicaciones interactivas que
proporcionan transacciones en tiempo real, y las finanzas por el procesamiento masivo de datos y que sigue siendo
uno de los mejores programas para esta tarea.
o El futuro de Cobol es incierto, y de esta en peligro no será porque lo reemplace otro programa más avanzado de uso
sino por la falta de profesionales especializados en este lenguaje de programación, porque trabajar con Cobol en la
actualidad es dedicarte al mantenimiento y cuidado de los servidores que aun operan con este lenguaje.
o Una de las razones por la que COBOL sigue vigente es que, la migración de este lenguaje de programación a otros
más actuales, implica una inversión muy grande de dinero debido a la inmensurable cantidad de líneas de código
escritos en COBOL. el mantenimiento de estos mainframes basados en Cobol tiene un costo muchísimo menor al que
tendría realizar una migración, esto sin calcular el costo del riesgo asociado a esta, por lo que, la industria
conservadora de las finanzas se rehúsa a arriesgarse. Básicamente le sale más barato a las empresas contratar a un
programador de COBOL con un sueldo bastante alto que cambiar el lenguaje de programación.
o Durante más de seis décadas con Cobol ha sido el lenguaje de programación dominante en la informática empresarial,
gracias a la capacidad de manejar ficheros grandes. En ese tiempo se ha encontrado desafíos en gran número de
lenguajes de programación, como ALGOL, ADA, C, C++ y muchas más, todos estos lenguajes han encontrado su sitio
en el mercado, pero ninguno ha desplazado a Cobol.
GRACIA
S