Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol PowerRustCOBOL
PowerRustCOBOL Nuevo entorno RAD de Cobol, con características muy interesantes, como llamadas nativas a APIs (REST) y soporte de la IA Generativa.
Creado y mantenido por nuestro forero Eslopes
 
Respuesta
 
Herramientas

  #1
Antiguo 28 de mayo de 2026, 03:05
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172

Lo que comenzó como una simple experimentación se está transformando en un pequeño proyecto capaz de entregar cierto valor. Todavía está muy crudo, pero es bastante prometedor.

Utilicé Claude Code para imaginar una versión modernizada de PowerCobol 3.0. En lugar de intentar reutilizar código existente, imaginé cómo sería un PowerCobol que mantuviera en gran parte la filosofía del Fujitsu PowerCobol 3.0: sin ActiveX, sin dependencias del Registro de Windows, y con soporte para actividades modernas (llamar APIs REST, poseer un Agente de Inteligencia Artificial integrado capaz de modificar los propios objetos del formulario), todo ello con una interfaz moderna al estilo Apple Liquid Glass de los nuevos iPhones.

No utilicé el modelo de programación de Fujitsu (Nested programs), aunque quizás lo incorpore más adelante. Opté por algo más simple: un formulario = un programa. El enlace de eventos de un botón, timer o cualquier objeto sería un párrafo (generado por la IDE y editable por el desarrollador), de modo que todos los objetos convivieran dentro del mismo código.
Agregué una gran cantidad de controles (date picker, grid, imágenes, vídeos, elementos geométricos, botones, labels, textbox multilínea, listboxes, etc.). No está listo todavía para uso en producción, pero quise compartirlo desde ya para recibir opiniones sobre qué funcionalidades sería interesante añadir.

Gasté pocas horas describiendo lo que quería. Toda la programación fue realizada por Claude Code utilizando Rust, un lenguaje moderno y extremadamente rápido que está siendo considerado para reemplazar el kernel de Linux. Rust interpreta y ejecuta el código COBOL sin problemas.

Creo que lo más interesante es ver cómo los servicios de codificación con Inteligencia Artificial Generativa están cambiando completamente la forma de trabajar.

Además del timer tradicional de PowerCOBOL, también añadí un objeto para realizar llamadas a APIs (REST) y soporte completo a Generative AI Agents.

Un agente es capaz de simular cualquier comportamiento que deseemos. Por ejemplo: Defina una tool capaz de calcular la diferencia entre dos fechas definidas como PIC 9(8) (DDMMYYYY). Cuando solicite SET days TO agent::run('Calcule la diferencia entre "data-item1" y "data-item2"'), el agente retorna el resultado en formato PIC 9(8).

En realidad, cualquier cosa que podamos imaginar es posible solicitarle al agente. Por ejemplo: analice los ítems de la tabla valores-por-mes y haga una predicción del valor del próximo mes, colocando el resultado en el ítem de datos valor-del-proximo-mes. ¡Listo! Esto es todo lo que se necesita para crear subrutinas dinámicamente. Imagina todo lo que se puede hacer con esta capacidad...

Aún no tengo un plazo definido para liberar una versión testable. Claude es caro y mi plan actual se agota muy rápidamente, necesitando algunas horas para poder continuar. No pretendo cobrar por el uso de la solución, pero sería muy interesante si pudieran contribuir para contratar una suscripción más robusta que acelere el desarrollo.

No doy garantías, ni pretendo dar soporte, ni garantizo que la solución funcione perfectamente. Simplemente es un hobby mío y no quiero tener que lidiar con el dolor de cabeza de dar soporte a un producto que, por más interesante que sea, no tiene razón de existir. El mercado de IDEs nunca volverá a ser el mismo, con cada vez menos desarrollo siendo realizado de forma artesanal como hacíamos hasta hace pocos años, precisamente por causa de la tecnología que está posibilitando crear este proyecto (Inteligencia Artificial Generativa).

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  image1-4.png
Vistas: 137
Tamaño:  707,7 KB   Pulsar la imagen para la versión amplia
Nombre:  image1-3.png
Vistas: 129
Tamaño:  699,3 KB   Pulsar la imagen para la versión amplia
Nombre:  image1-0.png
Vistas: 129
Tamaño:  609,1 KB  
Eslopes is offline   Responder Con Cita
  #2
