Sí, has leído bien. Aquí no vas a memorizar COBOL, vas a aprender a aprender COBOL. Este repositorio no es un manual paso a paso de cómo usar COBOL, es un punto de partida para aprender a moverte por su entorno. Encontrarás retos pensados para que seas tú quien descubra, practique y domine COBOL de una forma divertida y práctica.
No uses IAs.
Tus fallos entrenan tu cerebro.
Cada error activa procesos que ninguna máquina puede vivir por ti.
La metodología de aprendizaje de este repositorio consiste en hacer los proyectos planteados en el enunciado de cada día. Tendrás que investigar por tu cuenta para poder cumplir los criterios fijados. Puedes hacer uso de los posts de LinkedIn adjuntos y las documentaciones recomendadas.
No es necesario clonar el repositorio.
Para este proyecto recomiendo usar el siguiente stack:
- GNUCobol como compilador
- Vim como editor de texto
Arch Linux desde AUR
yay gnucobolDebian/Ubuntu
sudo apt install gnucobolOtras distribuciones
sudo apt -y install -y build-essential gcc
./configure
make
sudo make installcobc [options]... file...Para compilar un ejecutable usaremos el argumento -x
cobc -x archivo.cobComo el compilador transpila primero el código a C para compilar usando el compilador del sistema operativo, podemos pedirle que nos devuelva el resultado en C o ensamblador:
- C
cobc -C archivo.cob- ASM
cobc -S archivo.cobPara facilitar el aprendizaje, en este apartado incluyo documentaciones de COBOL que me han sido muy utiles.
- IBM COBOL for AIX Programming Guide (PDF) - Mi favorito
- Tutorialspoint COBOL
- IBM COBOL for Linux on x86 documentation
- IBM Enterprise COBOL for z/OS documentation
- Sustituir las soluciones con un script de Python para corregir automáticamente el ejercicio. Ejemplo de la propuesta:
$ python test.py
[✅] ex00.cob passed (50 tests)
[❌] ex01.cob failed
--- Traceback (most recent call last) ---
Exercise: ex01
Iteration: 0
Input: '2175 6155'
Expected: '8330'
Got: '0'
-----------------------------
[❌] ex02.cob: Compilation error
En caso de cualquier error que haya cometido o alguna nueva idea para mejorar este repositorio, siéntete libre de abrir un Issue o Pull Request, o contactarme a mi correo electrónico: nora@defitero.com


