GnuCOBOL

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 23:12 18 sep 2020 por Aosbot (discusión · contribs.). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.
GnuCOBOL
Parte de Proyecto GNU
Información general
Tipo de programa compilador
Autor Keisuke Nishida
Desarrollador Proyecto GNU
Lanzamiento inicial 2002
Licencia GPL con librerías de tiempo de ejecución bajo LGPL
Idiomas Inglés, alemán, italiano, japonés, español
Información técnica
Programado en C
Versiones
Última versión estable 3.228 de julio de 2023
Enlaces

GnuCOBOL (anteriormente OpenCOBOL, y por un corto tiempo conocido como GNU Cobol) es una implementación libre del lenguaje de programación COBOL. Diseñado originalmente por Keisuke Nishida, el desarrollo principal fue asumido por Roger While. Los últimos desarrollos están ahora liderados por Simon Sobisch, Ron Norman, Edward Hart, Sergey Kashyrin y muchos otros.[1]

Historia

Mientras trabajaba con Rildo Pragana en TinyCOBOL, Keisuke decidió intentar un compilador de COBOL adecuado para integrarse con gcc. Esto pronto se convirtió en el proyecto OpenCOBOL. Keisuke trabajó como desarrollador principal hasta 2005 y la versión 0.31. Roger entonces tomó el liderazgo y publicó OpenCOBOL 1.0 el 27 de diciembre de 2007. El trabajo en el pre-lanzamiento de OpenCOBOL 1.1 continuó hasta febrero de 2009. En mayo de 2012, el desarrollo activo se trasladó a SourceForge, y el pre-lanzamiento de febrero de 2009 se marcó como un lanzamiento.[2]​ 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.[3]​ Ron Norman ha añadido un módulo de redacción de informes como una rama de GnuCobol 2.0, y Sergey Kashyrin ha desarrollado una versión que utiliza intermediarios C++ en lugar de C.[4]​ scussion/cobol/thread/7dc2941f/#40eb | title=Work in Progress | at=GNU Cobol 2.0 C++ | date=6 de noviembre de 2013 | first=Simon | last=Sobisch}}</ref>

La última versión actual es ahora la v2.2 Final, emitida el 7 de septiembre de 2017.

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

Filosofía

Aunque se esfuerzan por mantenerse en línea con los estándares de COBOL hasta la especificación actual COBOL 2014, y también por incluir características comunes en los compiladores existentes, los desarrolladores no reclaman ningún nivel de conformidad con los estándares.[6]​ Aún así, la versión final 2.2 pasa más de 9.688 (99,79%) de las pruebas incluidas en el NIST COBOL 85 test suite, de 9.708 (ya que se han eliminado 20).[7]

GnuCOBOL traduce un programa COBOL (código fuente) a un programa C. El programa C puede entonces ser compilado en el código real utilizado por el ordenador (código objeto) o en una biblioteca donde otros programas pueden llamarlo (enlazarlo). En UNIX y sistemas operativos similares (como Linux) se utiliza el compilador GNU C. Para Windows, el paquete Visual Studio Express de Microsoft proporciona el compilador de C. La compilación en dos pasos se realiza normalmente con un solo comando, pero existe una opción que permite al programador detener la compilación después de que se haya generado el código C.[8]

Documentación

El sitio opencobol.org fue la sede oficial del equipo de desarrollo desde 2002 hasta 2012, y fue la mejor fuente de información sobre el desarrollo en sentido ascendente.[9]​ Sin embargo, todos los acontecimientos recientes están teniendo lugar ahora dentro de un espacio del proyecto SourceForge en http://sourceforge.net/projects/open-cobol/ y este espacio del proyecto también alberga la última documentación e información sobre GnuCOBOL.

La Guía del programador de OpenCOBOL, de Gary Cutler, se publicó bajo la Licencia de Documentación Libre de GNU].[8]​ Ha sido actualizado para incluir GnuCOBOL con el Report Writer y está listado en la página de resumen de la documentación de GnuCOBOL con las últimas versiones en el árbol de códigos.[10]

Programas de ejemplo

Histórico

000100* HELLO.COB GnuCOBOL example
000200 IDENTIFICATION DIVISION.
000300 PROGRAM-ID. hello.
000400 PROCEDURE DIVISION.
000500     DISPLAY "Hello, world!".
000600     STOP RUN.

