Fase 3 · SE-023 · Taller

Taller: observar un programa desde el código hasta la máquina

Una clase de la Parte 01 — Computadores y representación de información. Comprende el mecanismo, úsalo para decidir y conserva evidencia revisable.

Contenido desarrollado como parte del recorrido completo de las Partes 00–05.
Vienes deRendimiento, consumo energético y límites físicos
Construyes ahoraTaller: observar un programa desde el código hasta la máquina
Conecta conProyecto: informe reproducible de comportamiento y recursos

← SE-022 · ↑ Parte 01 · 📚 Índice completo · SE-024 →

Punto profesional y fundamento pedagógico

Punto profesional. La clase existe para integrar las capas del computador en una explicación causal que separe observación, inferencia e hipótesis.

Por qué aparece aquí. Se sitúa después de Rendimiento, consumo energético y límites físicos y antes de Proyecto: informe reproducible de comportamiento y recursos: convierte el conocimiento anterior en una decisión observable que la clase siguiente podrá reutilizar. La continuidad se comprueba en el artefacto, no por compartir vocabulario.

Error conceptual que debe corregir. Elegir una causa a partir de una sola métrica o presentar una captura como explicación.

Secuencia de aprendizaje. Antes de integrar, selecciona tres afirmaciones y predice qué instrumento podría sostenerlas. Ejecuta el laboratorio común, enlaza cada salida con una capa y separa en columnas lo observado, lo inferido y lo no medido. Una revisión cruzada debe detectar al menos una generalización que el dossier no autoriza.

Evidencia de aprendizaje. End-to-end-trace.md con mapa fuente→runtime→SO→máquina y vacíos explícitos. Debe contener predicción previa, observación, explicación causal, contraejemplo, criterio de aceptación y una nota de qué dato haría cambiar la conclusión.

Límite de la conclusión. La traza explica solo el caso y el entorno instrumentados.

Trazabilidad fuente → afirmación

Fuente primaria u oficialAfirmación que respaldaLo que no prueba
Python 3 documentationsustenta todas las interfaces del tallerNo demuestra por sí sola que el artefacto del estudiante sea correcto.
Unicode Standard 18.0sustenta la entrada textualNo demuestra por sí sola que el artefacto del estudiante sea correcto.
RISC-V specificationsdelimitan lo que una ISA sí describeNo demuestra por sí sola que el artefacto del estudiante sea correcto.

Antes de empezar

Las clases anteriores abrieron una capa por vez. El taller vuelve a cerrar el sistema: seguirás una ejecución del analizador local de eventos desde caracteres y bytes hasta AST, bytecode, proceso, tiempo y memoria. La disciplina central es separar evidencia directa de interpretación. El dossier será la entrada de SE-024.

Prerrequisitos

Artefactos de SE-013–SE-022, Python 3.11+, terminal y editor.

Problema auténtico

Un informe reúne capturas de dis, tiempos y memoria, pero no conecta una pregunta con ellas. Más herramientas no producen explicación: hace falta una ruta vertical, controles y límites.

Objetivos observables

Seguirás una unidad de información por seis capas; reproducirás una ejecución; enlazarás cada afirmación a evidencia; formularás hipótesis rivales; y entregarás limpieza y revisión.

Temas y por qué importan

EtapaEvidenciaPor qué importa
Entradatexto, puntos y bytesfija significado inicial
Traducciónfuente, AST y bytecodemuestra transformaciones del runtime
Ejecuciónproceso, CPU/pared y salidaconecta trabajo con entorno
Recursosasignación y archivosdescubre costos y persistencia

Mapa conceptual

Mapa visualRelaciones que debes poder explicar
TextoBytes
BytesObjetos del analizador local de eventos
Objetos del analizador local de eventosAST y bytecode
AST y bytecodeProceso
ProcesoTiempo y memoria
ProcesoSalida
SalidaRevisión reproducible
Ver la notación fuente del diagrama
flowchart LR
 T[Texto] --> B[Bytes]
 B --> P[Objetos del analizador local de eventos]
 P --> A[AST y bytecode]
 A --> X[Proceso]
 X --> R[Tiempo y memoria]
 X --> O[Salida]
 O --> V[Revisión reproducible]

Las flechas representan relaciones verificadas en el taller. No implican correspondencia uno a uno con instrucciones físicas.

Conceptos y decisiones

1. La unidad de seguimiento debe permanecer identificable

Se elige un evento sintético con sequence, texto y valor. Un hash permite comprobar que las variantes procesan el mismo contenido. Sin identidad e invariantes, no es posible saber si una “optimización” observó el mismo trabajo.

2. Cada instrumento tiene un alcance

unicodedata observa propiedades; ast, estructura; dis, bytecode; platform, etiquetas; time, relojes; tracemalloc, asignación rastreada por Python. El dossier incluye una columna “no demuestra” para evitar que la herramienta se convierta en autoridad universal.

3. Una ruta vertical conecta causa y consecuencia

