In informatica, il termine "linguaggio" è specifico e tecnico.
Partiamo da un qualche insieme finito e consideriamo l'insieme di tutte le possibili liste dei suoi elementi (inclusa la lista vuota). Il termine tecnico per il primo insieme è l'"alfabeto" e il secondo insieme è l'insieme delle "stringhe" su quell'alfabeto.
Mentre noi lo chiamiamo "alfabeto", non deve essere necessariamente composto da lettere. Può essere letteralmente qualsiasi insieme finito.
Un "linguaggio" su un alfabeto è qualsiasi sottoinsieme dell'insieme delle stringhe su quell'alfabeto. Un'importante classe di problemi teorici coinvolge programmi che decidono se una data stringa è un membro di una data lingua.
Siccome una lingua non è altro che un sottoinsieme di un particolare insieme, dovrebbe ora essere ovvio che il complemento della lingua non è altro che il suo complemento come insieme - l'insieme delle stringhe che non sono nella lingua.
Il complemento di una lingua è anche una lingua, e determinare l'appartenenza al complemento è essenzialmente lo stesso problema di determinare l'appartenenza alla lingua originale.