Un linguaggio è uno strumento per esprimere modelli. Ogni linguaggio è definito su un alfabeto, che è un insieme finito di simboli.
Lingue naturali: Italiano, Francese, Inglese, Giapponese
Linguaggi sintetici: C, Java, XML, JSON
Linguaggi grafici: cartelli stradali, simboli di lavaggio negli indumenti
Linguaggi acustici: musica, fischi degli arbitri sportivi
Alfabeto latino:
Binario:
Un linguaggio può essere usato per definire l'insieme di soluzioni di un problema, e per esprimere un problema stesso.
Definiamo una stringa come una sequenza ordinata e finita di elementi di un alfabeto
Siccome l'operatore di concatenazione
Un linguaggio
L'italiano è un linguaggio su
I file PDF sono un linguaggio su
I numeri in base
Il DNA è un linguaggio codificabile su
Notiamo che se
Siccome i linguaggi sono insiemi valgono le operazioni insiemistiche come
Dati un linguaggio
Nella pratica, l'intersezione tra linguaggi indica la compatibilità tra di loro, mentre la concatenazione di linguaggi consente di descrivere più agevolmente formati complessi.
In questo esempio
Sia un alfabeto
Una traduzione è una mappa
Una famiglia di linguaggi è un insieme