Predicado opaco
# Predicado opaco

En programación de computadoras, un predicado opaco es un predicado - una expresión que se evalúa a "verdadero" o "falso" - para el cual el valor es conocido por el programador a prior, pero que, por distintas razones, necesita ser evaluado en tiempo de ejecución.

## Usos

Los predicados opacos han sido usados como:

* Marcas de agua (ya que es identificable en el ejecutable del programa).
* Método para ofuscar el flujo de control para así dificultar la ingeniería inversa. Por ejemplo si tenemos un bloque de instrucciones A;B y el predicado opaco P que siempre va a ser TRUE. Podemos crear la secuencia de control equivalente "A;IF P THEN B ELSE C". De esta forma un análisis estático de código no puede saber que A y B se ejecutan siempre de forma consecutiva.
* Para evitar que un optimizador demasiado entusiasta optimice una parte de un programa.
