En informática, el término «lenguaje» es específico y técnico.
Empezamos con algún conjunto finito y consideramos el conjunto de todas las listas posibles de sus elementos (incluyendo la lista vacía). El término técnico para el primer conjunto es el «alfabeto» y el segundo conjunto es el conjunto de «cadenas» sobre ese alfabeto.
Aunque lo llamamos «alfabeto», no tiene por qué ser letras. Puede ser literalmente cualquier conjunto finito.
Un «lenguaje» sobre un alfabeto es cualquier subconjunto del conjunto de cadenas sobre ese alfabeto. Una clase importante de problemas teóricos implican programas que deciden si una cadena dada es miembro de un lenguaje dado.
Dado que un lenguaje no es más que un subconjunto de un conjunto particular, ahora debería ser obvio que el complemento del lenguaje no es más que su complemento como conjunto-el conjunto de cadenas que no están en el lenguaje.
El complemento de un lenguaje es también un lenguaje, y determinar la pertenencia al complemento es esencialmente el mismo problema que determinar la pertenencia al lenguaje original.