CAPÍTULO 0.3 · PARTE 0

Estado, datos, instrucciones y cambio

Orientación para distinguir estado, datos, instrucciones, representaciones y cambios en un sistema que procesa un mensaje.

Nivel N0–N1 · Estado published

La pregunta

«El mensaje está enviado» mezcla estado, datos, instrucciones, cambio y representación. Este capítulo enseña a separarlos sin estudiar CPU, memoria virtual, tipos ni criptografía. Una computadora conserva y transforma información bajo reglas; una pantalla muestra una representación parcial de ese proceso.

Cómo leer una computadora sin imaginar una caja mágica

Una descripción técnica comienza por una pregunta concreta. «¿Dónde está el mensaje?» puede significar dónde existe una copia, dónde está disponible para una consulta o qué entidad conserva autoridad sobre ella. «¿Qué cambió?» puede referirse a un valor, una ubicación, una relación entre entidades o la representación que recibe una persona. Si no fijamos la pregunta, cada interlocutor puede responder sobre un estado distinto y ambos creer que se contradicen.

El modelo mínimo de este capítulo tiene seis piezas: estado, dato, instrucción, entrada, salida y representación. El estado es lo relevante en un punto; el dato es la forma que se registra o transporta; la instrucción establece una operación; la entrada la alimenta; la salida es su resultado observable o transferible; la representación es la forma en que ese resultado queda disponible para otra lectura. Las piezas se relacionan, pero no son sinónimos.

Por ejemplo, una aplicación puede conservar un texto como estado de borrador. Al pulsar enviar, una instrucción toma una entrada y produce una salida de red. El servicio puede producir otra salida, que la aplicación convierte en una etiqueta. Si sólo anotamos «enviado», perdemos la secuencia y tampoco sabemos qué parte fue confirmada. El modelo nos obliga a hacer visible esa pérdida.

Estado: selección, frontera y momento

Un estado no es todo lo que existe. Es una selección de información relevante para una pregunta, dentro de una frontera y en un momento. Una aplicación de mensajería puede tener estado de edición, de conexión y de sesión; el servicio puede tener estado de aceptación, almacenamiento y entrega. El usuario ve una proyección de alguno de ellos, no todos.

La frontera decide qué observamos directamente. Si incluimos teléfono y aplicación pero dejamos fuera el servicio, una respuesta remota se convierte en una dependencia externa. Si incluimos el servicio pero no el dispositivo receptor, «almacenado» no responde «leído». Una frontera no es una garantía de seguridad ni elimina dependencias; sólo hace explícito el alcance del modelo.

El tiempo también importa. Una salida a las 10:00 puede describir una operación que ocurrió antes, una copia recibida después o una vista actualizada sin nueva operación. No llamaremos instante exacto a una marca sin conocer su semántica. Para cada estado anota qué reloj, precisión y operación produce la marca.

Figura 0.3-01 · ¿Qué cambia entre dos estados y qué permanece no demostrado?

Desliza horizontalmente para leer el diagrama a tamaño completo.

Estado borrador recibe acción enviar; validar y encolar produce estado pendiente y una etiqueta local, mientras aceptación remota queda no determinada.

Datos: forma antes que significado

Un dato puede ser un carácter, byte, campo, archivo, mensaje o respuesta. Que una herramienta lo muestre en una tabla no convierte esa forma en significado. El significado requiere una regla de interpretación, un esquema, un productor y un contexto. Un campo llamado status puede usar 0 para pendiente en un sistema y para completado en otro.

La distinción permite explicar una transformación sin atribuirle más de lo que hace. Un parser puede separar campos; un conversor puede cambiar codificación; un filtro puede eliminar registros; un exportador puede redondear un número. El resultado puede ser útil y conservar parte de la información, pero no debe presentarse como copia completa si se han perdido campos, orden o precisión.

Instrucciones, datos y reglas

