tag files windows cobol

windows - files - Aprendiendo COBOL sin acceso a mainframe



tag files (6)

Soy un estudiante graduado con especialización en Ciencias de la Computación. Mi departamento enseña la mayoría de sus cursos utilizando Java (aunque tomé un curso sobre arquitectura de sistema que usaba C para demostrar la programación del procesador, la administración de memoria, etc. pero me desvío).

Quiero aprender más sobre COBOL, pero no tengo acceso a un sistema de mainframe. ¿Alguien puede recomendar un compilador COBOL gratuito para Windows que me permita completar algunos tutoriales básicos de COBOL?

Descargo de responsabilidad: sí, ya lo he buscado en Google, así que espero que algunas personas con experiencia proporcionen más información.

¡Gracias!


¿Has probado TinyCobol ? Creo que lo usé una vez y no estuvo mal.

Hace un tiempo, MicroFocus tenía una versión gratuita de su Compilador IDE + (Net Express), pero ya no lo ofrecen. Estoy bastante seguro de que tengo una copia del instalador en algún lugar por aquí, aunque no estoy seguro de que todavía sea legal instalarlo si ya no ofrecen el producto. Puedo echar un vistazo más tarde esta noche (estaría en mi otra computadora, que actualmente está sin cabeza e inactiva) y ver qué se me ocurre.


Micro Focus ahora ofrece su Edición Personal de Visual COBOL gratis para uso no comercial. Este COBOL funciona con Microsoft Visual Studio como lenguaje .Net o Eclipse. Incluso viene con una versión liviana de Visual Studio para que no tenga que comprar eso. Puede descargarlo desde https://www.microfocus.com/product-downloads/vcpe/vcpe22/index.aspx

El código abierto OpenCOBOL en www.opencobol.org/ ahora ha cambiado su nombre y ubicación. Ahora llamado GNU Cobol se puede encontrar en sourceforge.net/projects/open-cobol/. Este es un excelente COBOL que implementa una parte sustancial de los estándares ANS 85 e ISO 2002 COBOL.

El sitio de GNU COBOL también tiene un enlace a la Guía de programadores de Gary Cutler para OpenCOBOL 1.1, que es una excelente referencia lingüística. Si está buscando materiales de aprendizaje, puede probar mi tutorial COBOL en www.csis.ul.ie/cobol/course

También hay una versión en línea muy útil de COBOL que utiliza el compilador OpenCOBOL. Se puede encontrar en http://www.compileonline.com/compile_cobol_online.php Echa un vistazo a su programa "Hello world" demasiado largo. En ISO 2002 COBOL, la DIVISIÓN DE IDENTIFICACIÓN no es necesaria y, como el programa se detiene cuando se llega al final del texto, tampoco se requiere el STOP RUN. Solo se requieren las tres líneas que se muestran a continuación. Inténtalo tú mismo.

PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY ''Hello, world''.


No abordaré su pregunta específica, ya que hace muchos años dejé de trabajar como programador de sistemas mainframe (y con mainframes en general ... y eso incluye COBOL). Sin embargo, hay dos puntos que quiero destacar:

  1. COBOL es un lenguaje fácil de aprender . Al principio sentirás que la sintaxis es desalentadora. Muchas "divisiones", "secciones", "párrafos" ... simplemente intente comprender por qué existen. Nadie escribe esas etiquetas. La forma en que COBOL usa y redefine las estructuras de datos es quizás el concepto más interesante, trate de entenderlo bien.

  2. Éste es el punto clave. Dije "COBOL es fácil". Ahora las malas noticias: ser un programador COBOL justo de mainframe NO es fácil. Pero eso no tiene nada que ver con COBOL, es el medio ambiente. El mainframe es grande, y hay muchos "ecosistemas" ahí. Tiene DB2, CICS, algunos JCL y VSAM como mínimo, y quizás una docena más, dependiendo de su instalación. Impresoras, cintas y otro hardware especializado y difícil de gestionar. Cada uno de ellos requiere varios años para domesticarse, y ese es el valor real de un buen programador de mainframe. Microfocus tenía un producto de entorno / compilador caro que era capaz de emular algunas de estas características, pero creo que ahora está fuera de mercado.
    De todos modos, la destreza con esas características generalmente se adquiere "en la tienda" y es muy difícil (créanme) obtener de un libro o un curso.

Dicho esto, no espere obtener un trabajo de mainframe (que no sea uno super junior) después de aprender y dominar COBOL. Eso es sólo un primer paso.

HTH!


Otros carteles han sugerido a Tiny COBOL, pero también pueden ver OpenCOBOL . OpenCOBOL es un compilador cruzado a C y tiene una comunidad de desarrollo bastante activa.