La entrada codificada produce bytes; el parser crea objetos; la función se traduce; el proceso ejecuta y solicita I/O; el resultado conserva invariantes. Se identifican saltos que no pueden observarse, como instrucciones nativas exactas o energía.

4. Comparar exige cambiar una variable relevante

El taller compara materializar y streaming bajo la misma entrada. Cambiar código, tamaño y orden a la vez elimina atribución. Se fija semilla, se alterna orden y se conservan muestras. Una diferencia pequeña frente a variación se reporta como inconclusa.

5. Reproducibilidad incluye recuperación

El README declara preparación, comando, salidas, limpieza y versiones. Un script solo es reproducible si sus efectos son conocidos y acotados. La revisión cruzada ejecuta en un segundo entorno o, si no puede, inspecciona pasos y explica el límite.

Caso conductor: protocolo integrado del analizador local de eventos

La entrada canónica es JSON UTF-8 con texto multilingüe y valores límite. El analizador local de eventos valida, normaliza según contrato, calcula un resumen y escribe salida temporal. Se captura representación, AST/bytecode de la función, identificador del proceso, tiempos y pico Python. El dossier enlaza cada observación a archivo y comando.

Definiciones de trabajo

  • ruta vertical: seguimiento de una capacidad a través de capas;
  • invariante: propiedad que debe conservarse entre variantes;
  • instrumento: mecanismo que produce una observación con alcance;
  • procedencia: origen, versión y transformación de evidencia;
  • reproducción: repetición documentada del método.

Glosario

Probe es observación acotada. Fixture es entrada estable. Cold/warm distingue estados inicial y estabilizado según protocolo.

Ejemplo mínimo

El hash de salida coincide y el pico baja. Esto respalda equivalencia del contenido y diferencia en memoria Python; no demuestra menor energía ni igual comportamiento en producción.

Ejemplo profesional

Un reporte de regresión incluye commit, runtime, carga, muestras y perfil. El equipo puede repetir y decidir; una captura de “antes/después” no ofrece ese contrato.

Práctica guiada

Usa como base el laboratorio ejecutable de la Parte 01; trabaja sobre una copia o conserva tus salidas en el directorio work/SE-023/.

  1. Crea work/SE-023/ con input.json, event_analyzer.py y README.md.
  2. Valida puntos de código, bytes y hash esperado.
  3. Guarda AST y bytecode de la función principal.
  4. Ejecuta variantes materializada y streaming con protocolo de SE-022.
  5. Captura pared, CPU y pico Python; no mezcles instrumentos si alteran la medida.
  6. Completa evidence-map.md con observado/inferido/desconocido.
  7. Pide reproducción de tres hallazgos y corrige.
  8. Ejecuta cleanup.py --dry-run y después elimina solo el directorio temporal creado.

Ejercicios

  1. Añade una entrada Unicode normalizada de dos formas y preserva semántica.
  2. Localiza una afirmación que dis no puede sostener.
  3. Cambia sistema operativo o versión y explica diferencias sin llamarlas fallo.

Reto verificable

Una segunda persona reproduce entrada, hash y tendencia de memoria o entrega una explicación basada en entorno. Debe clasificar diez afirmaciones sin contexto oral.

Preguntas frecuentes

¿Necesito desensamblador nativo?

No. El alcance llega a bytecode y señales del proceso; cualquier herramienta adicional es opcional y documentada.

¿Si la tendencia cambia, fallé?

No. Una diferencia explicada puede revelar una variable o límite del método.

Fallo controlado y diagnóstico

Elimina versión o tamaño de entrada del primer reporte. Pide reproducir, registra la ambigüedad y corrige el contrato sin ocultar el intento fallido.

Errores comunes y cómo corregirlos

SíntomaCausaCorrección
colección de capturasfalta pregunta y rutaenlaza evidencia a transición
variante produce otro resultadoinvariante no comprobadoverifica hash antes de comparar recursos
bytecode prueba CPUfrontera instrumental ignoradadeclara VM y capa física desconocida
limpieza borra rutas ampliasalcance no validadousa directorio explícito y dry-run

Entorno y archivos clave

Python 3.11+, biblioteca estándar. event_analyzer.py, input.json, evidence-map.md, samples.csv, review.md, cleanup.py.

Seguridad, ética y accesibilidad

Solo datos ficticios; tamaño acotado; ninguna elevación. Salidas en texto y tablas. Revisa que la limpieza permanezca dentro de work/SE-023/.

Transferencia

Aplica el protocolo a una CLI propia de otro lenguaje y sustituye instrumentos manteniendo preguntas.

Evaluación y evidencia

Se exigen ruta completa, invariantes, evidencia trazable, revisión cruzada y recuperación segura.

Fuentes

Límites y siguiente paso

No observa energía, contadores físicos ni producción. SE-024 exige diseñar una investigación propia.


← SE-022 · ↑ Parte 01 · SE-024 →