Una instrucción expresa una operación bajo una regla: copiar, comparar, ordenar, convertir, enviar o mostrar. Un dato es aquello sobre lo que trabaja la operación. La diferencia es de papel en el contexto, no de apariencia. Una cadena almacenada puede ser dato para una aplicación y, tras una decisión explícita, instrucción para otra. En este capítulo no analizamos cómo se ejecuta internamente; sólo registramos qué operación se afirma y cuál es su entrada y salida.

La regla completa importa. «Convertir a texto» no describe qué codificación, qué separador ni qué manejo de errores se usó. «Guardar» no dice si se escribió localmente, se envió a un servicio o se confirmó una copia. Una explicación revisable nombra la operación con un verbo y anota sus condiciones.

Figura 0.3-03 · ¿Cómo puede la misma secuencia adquirir significados distintos?

Desliza horizontalmente para leer el diagrama a tamaño completo.

Una misma secuencia alimenta tres intérpretes y produce texto, número o indicadores diferentes.

Entrada, operación y salida

La tríada entrada→operación→salida es un instrumento de lectura. Entrada puede ser texto escrito, un archivo recibido o una respuesta previa. Operación puede ser serializar, validar, transportar, aceptar, almacenar o representar. Salida puede ser bytes, un campo, un estado o una pantalla. Una misma salida puede resultar de varias entradas y operaciones; por eso no permite reconstruir automáticamente la causa.

En el caso de Ana, la entrada inicial es la pulsación y el texto. La aplicación puede producir una representación de transporte. El servicio puede aceptar o rechazar la solicitud. La respuesta vuelve y la aplicación la muestra. Cada flecha debe poder formularse como pregunta: ¿qué entidad la produjo?, ¿qué datos recibió?, ¿qué regla aplicó?, ¿qué salida quedó disponible?

Figura 0.3-02 · ¿Cómo pasa un mensaje de caracteres humanos a una respuesta representada?

Desliza horizontalmente para leer el diagrama a tamaño completo.

Caracteres se codifican, estructuran y transportan al servicio; una respuesta vuelve y el cliente produce una etiqueta.

Representación no es objeto

Una representación es una forma observable de una entidad, estado o resultado. Un icono, una fila de registro y un número en pantalla pueden ser representaciones útiles, pero no agotan aquello que representan. RFC 9110 separa recursos, mensajes, campos y respuestas (RFC 9110, §§3, 3.3, 5); RFC 3986 distingue la identificación de un recurso del recurso mismo (RFC 3986, §§1.1, 1.2.2). Usamos esas fuentes como vocabulario, no como afirmación de que toda aplicación siga exactamente un protocolo web.

Una representación también puede ser transformada. La pantalla puede resumir varios campos, ocultar errores, aplicar una traducción o mostrar una caché. Por eso «lo veo» es una observación sobre una interfaz. Para inferir un estado remoto necesitamos una relación documentada entre la interfaz y ese estado, más evidencia de que la relación se mantuvo en esta versión y contexto.

Bit, byte y unidades representadas

Un bit permite distinguir dos valores; un byte agrupa bits en una unidad convencional. La orientación es suficiente para preguntar cuántas unidades se almacenan o transmiten, no para explicar el significado de una secuencia. Un byte no es automáticamente una letra ni un número. La interpretación aparece cuando una regla de codificación o formato relaciona unidades con símbolos y campos.

Un número puede representarse con varios bytes y una convención de orden, signo, escala o precisión. Un texto relaciona caracteres con unidades mediante una codificación. Si el emisor usa una regla y el receptor otra, el resultado puede ser distinto o inválido. La salida legible demuestra que una interpretación fue posible en ese punto; no prueba que el contenido original, el esquema y todas las copias sean idénticos.

El mismo patrón puede desempeñar papeles distintos. 0011 puede ser cuatro caracteres, una cantidad, una máscara de opciones o parte de un campo. Para decidir, necesitamos posición, formato, versión y productor. No basta con contar bits o bytes. La forma física orienta la pregunta; la semántica requiere contexto.