Compilation and execution:

$ cobc -x HELLO.COB
$ ./HELLO
Hello, world!

Moderno, formato libre

*> GnuCOBOL Hello World example
identification division.
program-id. hello.
procedure division.
display "Hello, world!" 
end-display.
goback.

Compilation and execution:

$ cobc -x -free hello.cob
$ ./hello
Hello, world!

Código 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: Warning: PROGRAM-ID header missing - assumed
$ ./empty
$

For earlier versions and with relaxed syntax:

display"Hello, world!".

Compilation and execution:

$ cobc -x -frelax-syntax -free hello.cob
hello.cob: 1: Warning: PROGRAM-ID header missing - assumed
hello.cob: 1: Warning: PROCEDURE DIVISION header missing - assumed
$ ./hello
Hello, world!

Without relaxed syntax and with any version of GnuCOBOL, GNU Cobol or OpenCOBOL. (Note, there are 7 leading spaces to conform to FIXED layout COBOL source):

       program-id.h.procedure division.display "Hello, world!".

Compilation occurs without errors:

$ cobc -x smallest.cob
$ ./smallest
Hello, world!

Please note that these trivia listings are not to be regarded as good COBOL form; COBOL was designed to be a readable English programming language.

Implementación

El analizador y el analizador léxico utilizan Bison y Flex. El compilador con licencia GPL y las librerías de tiempo de ejecución con licencia LGPL están escritos en C y utilizan el C ABI para la vinculación de programas externos.

El empaquetado de la construcción usa el Sistema de Construcción GNU. Las pruebas estándar con <código>make check</código> usan Autoconf, la suite de pruebas ANSI85 ejecutada por <código>make test</código> usa scripts Perl.

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

  • elección del compilador de C y sus opciones para la compilación de la post-traducción
  • sistema de gestión de base de datos para el soporte ISAM
  • inclusión de iconv

Disponibilidad

  • 1.0 release from SourceForge.[11]
  • 1.1 release from SourceForge[12]
  • 2.0 development release from SourceForge[13]
  • open-cobol Debian package.[14]
  • 2.2 Final, publicado el 7 de septiembre de 2017 de SourceForge[15]
  • 2.2 Documentación, publicada en septiembre de 2017 en el árbol de código de SourceForge.

Referencias

  1. Tiffin, Brian (19 de octubre de 2013). «OpenCOBOL FAQ». What is the development history of OpenCOBOL?. Consultado el 13 de diciembre de 2013. 
  2. Tiffin, Brian (19 de octubre de 2013). «OpenCOBOL FAQ». What is the current version of OpenCOBOL?. Consultado el 13 de diciembre de 2013. 
  3. Tiffin, Brian. «GNU Cobol es ahora una cosa real». Archivado desde el original el 5 de octubre de 2013. Consultado el 1 de octubre de 2013. 
  4. Sobisch, Simon (6 de noviembre de 2013). «Work in Progress». GNU Cobol 2.0 C++. 
  5. Tiffin, Brian. «State of the Project». Consultado el 23 de julio de 2015. 
  6. «OpenCOBOL FAQ». 17 de octubre de 2013. How complete is OpenCOBOL?. Consultado el 7 de junio de 2014. «While OpenCOBOL can be held to a high standard of quality and robustness, the authors DO NOT claim it to be a “Standard Conforming” implementation of COBOL.» 
  7. «OpenCOBOL FAQ». Does OpenCOBOL pass the NIST Test Suite?. Consultado el 9 de octubre de 2013. 
  8. a b Cutler, Gary. «OpenCOBOL Programmer's Guide». Opencobol.addltocobol.com. Consultado el 20 de noviembre de 2012. 
  9. «An open-source COBOL compiler». OpenCOBOL. Consultado el 20 de noviembre de 2012. 
  10. Cutler, Gary. «GnuCOBOL Guides». Opencobol.addltocobol.com. Consultado el 22 de julio de 2015. 
  11. «GnuCOBOL - Browse Files at». Sourceforge.net. 27 de diciembre de 2007. Consultado el 28 de octubre de 2015. 
  12. GnuCOBOL downloads at SourceForge
  13. GnuCOBOL downloads at SourceForge
  14. Debian package details
  15. GnuCOBOL downloads at SourceForge

Enlaces externos