Antiguo 28 de mayo de 2026, 21:40
Kuk
Administrador
Última Actividad 25.10.2026 22:49
Posts Posts: 2.505
Likes enviados Enviados: 1046
Likes recibidos Recibidos: 1208

@Eslopes, estás haciendo realidad mi sueño de hace años !

¡¡¡MUY interesante la iniciativa!!!

¿Qué compilador has escogido para código Cobol?

En cuanto a Claude IA, cuáles son las tarifas ? El foro tiene una cuenta PayPal, podríamos organizar donaciones, lo que podamos (la verdad es que no sé cuáles son las tarifas), y luego enviártelo.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 28 de mayo de 2026, 22:23
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172
Predeterminado Re: PowerRustCOBOL
2 Inactivo Inactivo

Hola Kuk,

Gracias por tu mensaje.

Claude fue utilizado para crear en RUST el cobol-parser, que es principalmente compatible con COBOL-85 (ANSI X3.23-1985). Maneja el conjunto completo de características de COBOL-85: terminadores de ámbito (END-IF, END-EVALUATE, END-PERFORM, END-CALL), EVALUATE/WHEN/WHEN OTHER, PERFORM UNTIL/VARYING, INSPECT/TALLYING/REPLACING, las cuatro DIVISIONes y sus SECTIONs, además de los verbos estándar de E/S de archivos (READ, WRITE, REWRITE, DELETE, START).

El parser no implementa las extensiones orientadas a objetos de COBOL 2002, los intrínsecos XML/JSON de COBOL 2014, ni CONTINUE FROM. Además del estándar, añade tres extensiones específicas de COBOL 2002: INVOKE para llamadas a métodos de controles de formulario, bloques EXEC RUST … END-EXEC para Rust inline, y la sintaxis :: para acceso a propiedades.

El costo de Claude Code ronda los US$ 200/mes. Para el primer mes, este valor es suficiente para cubrir el 80% del trabajo. Posteriormente, solo se necesitarán alrededor de US$ 100 por mes durante un período que puede oscilar entre 3 y 6 meses. Mi suscripción actual solo permite algunas pocas interacciones cada 4 o 5 horas.

Me gustaría limitar las contribuciones a US$ 10,00 por persona. No considero justo que una sola persona contribuya y que todos tengan acceso gratuito. Mi plan es, inicialmente, liberar el código solo para quienes contribuyan en esta fase. Cuando alcancemos la versión 1.0, podremos liberarlo a la comunidad sin costo.

El proyecto puede ser una forma de liberar a la comunidad de las garras de los productores de código. Pretendo incluir varios recursos que hoy no están disponibles en ningún compilador COBOL, por ejemplo, la posibilidad de que el mismo código funcione en MacOS, Windows y Linux, con la misma interfaz. No existen dependencias externas ni legado que estemos cargando (ActiveX, Registry, frameworks, etc.). El compilador ya acepta EXEC RUST. En el futuro implementaré EXEC HTML, EXEC Javascript, EXEC Python y otros, soporte XML/JSON, además de algunos aceleradores para el uso de bases de datos, creación automática de formularios, etc.

Citación del post de Kuk Ver Mensaje
❞
@Eslopes, estás haciendo realidad mi sueño de hace años !

¡¡¡MUY interesante la iniciativa!!!

¿Qué compilador has escogido para código Cobol?

En cuanto a Claude IA, cuáles son las tarifas ? El foro tiene una cuenta PayPal, podríamos organizar donaciones, lo que podamos (la verdad es que no sé cuáles son las tarifas), y luego enviártelo.
Eslopes is offline   Responder Con Cita
  #4
Antiguo 28 de mayo de 2026, 22:51
Kuk
Administrador
Última Actividad 25.10.2026 22:49
Posts Posts: 2.505
Likes enviados Enviados: 1046
Likes recibidos Recibidos: 1208