Figura 0.3-04 · ¿Qué igualdad se está comparando?

Desliza horizontalmente para leer el diagrama a tamaño completo.

Cinco capas conectan apariencia, caracteres, campos, unidades y bytes; cada capa propone una comparación diferente.

Persistencia, copia y pérdida

Decir que un dato persiste significa que una entidad conserva una forma que puede recuperarse bajo ciertas condiciones. Una cola local puede persistir aunque el servicio no haya recibido nada. Una copia remota puede existir aunque una cuenta no tenga permiso para verla. Un exportador puede producir una copia que conserve valores pero pierda formato, relaciones o precisión.

La ausencia en una vista no prueba ausencia en todas las ubicaciones. Antes de concluir, identifica fuente, copia, consulta, permisos, retención y filtros. Si una transformación descarta campos, registra la pérdida. Si una operación falla después de escribir parcialmente, conserva la posibilidad de estado intermedio. Una explicación prudente puede terminar en «no determinado» sin dejar de ser útil.

Figura 0.3-05 · ¿Cómo divergen copias que tuvieron el mismo origen?

Desliza horizontalmente para leer el diagrama a tamaño completo.

Un origen se ramifica en copia local, cola, servicio y exportación; ediciones y pérdidas producen estados divergentes.

Cambios observables y no observables

Un cambio observable es uno que una fuente o persona puede registrar: una etiqueta, una respuesta, un archivo modificado o una consulta que devuelve una fila. Un cambio no observable directamente puede ser una operación interna, una entrega sin confirmación o una copia retenida fuera de la frontera. La diferencia no implica que el cambio no ocurrió; implica que aún no tenemos una observación suficiente.

Para cada cambio, registra estado anterior, entrada, instrucción, salida, entidad, frontera y condición de lectura. Luego formula al menos una hipótesis rival. Si la pantalla pasa a «enviado», las rivales pueden incluir aceptación remota, cola local o cambio sólo visual. Si el segundo teléfono no ve el mensaje, las rivales incluyen cuenta equivocada, sincronización pendiente, retención distinta o ausencia de copia. Una prueba discriminante cambia el resultado esperado entre hipótesis.

Transferencia a una aplicación de notas

Una aplicación de notas muestra «guardado». El patrón se transfiere: hay una entrada de texto, una instrucción de escritura, una salida local y quizá una operación de sincronización. No copiamos mecanismos del mensaje; reconstruimos qué representa guardado en esta aplicación. La observación segura puede ser «la aplicación mostró una confirmación local». La sincronización, la retención y la visibilidad en otro dispositivo requieren preguntas adicionales.

Figura 0.3-06 · ¿Qué hipótesis siguen siendo compatibles con la etiqueta guardado?

Desliza horizontalmente para leer el diagrama a tamaño completo.

La etiqueta guardado se bifurca en tres hipótesis; reabrir sin red y consultar una cuenta de prueba distinguen algunas, mientras otras quedan abiertas.

Ejercicios de observación

Cuando encuentres una pantalla, escribe primero la etiqueta exacta. Después enumera qué dato pudo producirla, qué instrucción se supone, qué estado queda dentro de la frontera y qué hipótesis rival permanece. No cambies la historia para que la etiqueta confirme tu expectativa. Si una prueba contradice el modelo, conserva el resultado y revisa la regla o la frontera.

Cierre

Una computadora no debe describirse como una caja que convierte mágicamente entrada en verdad. Conserva y transforma representaciones bajo reglas, con pérdidas, copias y estados que pueden quedar fuera de la observación. Estado, dato, instrucción, entrada, salida y representación forman un vocabulario mínimo para preguntar mejor. La conclusión correcta puede ser parcial: una salida está observada, una transformación está documentada y un cambio remoto todavía no está determinado.

