Obiettivi formativi
L'interazione con i computer avviene in molti modi: quando il<br />
comportamento che si desidera ottenere è semplice o già codificato, si possono usare formalismi poveri ed intuitivi. Per comunicazioni più sofisticate non si può prescindere dall'impiego di formalismi dall'elevato potere espressivo. I linguaggi di programmazione offrono una vastissima gamma di notazioni per la specifica dei comportamenti che si richiedono ad un computer. Lo studio dei linguaggi di programmazione è affascinante ed importante. In primo luogo perché lo studio dei<br />
principi fondamentali (valori, legami, controllo, astrazione,<br />
incapsulazione, oggetti, moduli, nondeterminismo, tipi, ...) e della loro realizzazione nei vari linguaggi (C, C++, Fortran, Pascal, OCaml, Java, Python, ...) aiuta a capire ciò che veramente conta nella scelta di un linguaggio di programmazione, ben al di là della ``moda'' del momento. In secondo luogo, perché lo studio comparato dei linguaggi conduce ad affinare l'abilità e lo stile di programmazione quali che siano i linguaggi che, in un dato momento della propria vita professionale, si usano maggiormente. Infine, più spesso di quanto non si creda la soluzione di un problema informatico passa per la definizione di un linguaggio e dalla realizzazione di una "macchina" che lo interpreta.