Linguaggi Naturali e Formali¶
Linguaggi Naturali sono i linguaggi parlati dalle persone. Non sono stati pianificati ma sono il risultato di un’evoluzione.
- Linguaggi Formali sono linguaggi progettati da persone per assolvere a compiti specifici.
- Per esempio, le notazioni matematiche per denotare relazione tra simboli e numeri.
- I chimici usano linguaggi formali per denotare le strutture delle molecole.
Noi siamo interessati a:
Linguaggi di programmazione, che sono linguaggi formali progettati per esprimere computazioni.
I linguaggi formali tendono ad avere regole rigide riguardo alla loro sintassi. Per esempio, 3+3=6
è sintatticamente un’affermazione corretta in matematica, ma 3=+6$
non lo è.
- Le regole sintattiche riguardano i token e la struttura.
I Token sono gli elementi di base di un linguaggio, come le parole, i numeri, le parentesi, le virgole e così via.
- Le regole della struttura riguardano invece le modalità in cui i token devono essere combinati.
- L’affermazione
3=+6$
è strutturalmente sbagliata perché non è possibile mettere un + immediatamente dopo un =.
- L’affermazione
Quando leggiamo una frase in un linguaggio formale, dobbiamo capire qual’è la struttura della frase (nel linguaggio formale questa cosa la facciamo incoscientemente e automaticamente). Questo processo è chiamato parsing.
Dopo il parsing, possiamo capirne il significato, o la semantica della frase.
Sebbene linguaggi formali e naturali hanno molte cose in comune — token, struttura, sintassi, e semantica — ci sono molte differenze:
- Ambiguità
- ogni frase ha esattamente un solo significato.
- Ridondanza
- I linguaggi naturali sono spesso prolissi. I linguaggi formali sono spesso meno ridondanti e più concisi.
- Alla lettera
- I linguaggi formali significano esattamente ciò che dicono.
- I dettagli sono importanti.
- Piccole cose come errori di battitura e di punteggiatura, che non creano problemi nel linguaggio naturale, possono fare molta differenza nel linguaggio formale.