GnuCOBOL (anteriormente OpenCOBOL , y por un corto tiempo conocido como GNU Cobol ) es una implementación gratuita del lenguaje de programación COBOL . GnuCOBOL es un transcompiler a C que utiliza un nativo compilador C . [1] Originalmente diseñado por Keisuke Nishida, el desarrollo de leads fue asumido por Roger While. Los últimos desarrollos ahora están dirigidos por Simon Sobisch, Ron Norman, Edward Hart, Sergey Kashyrin y muchos otros. [2]
Autor (es) original (es) | Keisuke Nishida, Roger mientras |
---|---|
Desarrollador (es) | Edward Hart, Sergey Kashyrin, Ron Norman, Simon Sobisch y muchos otros. |
Versión inicial | 25 de enero de 2002 |
Lanzamiento estable | 3.1.2 / 23 de diciembre de 2020 |
Versión de vista previa | 3.1rc-1/7 de julio de 2020 |
Repositorio | https://svn.code.sf.net/p/gnucobol/code/trunk |
Escrito en | C , con una rama de C ++ |
Tamaño | 2 MB |
Disponible en | Inglés, alemán, italiano, japonés, español |
Tipo | Lenguaje de programación |
Licencia | GPL con bibliotecas en tiempo de ejecución bajo LGPL |
Sitio web | https://www.gnu.org/software/gnucobol/ |
Historia
Mientras trabajaba con Rildo Pragana en TinyCOBOL, Keisuke decidió intentar un compilador COBOL adecuado para la integración con gcc . Esto pronto se convirtió en el proyecto OpenCOBOL. Keisuke trabajó como desarrollador principal hasta 2005 y la versión 0.31. Roger asumió el cargo de líder y lanzó OpenCOBOL 1.0 el 27 de diciembre de 2007. El trabajo en 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ó como un lanzamiento. [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 ha agregado un módulo Report Writer como una rama de GnuCobol 2.0, y Sergey Kashyrin ha desarrollado una versión que utiliza C ++ intermedios en lugar de C . [5]
La última versión actual es ahora v3.1 Final, emitida el 7 de julio de 2020.
La transferencia de derechos de autor a la Free Software Foundation sobre el código fuente de GnuCOBOL (incluidas las versiones con la ortografía GNU Cobol y OpenCOBOL) finalizó el 17 de junio de 2015. [6]
Filosofía
Mientras se esfuerzan por mantenerse en línea con los estándares COBOL hasta la especificación COBOL 2014 actual , y también para incluir características comunes en los compiladores existentes, los desarrolladores no afirman ningún nivel de cumplimiento de los estándares. [7] Aun así, la versión 2.2 Final pasa más de 9.688 (99,79%) de las pruebas incluidas en el conjunto de pruebas NIST COBOL 85, de 9.708 (ya que 20 se eliminan). [8]
GnuCOBOL traduce un programa COBOL (código fuente) a un programa C. A continuación, el programa C se puede compilar en el código real utilizado por la computadora (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 C. La compilación de dos pasos generalmente se realiza mediante un solo comando, pero existe una opción para permitir que el programador detenga la compilación después de que se haya generado el código C. [9]
Documentación
El sitio opencobol.org fue el hogar oficial del equipo de desarrollo desde 2002 hasta 2012, y fue la mejor fuente de información de desarrollo inicial. [10] Sin embargo, todos los recientes [ ¿cuándo? ] los desarrollos ahora se están llevando a cabo dentro de un espacio de proyecto de SourceForge en GnuCOBOL .
La Guía del programador de GnuCOBOL, de Gary Cutler, se publicó bajo la Licencia de documentación libre GNU . [9] Se ha actualizado para incluir GnuCOBOL con Report Writer y aparece en la página de descripción general de la documentación de GnuCOBOL con las últimas versiones en el árbol de código. [11] Es mantenido por Vincent Coen, James K. Lowden y otros 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 GnuCOBOL ejemplo 000200 DIVISIÓN DE IDENTIFICACIÓN . 000300 ID DE PROGRAMA . hola . 000400 DIVISIÓN DE PROCEDIMIENTOS . 000500 PANTALLA "¡Hola, mundo!" . 000600 PARADA RUN .
Recopilación y ejecución:
$ cobc -x HELLO.COB $ ./HELLO ¡Hola, mundo!
Formato moderno y libre
*> GnuCOBOL Hello World ejemplo Identificación división . id-programa . hola . división de procedimientos . mostrar "¡Hola, mundo!" retroceso de la pantalla final .
Recopilación y ejecución:
$ cobc -x -free hello.cob $ ./hello ¡Hola, mundo!
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. Recopilación y ejecución:
$ cobc -x -frelax-syntax ./empty.cob ./empty.cob: 1: Advertencia: Falta el encabezado PROGRAM-ID - asumido $ ./empty $
Para versiones anteriores y con sintaxis relajada:
mostrar "¡Hola, mundo!" .
Recopilación y ejecución:
$ cobc -x -frelax-syntax -free hello.cob hello.cob: 1: Advertencia: Falta el encabezado PROGRAM-ID - asumido hello.cob: 1: Advertencia: Falta el encabezado de PROCEDURE DIVISION - asumido $ ./hello ¡Hola, mundo!
Sin sintaxis relajada y con cualquier versión de GnuCOBOL, GNU Cobol u OpenCOBOL. (Tenga en cuenta que hay 7 espacios iniciales para ajustarse a la fuente COBOL de diseño FIJO):
id-programa . h . división de procedimientos . mostrar "¡Hola, mundo!" .
La compilación ocurre sin errores:
$ cobc -x smallest.cob $ ./smallest ¡Hola, mundo!
Tenga en cuenta que estos listados de trivia no deben considerarse como un buen formulario 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 en tiempo de ejecución con licencia LGPL están escritas en C y utilizan la ABI de C para la vinculación de programas externos.
El paquete de compilación utiliza el sistema de compilación GNU . Las pruebas estándar con el make check
uso de Autoconf , el conjunto de pruebas ANSI85 se ejecutan mediante el make test
uso de 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 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. [12]
- 1.1 lanzamiento de SourceForge [13]
- Versión de desarrollo 2.0 de SourceForge [14]
- paquete Debian open-cobol . [15]
- 2.2 Final, publicado el 7 de septiembre de 2017 por SourceForge [16]
- 2.2 Documentación, publicada en septiembre de 2017 desde SourceForge Code Tree.
- 3.1 Publicado en julio de 2020 junto con la documentación.
Referencias
- ^ https://ftp.gnu.org/gnu/gnucobol/README
- ^ Tiffin, Brian (19 de octubre de 2013). "Preguntas frecuentes de OpenCOBOL" . ¿Cuál es el historial de desarrollo de OpenCOBOL? . Consultado el 13 de diciembre de 2013 .
- ^ Tiffin, Brian (19 de octubre de 2013). "Preguntas frecuentes de OpenCOBOL" . ¿Cuál es la versión actual de OpenCOBOL? . Consultado el 13 de diciembre de 2013 .
- ^ Tiffin, Brian. "GNU Cobol ahora es algo real" . Archivado desde el original el 5 de octubre de 2013 . Consultado el 1 de octubre de 2013 .
- ^ Sobisch, Simon (6 de noviembre de 2013). "Trabajo en curso" . GNU Cobol 2.0 C ++.
- ^ Tiffin, Brian. "Estado del Proyecto" . Consultado el 23 de julio de 2015 .
- ^ "Preguntas frecuentes de OpenCOBOL" . 17 de octubre de 2013. ¿Qué tan completo es OpenCOBOL? . Consultado el 7 de junio de 2014 .
Si bien OpenCOBOL se puede mantener con un alto estándar de calidad y solidez, los autores NO afirman que sea una implementación de COBOL "conforme a los estándares".
- ^ "Preguntas frecuentes de OpenCOBOL" . ¿OpenCOBOL pasa el conjunto de pruebas NIST? . Consultado el 9 de octubre de 2013 .
- ^ a b Cutler, Gary. "Guía del programador de OpenCOBOL" (PDF) . Opencobol.addltocobol.com . Consultado el 20 de noviembre de 2012 .
- ^ "Un compilador COBOL de código abierto" . OpenCOBOL . Consultado el 20 de noviembre de 2012 .
- ^ Cutler, Gary. "Guías GnuCOBOL" . Opencobol.addltocobol.com . Consultado el 22 de julio de 2015 .
- ^ "GnuCOBOL - Examinar archivos en" . Sourceforge.net. 27 de diciembre de 2007 . Consultado el 28 de octubre de 2015 .
- ^ Descargas de GnuCOBOL en SourceForge
- ^ Descargas de GnuCOBOL en SourceForge
- ^ "Debian - Detalles del paquete open-cobol en buster" . packages.debian.org .
- ^ Descargas de GnuCOBOL en SourceForge
enlaces externos
- Sitio GNU, versiones oficiales de GnuCOBOL
- GnuCOBOL en SourceForge.net
- Consorcio COBOL de código abierto en Japón
- Preguntas frecuentes sobre GnuCOBOL
- Add1ToCOBOL Sitio de defensa de código abierto Cobol y OpenCOBOL
- tiny-cobol en SourceForge.net
- Nuevo grupo de usuarios de COBOL