Taller: reconstruir una etiqueta

Supón que la pantalla muestra «guardando» durante varios segundos. No empieces por asignar una causa. Escribe primero la observación exacta, el dispositivo y la aplicación. Después pregunta qué entrada estaba disponible: texto nuevo, una modificación o una orden de sincronizar. Enumera operaciones plausibles: escribir una copia local, empaquetar datos, enviar una petición, esperar una confirmación o volver a dibujar la pantalla. Cada operación tiene una salida distinta y una condición de fallo distinta.

La primera hipótesis puede ser «la aplicación escribió el dato localmente». Su predicción es que, tras cerrar y abrir la aplicación sin red, el borrador aparecerá en el mismo dispositivo. La segunda puede ser «el servicio confirmó una copia». Su predicción requiere una consulta independiente que use la misma cuenta y permita distinguir una respuesta vieja. La tercera puede ser «la etiqueta refleja una cola pendiente». Su predicción es que el estado cambiará cuando se restablezca la conexión, pero no necesariamente que otro dispositivo vea la nota. El objetivo no es elegir rápido; es buscar una observación que separe las alternativas.

Cuando una transformación pierde información

Imagina un exportador que recibe un registro con hora, texto, identificador y estado. Produce un CSV con texto y estado, pero elimina precisión temporal e identificador. El archivo puede abrirse correctamente y aun así no permitir reconstruir orden o pertenencia. La operación «exportar» produjo una salida válida dentro de un alcance reducido. Una afirmación honesta diría qué campos se conservaron y cuáles quedaron fuera.

Una conversión de texto puede tener el mismo problema. Si un carácter no existe en la codificación de salida, el conversor puede sustituirlo, descartarlo o devolver error. La apariencia de una cadena no demuestra que todos los símbolos originales sobrevivieron. Registra codificación de entrada, codificación de salida, política de error y versión de la herramienta cuando esa diferencia afecte la pregunta.

Copias que divergen

Dos copias pueden empezar con los mismos datos y divergir por operaciones posteriores. Una puede incluir una edición local; otra, una respuesta cacheada; otra, una exportación filtrada. «La copia» es una simplificación peligrosa si no se identifica entidad, fecha y transformación. En el caso de Ana, el teléfono, la cola, el servicio y el teléfono de Bruno son posibles ubicaciones con reglas diferentes. La interfaz puede ocultar cuál consultó.

Para comparar copias, conserva la pregunta y no sólo el resultado. ¿Buscas igualdad de bytes, igualdad de campos, igualdad de significado o igualdad de estado? Una comparación textual puede detectar diferencias de representación, pero no explicar si una copia es más reciente. Una coincidencia puede deberse a una copia antigua o a que ninguna operación cambió el valor. La comparación necesita contexto.

Preguntas para una revisión entre pares

Otra persona debería poder contestar: ¿cuál era el estado inicial?, ¿qué entrada lo puso en movimiento?, ¿qué instrucción se atribuye?, ¿qué entidad la ejecutó?, ¿qué salida se observó?, ¿qué representación se mostró?, ¿qué parte permanece fuera de la frontera? Si una respuesta usa «el sistema» sin nombrar la entidad, pide precisión. Si usa «guardado» sin condición, pide la regla. Si usa «dato» como si fuera significado, pide el esquema.

Una revisión también debe buscar alternativas. Si sólo se propone una historia que encaja con la pantalla, el modelo no es discriminante. Añade una alternativa que produzca la misma salida por otra ruta y diseña una prueba segura. No se necesita acceso a cuentas ajenas ni experimentación sobre servicios no autorizados: una cuenta de prueba, documentación del proveedor o una observación local pueden ser suficientes para distinguir una parte del modelo.

Qué queda fuera

