1. Procesamiento de los perfiles lingüísticos
La arquitectura experimental resuelve la forma lingüística de entrada antes del análisis sintáctico. El analizador, la IR y la semántica siguen siendo únicos y no dependen del idioma seleccionado.
fuente UTF-8
├─ perfil es → grafía española ─┐
└─ perfil en → grafía inglesa ─┤
↓
índice conjunto de grafías
↓
identidad interna común
↓
analizador sintáctico único
↓
AST / IR / semántica
Cada entrada del índice conjunto relaciona una grafía con la identidad interna del terminal y con los perfiles en los que está admitida. Una grafía compartida entre ES y EN sólo es válida si representa la misma identidad en ambos perfiles.
2. Selección de perfil
| API conceptual | compile_svp_profile(..., SourceProfile::Es) · compile_svp_profile(..., SourceProfile::En) |
|---|---|
| Compatibilidad | compile_svp(...) conserva el comportamiento inglés heredado en el candidato ensayado. |
| Selector textual | exactamente es o en. |
| ABI WebAssembly | 0 = EN · 1 = ES; los demás valores se rechazan. |
| Autodetección | No existe. |
| Alias no admitidos | EN, ES, auto, es-ES, en-US, spanish, english. |
3. Identidad y procedencia
La equivalencia computacional no identifica los bytes de origen. La Beta conserva la huella de cada fuente concreta y permite comprobar que dos formulaciones ES/EN pueden producir la misma carga computacional sin perder su procedencia.
SemanticPayload(IR_ES) = SemanticPayload(IR_EN) source_sha256(ES) ≠ source_sha256(EN)
Los identificadores del usuario, las cadenas, los comentarios, los naturales y los datos no son objeto de traducción.
4. Cobertura y aislamiento
| Comprobación | Resultado final |
|---|---|
| Identidades del catálogo cubiertas | 154/154 |
| Formas actualmente realizables | 147 |
| Formas protegidas sin producción positiva | 7 |
| Fuentes válidas emparejadas ES/EN | 19 |
| Carga semántica de pares | Igual en la batería |
| Procedencia de pares | Distinta |
| Fuentes EN rechazadas bajo ES | 12/12 |
| Fuentes ES rechazadas bajo EN | 12/12 |
5. Método de medida
La medición final se ejecutó sobre SV-lenguaje-de-computacion@f6b704e819e7d08589f00e9e3f9550deab21d0b1, con rustc 1.98.0 y cargo 1.98.0, en Linux x86-64 sobre AMD EPYC 7763 virtualizado. La comparación de las configuraciones alternó todos los órdenes de ejecución durante 42 rondas; la comparación por idioma utilizó 36 rondas.
Se compararon tres configuraciones: un único perfil EN, una versión bilingüe secuencial y una versión bilingüe con índice conjunto. El control de longitud creó un corpus inglés artificial con el mismo número de bytes, archivo por archivo, que el corpus español de rendimiento.
6. CPU de las configuraciones
| Configuración | Mediana | MAD |
|---|---|---|
| Un perfil EN | 17406,804 ns/compilación | 72,984 ns |
| ES/EN secuencial | 16670,737 ns/compilación | 93,848 ns |
| ES/EN con índice conjunto | 16924,057 ns/compilación | 111,689 ns |
Índice conjunto frente a un perfil: mediana −2,671 %. Índice conjunto frente a secuencial: +1,315 %, con 33/42 rondas en esa dirección. La diferencia frente a la configuración secuencial se acepta porque el índice conjunto clasifica cada grafía una sola vez, sin recorrer explícitamente una lista de perfiles.
No se interpreta el −2,671 % como aceleración causada por el bilingüismo.
7. Memoria dinámica
| Magnitud | Un perfil EN | Secuencial ES/EN | Índice conjunto ES/EN |
|---|---|---|---|
| Asignaciones/compilación | 135,75 | 135,75 | 135,75 |
| Bytes asignados/compilación | 33706,916667 | 33706,916667 | 33706,916667 |
| Pico incremental | 55854 B | 55854 B | 55854 B |
| Memoria viva final | 0 B | 0 B | 0 B |
Dentro del camino y corpus ensayados, el segundo perfil y el índice conjunto no añadieron memoria dinámica medible frente a la configuración de un solo perfil.
8. Tamaño de los artefactos
| Artefacto | Un perfil EN | Secuencial | Índice conjunto |
|---|---|---|---|
| Nativo | 919056 B | 926576 B | 927584 B |
| WebAssembly | 343378 B | 354952 B | 355221 B |
Índice conjunto frente a secuencial: +1008 B nativos (+0,109 %) y +269 B WebAssembly (+0,076 %). Índice conjunto ES/EN frente a un solo perfil: +0,928 % nativo y +3,449 % WebAssembly.
9. Coste observado de la forma española
En el corpus de rendimiento, el inglés original ocupó 11865 bytes y el español 13371 bytes (+12,693 %). El control inglés se rellenó con espacio léxicamente neutro hasta igualar exactamente la longitud del español archivo por archivo.
| Idioma de entrada | CPU mediana | MAD |
|---|---|---|
| EN original | 16950,629 ns | 78,614 ns |
| EN igualado en bytes | 17034,798 ns | 76,173 ns |
| ES | 17416,728 ns | 77,082 ns |
ES frente a EN original: +2,744 %. ES frente al control inglés de igual longitud: +2,110 %, con 33/36 rondas positivas. La prueba no permite atribuir el diferencial a una sola causa: no iguala simultáneamente longitud de palabras, distribución de terminales, caracteres UTF-8 multibyte, puntos de código y estructura de comparaciones léxicas.
Entre ES y el control inglés de igual longitud se midieron 0 asignaciones adicionales, 0 diferencia de pico, 0 memoria residual y sólo +2,67 bytes solicitados por compilación.
10. Escalabilidad y límites
- La arquitectura evita un recorrido explícito por N perfiles mediante un índice conjunto, pero no afirma coste físico matemáticamente constante para un número arbitrario de idiomas.
- Cada perfil futuro deberá ser completo, inyectivo, versionado y compatible con el espacio nominal definido para su familia.
- Una misma grafía compartida por perfiles no podrá representar identidades internas diferentes.
- La compatibilidad de versiones entre unidades y módulos deberá definirse antes de afirmar composición entre varios archivos.
- Si el tamaño de WebAssembly se volviera material al crecer el número de perfiles, deberá evaluarse una estrategia de distribución o carga sin trasladar decisiones semánticas a recursos remotos.
11. Estado
Beta B1 permanece experimental. Las pruebas demuestran la viabilidad de la arquitectura ES/EN en el alcance descrito. Su incorporación a la versión estable requiere un proceso posterior y no queda determinada por este documento.