gioser

tawasuyu/brahman

Rust 296TOML 105JSON 14Markdown 73751 Sutichaykuna

⎇ 737ae5a696250c7e323aafdcdbc7f3adf985e0ff crates/modules/charka/SDD.md Markdown · 43 siq'ikuna · 2.1 KB Ñawpa willay ch'uya

feat(charka): charka-bcd — aritmética decimal con semántica COBOL 737ae5a69 · sergio ·

1# modules/charka/ — Transpilador COBOL → Rust
2
3**Propósito.** Modernizar sistemas COBOL legados transpilándolos a Rust
4con un runtime determinista y un validador en sombra (shadow validator)
5que compara la salida del original y la del transpilado. Es el módulo
6más grande del ecosistema — el parser COBOL completo (CICS, SQL
7embebido, dialectos IBM Enterprise) es un esfuerzo multi-mes.
8
9## Crates
10
11| crate        | tipo | rol                                                          |
12| ------------ | ---- | ------------------------------------------------------------ |
13| `charka-bcd` | lib  | Aritmética decimal de punto fijo con semántica COBOL: `Picture`, `Decimal`, redondeo, `ON SIZE ERROR` |
14
15## charka-bcd
16
17COBOL no calcula en binario flotante: opera sobre campos decimales de
18precisión fija (`PIC S9(5)V99`). Reproducir un programa COBOL exige
19reproducir esa aritmética dígito a dígito.
20
21- `Picture` — parsea la cláusula PICTURE numérica (`9`, `V`, `S`, `9(n)`).
22- `Decimal` — punto fijo exacto (`mantissa: i128` + `scale`); suma, resta
23  y producto exactos; división con escala de resultado fija; redondeo
24  `Truncate`/`HalfUp`; `coerce` a un `Picture` con detección de
25  desbordamiento.
26- Determinista, sin dependencias de plataforma — mismo programa, mismos
27  dígitos, en cualquier máquina.
28
29## Estado
30
31`charka-bcd` implementado y verde (22 tests). **Pendiente** — el grueso
32del transpilador (esfuerzo multi-mes, Fase D del plan macro):
33
34| crate pendiente   | rol                                                  |
35| ----------------- | ---------------------------------------------------- |
36| `charka-lexer`    | tokenizador COBOL (formato fijo de columnas)         |
37| `charka-parser`   | parser COBOL'85 → AST (luego CICS + SQL embebido)    |
38| `charka-ir`       | representación intermedia                            |
39| `charka-codegen`  | emisión de Rust                                      |
40| `charka-shadow`   | validador en sombra (original vs transpilado)        |
41| `charka-runtime`  | runtime determinista (sobre `charka-bcd`)            |
42
43Hito intermedio sugerido: subconjunto COBOL'85 puro antes de CICS/SQL.

SDD.md

modules/charka/ — Transpilador COBOL → Rust

Propósito. Modernizar sistemas COBOL legados transpilándolos a Rust con un runtime determinista y un validador en sombra (shadow validator) que compara la salida del original y la del transpilado. Es el módulo más grande del ecosistema — el parser COBOL completo (CICS, SQL embebido, dialectos IBM Enterprise) es un esfuerzo multi-mes.

Crates

cratetiporol
charka-bcdlibAritmética decimal de punto fijo con semántica COBOL: Picture, Decimal, redondeo, ON SIZE ERROR

charka-bcd

COBOL no calcula en binario flotante: opera sobre campos decimales de precisión fija (PIC S9(5)V99). Reproducir un programa COBOL exige reproducir esa aritmética dígito a dígito.

Estado

charka-bcd implementado y verde (22 tests). Pendiente — el grueso del transpilador (esfuerzo multi-mes, Fase D del plan macro):

crate pendienterol
charka-lexertokenizador COBOL (formato fijo de columnas)
charka-parserparser COBOL'85 → AST (luego CICS + SQL embebido)
charka-irrepresentación intermedia
charka-codegenemisión de Rust
charka-shadowvalidador en sombra (original vs transpilado)
charka-runtimeruntime determinista (sobre charka-bcd)

Hito intermedio sugerido: subconjunto COBOL'85 puro antes de CICS/SQL.