Este capítulo no explica cómo se planifican instrucciones, cómo se asignan direcciones, cómo se gestionan páginas de memoria, cómo un lenguaje define sus tipos ni cómo se protegen secretos. Esas materias requieren otros modelos y aparecerán sólo cuando una pregunta posterior las necesite. Aquí basta con decir que una operación ocurrió, con qué entrada y salida, sin inventar su mecanismo interno.

Lista de comprobación

Antes de comunicar un cambio, verifica cinco cosas. Primero, el estado y la frontera están nombrados. Segundo, los datos están separados de su significado y esquema. Tercero, la instrucción está descrita como operación, no como intención. Cuarto, entrada y salida tienen productor y condición de observación. Quinto, se declara qué persistencia, copia o transición no está demostrada. Esta lista no convierte una observación en certeza; hace que la incertidumbre sea visible y revisable.

Cuatro igualdades que no deben confundirse

La palabra «igual» necesita un criterio. Dos pantallas pueden verse iguales aunque las cadenas internas usen secuencias diferentes. Dos cadenas pueden contener los mismos caracteres aunque estén organizadas en campos distintos. Dos estructuras pueden tener campos equivalentes y, sin embargo, serializarse con bytes diferentes. También puede ocurrir lo contrario: los mismos bytes producen otra interpretación cuando cambia el formato esperado. El capítulo no requiere memorizar todas las codificaciones; exige preguntar qué igualdad está en juego.

Supón que dos aplicaciones muestran el nombre “José”. La primera pregunta es visual: ¿una persona percibe el mismo texto? Otra pregunta compara caracteres: ¿la secuencia lógica es la misma? Una tercera compara unidades codificadas y una cuarta, bytes exactos. Si el objetivo es verificar una copia binaria, la apariencia no basta. Si el objetivo es presentar un nombre legible, una diferencia de bytes quizá sea compatible con el requisito. La conclusión depende del propósito y debe nombrar el nivel comparado.

Esta separación evita dos errores habituales. El primero consiste en afirmar corrupción porque una comparación binaria difiere, aunque ambas representaciones sean válidas para el propósito. El segundo consiste en afirmar identidad porque la pantalla coincide, aunque se hayan perdido metadatos o precisión. En ambos casos la observación es real; lo incorrecto es ampliar su significado sin declarar la regla.

Estado intermedio y operaciones parciales

Las etiquetas «éxito» y «fallo» suelen ocultar estados intermedios. Una aplicación puede haber escrito una copia local, añadido un elemento a una cola y fallado antes de obtener respuesta remota. La operación completa no terminó, pero tampoco es cierto que nada haya cambiado. Si se reintenta sin reconocer el estado intermedio, pueden aparecer duplicados, versiones divergentes o resultados difíciles de atribuir.

Para modelar este caso, evita una sola flecha desde “antes” hasta “después”. Introduce estados verificables: borrador, validado, persistido localmente, pendiente de transporte, aceptado remotamente y representado al usuario. No significa que toda aplicación tenga exactamente esos estados; son candidatos que deben confirmarse con documentación o evidencia de la implementación. El valor del modelo está en mostrar dónde falta información.

La misma prudencia se aplica al tiempo. Un registro con una hora puede marcar inicio, finalización, recepción o escritura. Dos marcas producidas por relojes diferentes no establecen orden exacto sin información adicional. Antes de reconstruir una secuencia, anota qué entidad produjo cada marca y qué evento representa. Si no se conoce, el orden permanece parcial.

Caso integrado: una fotografía que cambia de lugar y de forma

Una fotografía permite reunir las distinciones del capítulo sin depender del caso de mensajería. La cámara recibe luz como entrada física y produce datos bajo operaciones que este capítulo no necesita detallar. Una aplicación puede guardar un archivo, generar una miniatura, extraer metadatos y mostrar una imagen. Aunque la miniatura y el archivo principal parezcan iguales a simple vista, no son necesariamente la misma secuencia ni conservan la misma resolución, campos o precisión.

