Articulo de referencia

GnuCOBOL

GnuCOBOL (anteriormente conocido como OpenCOBOL , y brevemente como GNU Cobol ) es una implementación libre del lenguaje de programación COBOL que forma parte del proyecto GNU ....

GnuCOBOL (anteriormente conocido como OpenCOBOL , y brevemente como GNU Cobol ) es una implementación libre del lenguaje de programación COBOL que forma parte del proyecto GNU . GnuCOBOL traduce el código COBOL a C y luego lo compila utilizando el compilador nativo de C. [ 2 ]

Historia

Mientras colaboraba con Rildo Pragana en TinyCOBOL, Keisuke Nishida inició el desarrollo de un compilador COBOL diseñado para integrarse con GCC , lo que dio origen al proyecto OpenCOBOL. Nishida fue el desarrollador principal hasta 2005, hasta la versión 0.31. Roger While lo sucedió como desarrollador principal y lanzó OpenCOBOL 1.0 el 27 de diciembre de 2007. El desarrollo de la versión preliminar de OpenCOBOL 1.1 continuó hasta febrero de 2009. En mayo de 2012, el desarrollo activo se trasladó a SourceForge , y la versión preliminar de febrero de 2009 se marcó oficialmente como una versión final. [ 3 ] A finales de septiembre de 2013, OpenCOBOL fue aceptado como un proyecto GNU , renombrado a GNU Cobol y finalmente a GnuCOBOL en septiembre de 2014. [ 4 ] Ron Norman contribuyó con un módulo Report Writer como una rama de GnuCobol 2.0, y Sergey Kashyrin desarrolló una versión que utiliza intermedios de C++ en lugar de C. [ 5 ]

La transferencia de los derechos de autor a la Free Software Foundation sobre el código fuente de GnuCOBOL (incluidas las versiones con la ortografía de GNU Cobol y OpenCOBOL) se finalizó el 17 de junio de 2015. [ 6 ]

La última versión disponible es la v3.2, que se publicó el 28 de julio de 2023.

Filosofía

Si bien los desarrolladores buscan cumplir con los estándares COBOL, incluyendo la especificación COBOL 2014 y las características comunes en los compiladores existentes, no afirman ningún nivel formal de conformidad con los estándares. [ 7 ] Sin embargo, la versión 2.2 (lanzada en septiembre de 2017) supera con éxito 9688 de 9708 pruebas (99,79 %) del conjunto de pruebas NIST , con 20 pruebas excluidas. [ 8 ]

La última versión estable, la versión 3.2, se publicó en julio de 2023. [ 9 ]

GnuCOBOL traduce un programa COBOL (código fuente) a un programa C. Este programa C se puede compilar en código objeto ejecutable por la máquina o en una biblioteca a la que otros programas pueden acceder (enlazar). En UNIX y sistemas operativos similares (como Linux ), se utiliza el compilador GNU C para este proceso. En Windows , se suele utilizar el compilador C proporcionado por el paquete de software Visual Studio de Microsoft ; las versiones anteriores también eran compatibles con las ediciones Visual Studio Express, ahora descatalogadas .

Aunque el proceso de compilación en dos pasos normalmente se realiza con un solo comando, existe la opción de detener el proceso una vez que se ha generado el código C. [ 10 ]

Documentación

Desde 2002 hasta 2012, el sitio web oficial del equipo de desarrollo fue opencobol.org, que sirvió como fuente principal de información sobre el desarrollo. [ 11 ] Sin embargo, los desarrollos más recientes se han trasladado a un espacio de proyecto de SourceForge bajo GnuCOBOL.

La Guía del programador de GnuCOBOL, de Gary Cutler, se publicó bajo la Licencia de Documentación Libre de GNU . [ 10 ] Se ha actualizado para incluir GnuCOBOL con Report Writer y aparece en la página de resumen de la documentación de GnuCOBOL con las versiones más recientes en el árbol de código. [ 12 ] Actualmente, Vincent Coen y otros la mantienen a medida que se publica cada nueva versión del compilador y está disponible en GnuCOBOL - Proyecto GNU .

Programas de ejemplo

Histórico

000100* HELLO.COB Ejemplo de GnuCOBOL 000200 DIVISIÓN DE IDENTIFICACIÓN . 000300 ID DE PROGRAMA . hello . 000400 DIVISIÓN DE PROCEDIMIENTO . 000500 MOSTRAR "¡Hola, mundo!" . 000600 DETENER EJECUCIÓN .

Compilación y ejecución:

$ cobc -x HELLO.COB $ ./HELLO ¡Hola, mundo!

Formato moderno y libre

*> Ejemplo de GnuCOBOL Hello World id división . program-id . hello . procedure división . display "¡Hola, mundo!" end-display volver .

Compilación y ejecución:

$ cobc -x -free hello.cob $ ./hello ¡Hola, mundo!

El más corto

El programa COBOL válido más corto, con la opción de sintaxis relajada en GnuCOBOL 2.0, es un archivo en blanco. Compilación y ejecución:

$ cobc -x -frelax-syntax ./empty.cob ./empty.cob: 1: Advertencia: Falta el encabezado PROGRAM-ID - se asume $ ./empty $

Para versiones anteriores y con sintaxis más relajada:

mostrar "¡Hola, mundo!" .

Compilación y ejecución:

$ cobc -x -frelax-syntax -free hello.cob hello.cob: 1: Advertencia: falta el encabezado PROGRAM-ID - se asume hello.cob: 1: Advertencia: falta el encabezado PROCEDURE DIVISION - se asume $ ./hello ¡Hola, mundo!

Sin sintaxis relajada y con cualquier versión de GnuCOBOL, GNU Cobol u OpenCOBOL. (Nota: hay 7 espacios iniciales para ajustarse al formato fijo del código fuente COBOL):

program-id . h . procedure division . display "¡Hola, mundo!" .

La compilación se realiza sin errores:

$ cobc -x smallest.cob $ ./smallest ¡Hola, mundo!

Tenga en cuenta que estas listas de curiosidades no deben considerarse como un buen ejemplo de la forma correcta de escribir en COBOL; COBOL fue diseñado para ser un lenguaje de programación en inglés legible.

Implementación

El analizador sintáctico y el escáner léxico utilizan Bison y Flex . El compilador, con licencia GPL , y las bibliotecas de tiempo de ejecución, con licencia LGPL, están escritos en C y utilizan la ABI de C para la vinculación de programas externos.

El empaquetado de la compilación utiliza el sistema de compilación GNU . Las pruebas estándar make checkutilizan Autoconf , y el conjunto de pruebas ANSI85 ​​se ejecuta mediante make testscripts Perl .

El script de configuración que configura la compilación de GnuCOBOL tiene opciones que incluyen:

  • Elección del compilador C y sus opciones para la compilación posterior a la traducción.
  • Sistema de gestión de bases de datos para soporte ISAM
  • inclusión de iconv

Disponibilidad

  • Versión 1.0 de SourceForge. [ 13 ]
  • Versión 1.1 de SourceForge [ 14 ]
  • Versión de desarrollo 2.0 de SourceForge [ 15 ]
  • Paquete Debian open-cobol . [ 16 ]
  • 2.2 Final, publicado el 7 de septiembre de 2017 desde SourceForge [ 17 ]
  • 2.2 Documentación, publicada en septiembre de 2017 desde el árbol de código de SourceForge.
  • 3.1 Publicado en julio de 2020 junto con la documentación.
  • 3.2 Publicado en julio de 2023 junto con la documentación.

Referencias

  1. Simon Sobisch (28 de julio de 2023). "Lanzamiento de GnuCOBOL 3.2" . Consultado el 29 de julio de 2023 .
  2. "README" . ftp.gnu.org .
  3. Tiffin, Brian (19 de octubre de 2013). "Preguntas frecuentes sobre OpenCOBOL" . ¿Cuál es la versión actual de OpenCOBOL? Recuperado el 13 de diciembre de 2013 .
  4. Tiffin, Brian. "GNU Cobol ya es una realidad" . Archivado del original el 5 de octubre de 2013. Consultado el 1 de octubre de 2013 .
  5. Sobisch, Simon (6 de noviembre de 2013). "Trabajo en progreso" . GNU Cobol 2.0 C++. Archivado del original el 10 de mayo de 2020. Recuperado el 11 de mayo de 2014 .
  6. Tiffin, Brian. "Estado del proyecto" . Archivado del original el 7 de marzo de 2016. Recuperado el 23 de julio de 2015 .
  7. "Preguntas frecuentes sobre OpenCOBOL" . 17 de octubre de 2013. ¿Qué tan completo es OpenCOBOL? Recuperado el 7 de junio de 2014. Si bien OpenCOBOL puede considerarse de alta calidad y robustez, los autores NO afirman que sea una implementación de COBOL que cumpla con los estándares.
  8. "Preguntas frecuentes sobre OpenCOBOL" . ¿OpenCOBOL supera la suite de pruebas NIST? . Consultado el 9 de octubre de 2013 .
  9. "GnuCOBOL" . GnuCOBOL - Proyecto Gnu . 2 de noviembre de 2025. Consultado el 2 de noviembre de 2025 .
  10. 1 2 Cutler, Gary. "Guía del programador de OpenCOBOL" (PDF) . Opencobol.addltocobol.com . Consultado el 20 de noviembre de 2012 .
  11. "Un compilador COBOL de código abierto" . OpenCOBOL . Consultado el 20 de noviembre de 2012 .
  12. Cutler, Gary. "Guías de GnuCOBOL" . Opencobol.addltocobol.com . Consultado el 22 de julio de 2015 .
  13. "GnuCOBOL - Explorar archivos en" . Sourceforge.net. 27 de diciembre de 2007. Consultado el 28 de octubre de 2015 .
  14. Descargas de GnuCOBOL en SourceForge
  15. Descargas de GnuCOBOL en SourceForge
  16. "Debian -- Detalles del paquete open-cobol en buster" . packages.debian.org .
  17. Descargas de GnuCOBOL en SourceForge
  • Sitio web de GNU, versiones oficiales de GnuCOBOL
  • GnuCOBOL en SourceForge
  • Preguntas frecuentes sobre GnuCOBOL
  • Consorcio COBOL de código abierto en Japón
  • Add1ToCOBOL es un sitio web que promueve el uso de COBOL y OpenCOBOL como código abierto.
  • tiny-cobol en SourceForge