En la programación de computadoras , un predicado opaco es un predicado, una expresión que se evalúa como "verdadero" o "falso", para el cual el programador conoce el resultado a priori , pero que, por una variedad de razones, aún debe ser evaluado en tiempo de ejecución . Los predicados opacos se han utilizado como marcas de agua , ya que serán identificables en el ejecutable de un programa. También se pueden utilizar para evitar que un optimizador demasiado entusiasta optimice una parte de un programa. Otro uso es ofuscar el control o el flujo de datos de un programa para hacer ingeniería inversa. más difícil.