Supón que una persona recorta la imagen y pulsa guardar. El estado anterior incluye un archivo original y una edición aún no confirmada. La entrada es la selección de recorte. La operación produce nuevos datos según una regla: puede sobrescribir, crear una versión o conservar instrucciones de edición por separado. La salida visible es una imagen recortada. Sólo la documentación o una observación adicional permiten saber si el original desapareció, si persiste como copia o si la interfaz está mostrando una vista generada.

Después, la aplicación ofrece sincronización. Ahora existen al menos dos transiciones: persistencia local y transferencia a un servicio. La etiqueta «sincronizado» podría derivarse de una respuesta remota, de una cola vacía o de una comparación local. El modelo no elige una semántica por intuición. Formula hipótesis y pregunta qué evidencia produciría cada una: una consulta fresca desde una cuenta de prueba, un identificador de versión o una respuesta documentada pueden distinguir parte del recorrido.

Si el segundo dispositivo muestra la fotografía, tampoco se ha demostrado igualdad completa. Puede recibir una miniatura, una versión comprimida o una copia sin ciertos metadatos. La pregunta decide la comparación: para reconocer la escena quizá baste semejanza visual; para verificar conservación forense se necesitarían bytes, procedencia y transformaciones. El término «la misma foto» es útil en conversación, pero demasiado amplio para una conclusión técnica.

Este ejemplo revela una regla general: los objetos digitales no viajan como identidades indivisibles. Entidades concretas producen representaciones, aplican operaciones y conservan estados. Cuando el lector puede reconstruir esa cadena, las palabras copiar, guardar, exportar y sincronizar dejan de funcionar como sinónimos.

Cómo escribir una explicación que otra persona pueda comprobar

Una explicación breve puede seguir siete campos: pregunta, frontera, estado inicial, entrada, operación, salida observada y límite. Por ejemplo: «Quise saber si la edición persistía en el teléfono. Consideré aplicación y almacenamiento local. Partí de una imagen sin recortar, apliqué el recorte y reabrí el elemento después de cerrar la aplicación. La vista mostró el recorte; no comprobé si se sobrescribió el archivo original ni si existía copia remota».

Este formato evita dos excesos. No reduce la explicación a una lista de términos, porque conserva relaciones y una transición. Tampoco exige conocer mecanismos internos que todavía no se han estudiado. Otra persona puede señalar qué observación falta, repetir la pregunta bajo condiciones comparables o proponer una hipótesis rival. Esa posibilidad de revisión es el criterio práctico de claridad.

Lo que ya puedes explicar

Ya puedes describir un cambio sin decir simplemente «la computadora procesó datos». Puedes nombrar estado anterior, entrada, operación, regla, salida y estado posterior. Puedes explicar por qué un byte no es necesariamente un carácter, por qué una etiqueta no es el estado remoto y por qué dos copias pueden divergir. También puedes distinguir una salida observada de la historia causal que intentas atribuirle.

Puedes formular una conclusión acotada: «en esta versión y durante esta prueba, la aplicación produjo la etiqueta después de la acción; la persistencia remota no fue observada». Esa frase comunica menos que «se guardó», pero dice con precisión qué evidencia existe y qué pregunta continúa abierta.

Lo que todavía no estamos afirmando

Todavía no explicamos cómo una CPU obtiene y ejecuta instrucciones, cómo el sistema operativo asigna memoria, cómo un lenguaje representa tipos, cómo se sincronizan procesos concurrentes ni cómo se protege la confidencialidad de los datos. Tampoco afirmamos que las operaciones propuestas correspondan a una aplicación particular. Esos mecanismos pertenecen a capítulos posteriores y requieren fuentes específicas.

El objetivo aquí es anterior: impedir que palabras familiares como dato, estado, guardar o enviar funcionen como cajas negras. Cuando cada una queda asociada a una entidad, una regla, una frontera y una observación, el lector puede avanzar hacia mecanismos más profundos sin construirlos sobre equivalencias falsas.