@Eslopes, voy a notificar a todos los usuarios, a ver si la gente se anima. Además, limitando la aportación a 10$ (o €), creo que es una cantidad que muchos se pueden permitir. Yo voy a participar seguro.

He oído algo sobre Rust, pero nunca lo he tocado.
Entonces el binario que se produce, proviene del código Rust que es producto de código Cobol parseado (traducido), es correcto?



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #5
Antiguo 28 de mayo de 2026, 23:40
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172

El COBOL IDE y el COBOL Form Designer son binarios. El código COBOL resultante actualmente es interpretado por un runtime de COBOL creado por Claude.

Todavía estoy probando lo básico (dibujar un formulario, responder a eventos, etc.). Voy a verificar el rendimiento y ver qué es necesario para obtener el desempeño máximo.

Probablemente tendremos una generación de bytecode en tiempo de compilación y generación de código nativo en tiempo de interpretación, obteniendo la máxima portabilidad del código compilado y el máximo rendimiento del código en ejecución.


¡Saludos!

Citación del post de Kuk Ver Mensaje
❞
@Eslopes, voy a notificar a todos los usuarios, a ver si la gente se anima. Además, limitando la aportación a 10$ (o €), creo que es una cantidad que muchos se pueden permitir. Yo voy a participar seguro.

He oído algo sobre Rust, pero nunca lo he tocado.
Entonces el binario que se produce, proviene del código Rust que es producto de código Cobol parseado (traducido), es correcto?
Eslopes is offline   Responder Con Cita
  #6
Antiguo 29 de mayo de 2026, 09:03
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172
Predeterminado Re: PowerRustCobol - version 0.0.1 (beta)
2 Inactivo Inactivo

COBOL IDE — Registro de Cambios (Changelog)

Reglas de Versionado
  • PATCH (0.0.x): Correcciones de errores, mejoras menores y correcciones de compilación.
  • MINOR (0.x.0): Nuevas funcionalidades — reinicia el PATCH a 0.
  • MAJOR (x.0.0): Cualquier cambio en el intérprete — reinicia MINOR y PATCH a 0.

[hr]

[0.0.1] — 2026-05-29 (versión inicial etiquetada)
Fundación (pre-etiqueta, post-parser)
Todo el trabajo que aparece a continuación se completó antes de aplicar la etiqueta 0.0.1. Se cataloga aquí como el conjunto base de características.

Runtime y Toolchain
  • cobol-semantic — Estructura base del crate de análisis semántico; resolución de identificadores y comprobación básica de tipos.
  • cobol-runtime / intérprete — Intérprete de recorrido de árbol para todos los tipos de sentencias del Árbol de Sintaxis Abstracta, incluyendo Try/Catch y Throw.
  • cobol-stdlib — Biblioteca estándar con funciones auxiliares de COBOL.
  • cobol-cli — Binario de línea de comandos (cobol run <archivo>).
  • Palabra clave INVOKE añadida.
  • Verbos PLAY ANIMATION y STOP ANIMATION añadidos.
  • Soporte completo de TRY / CATCH EXCEPTION / FINALLY.

IDE Shell (cobol-ide)
  • Shell basado en eframe/egui con efecto de vidrio líquido y paleta azul marino.
  • Icono de dock para macOS generado programáticamente.
  • Editor de código con resaltado de sintaxis y autocompletado.
  • Panel de consola con salida en tiempo real.
  • Sistema de proyectos con archivo cobol.toml.
  • Soporte de atajos de teclado (Guardar, Deshacer, Rehacer).

Diseñador de Formularios
  • Modelo completo de formularios con serialización y deserialización en formato XML.
  • Generador de código COBOL automático desde los formularios.
  • Veintinueve (29) tipos de controles soportados:
    Button,
    Label,
    TextBox,
    CheckBox,
    RadioButton,
    ComboBox,
    ListBox,
    NumericUpDown,
    DateTimePicker,
    GroupBox,
    Panel,
    TabControl,
    Splitter,
    DataGrid,
    TreeView,
    PictureBox,
    ProgressBar,
    Slider,
    Line,
    Shape,
    MenuBar,
    ToolBar,
    StatusBar,
    Timer,
    AgentObject,
    RestClient,
    SqlDatabase (no visual),
    ModalWindow.
  • Caja de herramientas con iconos vectoriales.
  • Inspector de propiedades avanzado.
  • Sistema completo de animaciones por control.
  • Vista previa en ventana separada con efectos de vidrio.
  • Soporte de fondo con imagen y transparencia.
  • Deshacer y Rehacer completo.
  • Preajustes de dispositivos (iPhone, iPad, Apple Watch, teléfonos Android, tabletas Android, relojes Android y personalizado).

