Parte 3 — Valores, tipos y variables

⏮️ Parte 2 · ⬅️ Programa · 📚 Índice · ⏭️ Parte 4

16 clases · rango 041–056 · clases de código · nivel intermedio · ~40 h (cronograma)

🧭 La materia prima de todo programa: cómo cada lenguaje nombra, tipa, convierte y muta un valor.


🧭 De qué trata esta parte

Aquí empiezan las clases de código: cada una trae el mismo problema resuelto en los diez lenguajes del núcleo, con el código a la vista y verificado contra un casos.json común. La Parte 3 elige el terreno más elemental posible —valores, tipos y variables— justamente porque es donde las diferencias entre lenguajes son más profundas de lo que parecen.

El recorrido es deliberado: primero qué es un valor y qué es un nombre, luego los tipos primitivos uno por uno (con sus trampas reales: desbordamiento, punto flotante, Unicode), después los dos ejes con los que se clasifica cualquier sistema de tipos —estático/dinámico y fuerte/débil— y por último las tres decisiones que más consecuencias tienen: la ausencia de valor, la mutabilidad y la evaluación de expresiones.

Al terminar dispondrás del vocabulario que las ocho partes siguientes dan por sabido, y de algo más incómodo y más útil: la conciencia de que 0.1 + 0.2, "5" + 3 y una cadena vacía dentro de un if no significan lo mismo en todos los lenguajes.

🎒 Qué necesitas traer

Las Partes 0–2. En particular el pseudocódigo (007), el casos.json y el verificador (012), y tener al menos un toolchain instalado para ejecutar las implementaciones.

🎯 Qué sabrás hacer al terminar

Resultados comprobables: si no puedes hacerlos, la parte no está cerrada.

  1. Distinguir literal, valor, variable y constante, y declarar cada uno en los diez lenguajes.
  2. Explicar el rango, el signo y el desbordamiento de un entero, y por qué el punto flotante no es exacto.
  3. Situar cualquier lenguaje en los ejes estático/dinámico y fuerte/débil, con un ejemplo que lo demuestre.
  4. Elegir entre null, Option y un valor centinela sabiendo qué garantiza cada uno.
  5. Predecir el resultado de una conversión implícita antes de ejecutarla.
  6. Leer y escribir por entrada y salida estándar en los diez lenguajes del núcleo.

🗺️ El recorrido, clase a clase

Las clases están agrupadas en bloques por la razón que las une. El orden es secuencial: cada una asume la anterior.

🔹 Nombres y valores · clases 041–042

Qué es un valor sin nombre y qué añade la variable: declarar, inicializar y asignar como tres actos distintos.

🔹 Los tipos primitivos, uno por uno · clases 043–048

Enteros, reales, booleanos, caracteres y cadenas, cada uno con la trampa que esconde.

🔹 Los dos ejes del sistema de tipos · clases 049–052

Conversión, cuándo se comprueba, cuánto se tolera y cuánto deduce el compilador.

🔹 Ausencia, mutación y expresión · clases 053–056

Las tres decisiones con más consecuencias, y el cierre con entrada/salida estándar.

⚠️ Los malentendidos que esta parte corrige

Se suele creer Lo que ocurre en realidad
«Tipado fuerte y tipado estático son sinónimos.» Son ejes independientes: Python es dinámico y fuerte; C es estático y relativamente débil.
«Los decimales fallan por un bug del lenguaje.» Es IEEE 754, y ocurre igual en los diez. Lo que cambia es qué ofrece cada lenguaje para el dinero.
«Una cadena es un tipo simple.» Es una estructura de datos con codificación, coste por operación y una decisión de mutabilidad detrás.

🧪 Cómo estudiar esta parte

  1. Lee el modelo y el pseudocódigo primero. Si entiendes el algoritmo neutral, las diez implementaciones son diez traducciones, no diez problemas.
  2. Lee las diez implementaciones, no solo la de tu lenguaje. El aprendizaje está en el contraste: ahí se distingue lo esencial del accidente sintáctico.
  3. Ejecuta el verificador (python scripts/verificar_equivalencia.py NNN) y comprueba tú mismo que coinciden. Fuerza después un caso límite y observa quién se rompe primero.
  4. Lee primos.md para ver el mismo programa en la familia de cada lenguaje: es donde el concepto deja de estar atado a diez nombres concretos.
  5. Haz el reto de transferencia. Portarlo a un lenguaje que no dominas es la única prueba real de que aprendiste el concepto y no la sintaxis.

📚 Fuentes de referencia de esta parte

Cada clase cita estos libros en su sección de referencias. No se reproduce su contenido: la redacción es original.

🔗 Qué abre esta parte

Con valores que nombrar y tipar, la Parte 4 les añade lo único que falta para tener un programa: decidir y repetir.


⏮️ Parte 2 · ⬅️ Programa · 📚 Índice · ⏭️ Parte 4