COBOL no es un lenguaje difícil de aprender. A menos que esté tratando de abrirse camino en una tienda de mainframe, pasar mucho tiempo estudiando COBOL puede no tener mucho retorno de la carrera.

Como señaló Belisario, no es tanto el lenguaje como el entorno lo que se necesita aprender. Por analogía, tampoco hay mucho que aprender sobre el lenguaje C Sin embargo, solo saber que C no lo llevará muy lejos, debe trabajar con la enorme biblioteca estándar que lo acompaña. COBOL es similar a ese respecto. La diferencia es que COBOL no viene con una enorme biblioteca estándar, es parte de un paquete que a menudo incluye: CICS, DB / 2, MQ-Series y una variedad de otros servicios de biblioteca (Servicios LE en un entorno IBM).

COBOL se puede encontrar fuera de un entorno de mainframe, pero el mainframe es su "hogar real". Como una generalización, "mainframe" implica un mainframe de IBM que ejecuta Z / OS (muchos pueden hacer una excepción a esta declaración). Esta publicación: Introducción a Mainframe - z / OS es un buen lugar para tener una idea de cómo es un entorno de mainframe de IBM.

Las cosas que encuentro caracterizan a COBOL son:

  • COBOL es un lenguaje procesal. Algunos proveedores han agregado extensiones de OO y los nuevos estándares de lenguaje COBOL incluyen extensiones de OO, pero esto es en gran medida un escaparate. COBOL es fundamentalmente un lenguaje procesal.

  • Declaración de datos. La imagen de PICTURE/USAGE es un poco un poco alucinante. La declaración de datos combina la representación de datos internos (binario, decimal empaquetado, punto flotante, carácter, etc.) con la presentación (número de dígitos, ceros a la izquierda, signo, etc.) en una sola declaración.

  • REDEFINES utilizado para proporcionar diferentes vistas de la misma memoria subyacente.

  • Declaraciones de datos jerárquicos. La jerarquía de datos se define utilizando números de nivel. El nivel 1 define la parte superior de la jerarquía y los números crecientes definen los niveles más bajos. Los niveles 66 (junto con RENAMES), 77, 88 tienen significados especiales.

  • Flujo de control. Muchos programadores (incluso algunos programadores COBOL veteranos) ven a SECTION/PARAGRAPH de una manera similar a una llamada de procedimiento. Son completamente diferentes. SECTION/PARAGRAPH no sigue la semántica de llamada / retorno orientada a la pila normal. COBOL utiliza un mecanismo único para gestionar el retorno de PERFORMed secciones / párrafos PERFORMed .

  • Programas monolíticos con toneladas de variables globales. No es raro encontrar archivos de origen COBOL que se ejecutan en miles de líneas con varios cientos de variables globales. COBOL no tiene que escribirse de esta manera; creo que este es un legado que se remonta a un momento en que las llamadas a procedimientos se consideraron costosas, pero PERFORMing una SECTION/PARAGRAPH fue muy eficiente. El hábito parece haberse atascado y los nuevos programas COBOL tienden a escribirse también como monstruos monolíticos.

  • Cadena de manejo de pesadilla. COBOL hace muy bien los cálculos financieros. No hace muy bien el manejo de cuerdas. Los verbos de manejo de cadenas UNSTRING , STRING y UNSTRING pueden hacer una serie de cosas interesantes, pero también pueden ser bastante agravantes.

  • COPY/REPLACING y REPLACE las directivas del compilador deben ser entendidas. Se comportan de manera algo diferente a la inclusión de archivos en la mayoría de los otros idiomas. La mayoría de las tiendas usan COPY solo para registros comunes o declaraciones de datos, otras las usan para códigos de procedimientos comunes (con REPLACING y / o REPLACE )

Dado un conocimiento práctico de C, deberías poder aprender COBOL sin mucha dificultad.


Pruebe OpenCOBOL OpenCOBOL , es gratuito, se ejecuta en Windows y Linux y se está desarrollando activamente.


Solía ​​haber un compilador Cobol-to-C y un IDE de Eclipse de una compañía llamada "The Kompany". El producto se llamaba "Kobol". Le permitiría escribir Cobol utilizando un entorno basado en eclipse que sería similar a lo que usaría para un mainframe (Rational Developer for Z). Tienen una versión de demostración gratuita y una versión de estudiante barata IIRC.

Encontrarás que Cobol es fácil de aprender, fácil de escribir y difícil de dispararte con el pie. Esa es una de las razones por las que es tan popular entre las instituciones financieras.

Creo que es genial que estés agregando Cobol a tu caja de herramientas.