Recursos en Implementación
  • Soporte de localización para el IDE y el Diseñador de Formularios: Inglés, Español, Portugués, Japonés y Chino.
  • Ejemplos prácticos para cada uno de los controles.
  • Documentación completa.
  • Pruebas NIST COBOL-85.

Otros cambios
Se renombraron los identificadores COBOLT-* a COBOL-* en todo el código.



Post añadido a las 03:03. Post anterior a las 01:30


Tengo que reconocer que los japoneses fueron geniales, hace 35 años, cuando crearon el PowerCOBOL. Empecé con un concepto simple: un formulario, un programa. Pero pronto comencé a encontrar dificultades en la organización del código, además de conflictos con nombres de variables y un aumento exponencial de la complejidad del código final.
Decidí dar un paso atrás y utilizar programas anidados, exactamente como lo hacía el añorado PowerCOBOL. El código quedó más limpio y el modelo está generando código de manera mucho más fácil.
El resultado final se acerca conceptualmente al Power, aunque mantiene una buena distinción, además de ser infinitamente superior en términos de recursos. Aun así, me quito el sombrero ante los diseñadores de Japón. ¡Hicieron un trabajo excelente y primoroso!


COBOL IDE — Registro de Cambios (Changelog)

[1.0.0] — 2026-05-29
Major — Arquitectura de programas anidados (modelo Opción C de PowerCOBOL)
Esta es la primera actualización importante de versión. Todo el modelo de generación de código y almacenamiento de formularios ha sido rediseñado para coincidir con el enfoque de Fujitsu PowerCOBOL 3.0: cada manejador de eventos se convierte en un programa anidado COBOL-85; el archivo .cfrm es la única fuente de verdad; el archivo .cbl generado es un artefacto de compilación que el usuario nunca edita.

Formato de archivo .cfrm (v1.0 — carga compatible con versiones anteriores)
Se añadieron tres nuevas secciones XML al archivo .cfrm:
[*] <working-storage><![CDATA[...]]></working-storage> — declaraciones de datos COBOL en bruto emitidas literalmente en la WORKING-STORAGE del programa exterior; soporta cláusulas GLOBAL y EXTERNAL para compartir datos a nivel de formulario y entre formularios.
[*] <form-events> — manejadores de ciclo de vida OnLoad y OnClose almacenados como elementos hijos <Event> con cuerpos CDATA.
[*] <deleted-controls> — papelera de reciclaje: el código de eventos de controles eliminados se conserva aquí (nunca se emite al .cbl) para poder restaurarlo posteriormente.

Los elementos <Event> ahora utilizan formato de inicio/fin con cuerpo CDATA para las sentencias COBOL del usuario. Las etiquetas antiguas de autocierre <Event .../> todavía se cargan correctamente (el código estará vacío).

Cambios en el modelo (cobol-forms)
[*] EventBinding gana el campo code: String — sentencias COBOL en bruto para este manejador.
[*] EventBinding::for_control(ctrl_id, event) — deriva automáticamente el nombre del párrafo como "CTRL-ID--EVENT-NAME" (separador de doble guion).
[*] EventBinding::has_code(), code_line_count() — funciones auxiliares para la interfaz de usuario.
[*] derive_paragraph_name(ctrl_id, event) -> String — función de utilidad pública.
[*] Form gana los campos: user_ws_source: String, form_events: Vec<EventBinding>, deleted_code: Vec<DeletedControlCode>.
[*] Form::new() pre-popula form_events con stubs vacíos de OnLoad / OnClose.
[*] Form::recycle_control(id, timestamp) — mueve el código de eventos a la papelera de reciclaje antes de eliminar; restore_from_recycle(timestamp, target_id) lo recupera.
[*] Form::control_has_code(id) — devuelve [(event, line_count)] para el diálogo de la interfaz.
[*] Control::ensure_event(event) — vinculación idempotente de evento con nombre derivado automáticamente.
[*] Estructura DeletedControlCode — control_id, deleted_at (marca de tiempo ISO), events.

