Traducir lenguaje natural a lógica permite convertir reglas ambiguas en expresiones precisas que pueden analizarse, verificarse y programarse.
Muchas reglas comienzan escritas en lenguaje natural: requisitos, permisos, validaciones, restricciones o condiciones de negocio.
La lógica permite traducir esas frases a expresiones precisas, reduciendo ambigüedades antes de implementarlas en código.
Para traducir una frase a lógica:
| Lenguaje natural | Símbolo lógico | JavaScript |
|---|---|---|
| No p | ¬p | !p |
| p y q | p ∧ q | p && q |
| p o q | p ∨ q | p || q |
| Si p, entonces q | p → q | !p || q |
| p si y solo si q | p ↔ q | p === q |
Frase:
Definimos:
Expresión:
const puedeComprar = hayStock && pagoAprobado;
Frase:
Expresión:
const puedeAcceder = esAdmin || esEditor;
Frase:
Si p significa "la cuenta está bloqueada", entonces:
const puedeIngresar = !cuentaBloqueada;
Frase:
Definimos:
Expresión:
const reglaCumplida = !esMenorDeEdad || tieneAutorizacion;
Frase:
Forma lógica:
La implicación es importante: no afirma que todos los elementos sean usuarios activos, sino que los usuarios activos pueden ingresar.
Frase:
Forma lógica:
La conjunción indica que el mismo objeto es producto y está sin stock.
Frase:
Primero:
Forma equivalente:
Se lee: existe un pedido pagado que no tiene factura.
La palabra "o" puede ser inclusiva o exclusiva según el contexto.
| Frase | Interpretación probable | Operador |
|---|---|---|
| Puede acceder si es admin o editor | Puede tener ambos roles | OR inclusivo |
| Debe elegir entrega a domicilio o retiro en sucursal, pero no ambas | Exactamente una opción | XOR |
Una vez obtenida la expresión lógica, podemos llevarla a código.
const reglaCumplida = productos.every(producto =>
!producto.publicado || producto.precio !== null
);
Usamos la equivalencia p → q ≡ ¬p ∨ q.
Después de traducir, conviene probar casos representativos.
Esta verificación evita traducciones incorrectas.
Traducir lenguaje natural a expresiones lógicas permite convertir reglas informales en fórmulas precisas. Esta habilidad es clave para programar condiciones correctas y analizar problemas formalmente.
En el próximo tema estudiaremos la resolución de problemas mediante lógica formal.