Panel de Propiedades (cobol-ide)
[*] La sección "Event Bindings" fue reemplazada por una sección de solo lectura "Events" que muestra puntos de estado ●/○ y conteo de líneas por evento soportado; el usuario es dirigido a la Vista de Código para editar.
[*] Se eliminó la sección "COBOL Paragraphs" de los controles de gráficos (fue reemplazada por la Vista de Código).
[*] Se eliminaron los campos de preparación new_ev_name / new_ev_para del PropertiesPanel.

Generación de Código (cobol-codegen) — Fase 3 (pendiente)
La reescritura de PROCEDURE DIVISION para emitir programas anidados es el siguiente paso.

Runtime (cobol-runtime) — Fase 4 (pendiente)
La herencia de ámbito GLOBAL y el envío de programas anidados es el siguiente paso.

Panel Vista de Código del IDE — Fase 5 (pendiente)
Navegador de eventos + editor COBOL por evento es el siguiente paso.

[hr]

[0.2.2] — 2026-05-29
Corrección — Chart SET-TABLE genera COBOL inválido cuando DataSource/DataCount no están configurados
La función write_chart_stubs() utilizaba .map().unwrap_or_else(fallback) para establecer valores predeterminados vacíos para las propiedades DataSource / DataCount, pero si la propiedad existía como cadena vacía Some(""), unwrap_or_else nunca se ejecutaba. El resultado era código COBOL generado inválido:

```cobol
MOVE TO WS-LIN-13-SELECTED-IDX *> missing source
CALL "COBOL-CHART-SET-TABLE" USING "LIN-13" *> missing args
Eslopes is offline   Responder Con Cita
  #7
Antiguo 30 de mayo de 2026, 10:16
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172
Predeterminado Progresso...
1 Inactivo Inactivo

PowerRustCOBOL — Registro de cambios
[2.1.0] — 2026-05-30
Fase 7 — Depurador

El IDE ahora cuenta con un depurador interactivo completo para programas COBOL.

Nuevo: tipos de canal DebugCmd y DebugEvent (cobol-runtime/src/debugger.rs)

Dos enums tipados cruzan el límite de hilo entre el IDE y el intérprete:

DebugCmd — Continue, StepOver, Pause — enviado desde el IDE al intérprete para controlar la ejecución.

DebugEvent — Paused { line, col, paragraph, vars }, Resumed, Finished — enviado desde el intérprete de vuelta al IDE.

Breakpoints (Arc<Mutex<HashSet<u32>>>) — conjunto compartido y seguro para hilos con los números de línea de breakpoints activos, escrito por el IDE y leído por el intérprete.

Actualizado: Interpreter — hook de depuración por sentencia

Interpreter::new_with_debug_channels() es un nuevo constructor que conecta los canales de depuración al intérprete. Antes de cada sentencia, exec_stmts() ahora llama a debug_check(), que:

Extrae la línea fuente de la sentencia mediante Stmt::span().
Comprueba si la línea coincide con un breakpoint o si debug_stepping es verdadero, en modo StepOver.
Si se cumple una condición de pausa, envía DebugEvent::Paused con una captura completa de variables (CobolEnvironment::iter() → lista VarSnapshot) y bloquea en debug_cmd_rx.recv() hasta que el IDE envíe Continue o StepOver.
Un comando asincrónico Pause se gestiona mediante una consulta no bloqueante try_recv() en cada sentencia cuando aún no está pausado.
DebugEvent::Finished se envía cuando run() termina normalmente o mediante STOP RUN.

current_paragraph se actualiza al entrar en cada párrafo, de modo que el evento Paused siempre lleva el nombre correcto del párrafo.

Nuevo: DebugRunner (cobol-ide/src/runner.rs)

DebugRunner es un componente hermano de Runner que gestiona una sesión de depuración:

start(file_name, source) — ejecuta todo el flujo lex → parse → semantic y luego lanza Interpreter::new_with_debug_channels() en un hilo en segundo plano.
send_cmd(DebugCmd) — reenvía un comando de paso, continuación o pausa al hilo.
drain_events() -> Vec<DebugEvent> — recopila los eventos de depuración pendientes en cada frame.
drain_run() -> Vec<RunMsg> — recopila los mensajes de ejecución pendientes, incluidos diagnósticos, salida y finalización.
pub breakpoints: Breakpoints — el IDE escribe aquí las líneas de breakpoint antes de llamar a start(); el puntero compartido se pasa directamente al intérprete.
stop() — descarta cmd_tx, lo que desbloquea cualquier recv() en el intérprete y causa Err(_) → StopRun; luego une el hilo.
Nuevo: panel lateral del depurador (cobol-ide/src/panels/debugger.rs)

DebuggerPanel se renderiza en un panel lateral derecho redimensionable mientras una sesión de depuración está activa:

Barra de pasos — ▶ Continue (F5), ⤵ Step Over (F10), ⏸ Pause. Los botones se deshabilitan cuando el intérprete está ejecutándose, es decir, no pausado.
Indicador de ubicación — nombre del párrafo y línea fuente, con indicador de estado codificado por color: ● Running / ● Paused.
Tabla de observación de variables — muestra todos los elementos de datos de CobolEnvironment en una cuadrícula rayada de dos columnas, nombre / valor, con búsqueda mediante un cuadro de filtro.
Nuevo: gutter de breakpoints en editor.rs

La columna de números de línea del editor de código ahora es un gutter de breakpoints totalmente interactivo:

Al hacer clic en cualquier número de línea se alterna un círculo rojo de breakpoint (●) en esa línea.
Cuando el depurador pausa, una flecha amarilla (→) y una fila resaltada marcan la línea de ejecución actual.
EditorPanel::breakpoints: HashMap<PathBuf, HashSet<u32>> almacena breakpoints activos por archivo.
breakpoints_for(path) devuelve el conjunto de líneas para un archivo dado, usado por do_debug() para inicializar los Breakpoints compartidos antes de iniciar la sesión.
Nuevo: botón 🐛 Debug en la barra de herramientas y atajos de teclado

Una barra secundaria aparece debajo de la barra principal:

🐛 Debug — inicia una sesión de depuración para el archivo activo; queda deshabilitado mientras una ejecución normal está activa. Sincroniza automáticamente los breakpoints del gutter del editor con DebugRunner::breakpoints antes de comenzar.
■ Stop Debug — descarta el canal de comandos, hace una detención controlada, reinicia el panel del depurador y limpia el resaltado de la línea de depuración en el editor.
F5 — Continue mientras una sesión está activa.
F10 — Step Over mientras una sesión está activa.
Adiciones de i18n en los 5 idiomas

Nuevas claves: panel_debugger, dbg_continue, dbg_step_over, dbg_pause, dbg_stop, dbg_variables, dbg_filter_hint, dbg_debug.

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  screen2.png
Vistas: 124
Tamaño:  851,3 KB  
Eslopes is offline   Responder Con Cita
  #8
Antiguo 31 de mayo de 2026, 01:55
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172

Aquí está todo lo que se ha construido hasta ahora:

RustCOBOL Lexer (cobolt-lexer) — Tokenizador para COBOL-85 (ANSI X3.23-1985, mismo que Fujitsu COBOL 3.0). Maneja código fuente tanto de formato fijo como de formato libre, todas las palabras clave estándar, además de extensiones de RustCOBOL (EXEC RUST, verbos de animación PLAY/STOP, INVOKE).
RustCOBOL AST (cobolt-ast) — El Árbol de Sintaxis Abstracta. Todos los tipos de nodo derivan Serialize/Deserialize, de modo que el AST puede serializarse para el compilador binario.
RustCOBOL Parser (cobolt-parser) — Parser de descenso recursivo que produce un AST Program completo a partir de flujos de tokens. Cubre DATA, PROCEDURE, TRY/CATCH, programas anidados y funciones COBOL-85.
RustCOBOL Semantic Analyser (cobolt-semantic) — Valida declaraciones de datos, referencias a variables y existencia de párrafos, y produce diagnósticos con niveles de severidad.
RustCOBOL Runtime (cobolt-runtime) — Intérprete tree-walking. Ejecuta el AST directamente. Incluye:

Motor de base de datos SQLite (COBOL-OPEN-DB / COBOL-EXEC-SQL / etc.)
Cliente HTTP REST (COBOL-HTTP-GET / COBOL-HTTP-POST / etc.)

Con el cambio de nombre, el versionado se inicia en 1.0.0
Canales de formularios GUI (eventos ↔ hilo del intérprete)
Canales del depurador (breakpoints, step-over, observación de variables)

RustCOBOL Standard Library (cobolt-stdlib) — Stubs de biblioteca estándar.
PowerRustCOBOL Forms Engine (cobolt-forms) — Modelo de datos de formularios: controles, animaciones y propiedades, con serialización/deserialización XML. El formato de archivo .cfrm.
PowerRustCOBOL Code Generator (cobolt-codegen) — Generador de fuente RustCOBOL a partir de formularios. Emite working-storage, programas anidados para manejadores de eventos, stubs SQL, stubs REST y exportación CSV de DataGrid.
RustCOBOL Compiler (cobolt-compiler) — Compilador binario embed+bundle. Analiza el proyecto, serializa el AST con bincode+flate2, genera un proyecto Rust autocontenido, llama a cargo build --release y emite un único ejecutable nativo en bin/.
rcrun (cobolt-cli) — Runtime de línea de comandos:

rcrun run <file.cbl> — ejecuta RustCOBOL desde la terminal
rcrun check <file.cbl> — solo hace parsing + verificación semántica
rcrun package — comprime el proyecto con launchers
rcrun build — compila a un binario nativo

PowerRustCOBOL (cobolt-ide) — El RAD principal (egui/eframe), que contiene:

Code Editor — editor RustCOBOL con resaltado de sintaxis, gutter de breakpoints, búsqueda y autocompletado
Form Designer — constructor visual de formularios drag-and-drop, multi-viewport, tema glass/liquid UI, sistema de animación, z-order, multiselección y herramientas de alineación
Form Preview — vista previa interactiva en vivo con imágenes de fondo, animaciones, gráficos y todos los widgets
Run Form — ejecuta el RustCOBOL generado en un hilo de intérprete en vivo con canales bidireccionales UI↔COBOL
Debugger — breakpoints, step-over/into, panel de observación de variables y resaltado de línea en el editor
Project System — proyectos cobolt.toml con fuentes, formularios y assets; File → Package y File → Build Binary
Bug Tracker — Help → �� Report a Problem escribe en BUGS.md; escaneo diario programado reporta errores del compilador
i18n — 5 idiomas: inglés, español, portugués, japonés y chinocobolt-lexer — Tokenizador para COBOL-85 (ANSI X3.23-1985, mismo que Fujitsu COBOL 3.0). Maneja código fuente tanto de formato fijo como de formato libre, todas las palabras clave estándar, además de extensiones de CobolRust (EXEC RUST, verbos de animación PLAY/STOP, INVOKE).
cobolt-ast — El Árbol de Sintaxis Abstracta. Todos los tipos de nodo derivan Serialize/Deserialize, de modo que el AST puede serializarse para el compilador binario.
cobolt-parser — Parser de descenso recursivo que produce un AST Program completo a partir de flujos de tokens. Cubre DATA, PROCEDURE, TRY/CATCH, programas anidados y funciones COBOL-85.
cobolt-semantic — Analizador semántico. Valida declaraciones de datos, referencias a variables y existencia de párrafos, y produce diagnósticos con niveles de severidad.

cobolt-runtime — Intérprete tree-walking. Ejecuta el AST directamente. Incluye:

Motor de base de datos SQLite (COBOL-OPEN-DB / COBOL-EXEC-SQL / etc.)
Cliente HTTP REST (COBOL-HTTP-GET / COBOL-HTTP-POST / etc.)
Canales de formularios GUI (eventos ↔ hilo del intérprete)
Canales del depurador (breakpoints, step-over, observación de variables)

cobolt-stdlib — Stubs de biblioteca estándar.
cobolt-forms — Modelo de datos de formularios: controles, animaciones y propiedades, con serialización/deserialización XML. El formato de archivo .cfrm.
cobolt-codegen — Generador de fuente COBOL a partir de formularios. Emite working-storage, programas anidados para manejadores de eventos, stubs SQL, stubs REST y exportación CSV de DataGrid.
cobolt-compiler — Compilador binario embed+bundle, Fase 11. Analiza el proyecto, serializa el AST con bincode+flate2, genera un proyecto Rust autocontenido, llama a cargo build --release y emite un único ejecutable nativo en bin/.
cobolt-cli — Herramienta de línea de comandos:

cobolt run <file.cbl> — ejecuta COBOL desde la terminal
cobolt check <file.cbl> — solo hace parsing + verificación semántica
cobolt package — comprime el proyecto con launchers
cobolt build — compila a un binario nativo

cobolt-ide — La aplicación GUI principal (egui/eframe), que contiene:

Code Editor — editor COBOL con resaltado de sintaxis, gutter de breakpoints, búsqueda y autocompletado
Form Designer — constructor visual de formularios drag-and-drop, multi-viewport — cada formulario en su propia ventana del sistema operativo —, tema glass/liquid UI, sistema de animación, z-order, multiselección y herramientas de alineación
Form Preview — vista previa interactiva en vivo del formulario diseñado, con imágenes de fondo, animaciones, gráficos y todos los controles
Run Form — ejecuta el COBOL generado por el formulario en un hilo de intérprete en vivo con canales bidireccionales de eventos UI↔COBOL
Debugger — breakpoints, step-over/into, panel de observación de variables y resaltado de la línea de depuración en el editor
Project System — proyectos cobolt.toml que rastrean fuentes, formularios y assets; File → Package y File → Build Binary
Bug Tracker — Help → �� Report a Problem escribe en BUGS.md; escaneo diario programado reporta errores del compilador
i18n — 5 idiomas: inglés, español, portugués, japonés y chino

Última edición por Eslopes fecha: 31 de mayo de 2026 a las 01:58.
Eslopes is offline   Responder Con Cita
  #9
Antiguo 2 de junio de 2026, 19:18
luisbago
Forero Junior
Última Actividad 26.10.2026 21:22
Posts Posts: 48
Likes enviados Enviados: 5
Likes recibidos Recibidos: 17

quiero agradecer la iniciativa de Eslopes para los cobolores que quieren actualizarse.

Solo una duda, el manejador de datos cual seria? sql? isam? vbisam?
luisbago is offline   Responder Con Cita
  #10
Antiguo 3 de junio de 2026, 00:11
Eslopes
Creador de
PowerRustCOBOL
Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por ámplios conocimientos en la materia Concurso: Tercer puesto: Ganador/a del Tercer puesto en un concurso - Issue reason: Juego  Innovación: Por aportar innovaciones - Issue reason: Por aportar soluciones innovadoras 
Última Actividad 27.10.2026 07:38
Posts Posts: 396
Likes enviados Enviados: 31
Likes recibidos Recibidos: 172

Repositorio creado en GitHub.

Por el momento, el repositorio es privado, con acceso permitido únicamente a los sponsors del proyecto.

Cuando alcancemos una versión estable, lo liberaremos para los demás. Mantendremos a todos informados sobre el progreso aquí en este foro.

Actualmente, PowerRustCOBOL soporta SQLite, pero añadiremos soporte para MySQL, PostgreSQL, Oracle y Microsoft SQL Server, además de ISAM, con formato seleccionable — RM/COBOL-85, Fujitsu COBOL-85 y otros en el futuro — de acuerdo con nuestro roadmap.

Necesitamos comprar créditos para usar Claude Code. Sin ellos, el desarrollo se prolongará durante mucho tiempo, ya que la cuenta actual tiene limitaciones.

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  github.png
Vistas: 108
Tamaño:  430,1 KB  
Eslopes is offline   Responder Con Cita
Respuesta



Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:22.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.