Next: Primi passi
Up: Introduzione
Previous: Cosa è un compilatore
  Indice
  Indice analitico
Il C++, come ogni linguaggio di programmazione, possiede una sintassi ed una semantica. La sintassi è l'insieme delle regole che governano ogni frase di un linguaggio; ad esempio nel linguaggio ``italiano'' la sintassi comprende l'ortografia e la grammatica, per cui non è corretta la frase ``csa dlc csa'' perché nessuna delle parole che costituiscono la frase appartiene al vocabolario della lingua italiana; oppure nel linguaggio matematico non è corretta la frase
perché i vari simboli adoperati non hanno alcun senso in tale ordine. È ovvio dunque che un discorso, qualunque linguaggio si stia adoperando, deve prima di ogni alra cosa essere corretto sintatticamente. La sintassi di un linguaggio, proprio perché facilmente schematizzabile in delle regole ben precise, è facilmente controllabile; per quanto riguarda linguaggi come l'italiano o la matematica le regole che li controllano sono universalmente note, sebbene non sia facile descriverle in maniera esaustiva. Invece per un linguaggio di programmazione, come il C++, è una condizione fondamentale di esistenza che ogni regola sia ben definita, in maniera tale che il compilatore possa sapere se un programma è formalmente corretto o no; nel caso un programma non sia corretto sintatticamente non ha alcun senso tentare di tradurlo in linguaggio macchina, ovvero di compilarlo.
La semantica di un linguaggio è invece ben più sottile della sintassi: essa concerne il significato delle frasi. Una frase, in generale, può infatti essere corretta formalmente ma del tutto priva di significato: ``casa bere io fui fosti tre'' o ``1 = 0'' sono frasi che, nei linguaggi italiano e matematico, sono corrette per la sintassi ma non per la semantica. Per quanto riguarda un linguaggio di programmazione la difficoltà nell'individuare errori semantici è la stessa che si ha per un linguaggio come l'italiano. Per tale motivo mentre il programmatore è del tutto coperto dal punto di vista della sintassi del suo programma, in quanto ogni compilatore possiede al suo interno un efficiente analizzatore sintattico, egli è solo nel comprendere la semantica di un programma e nell'individuare eventuali errori. La differenza tra l'analisi semantica e quella sintattica in C++ è la stessa esistente per un qualunque altro linguaggio: chiunque, ad esempio, è in grado di verificare se un testo in italiano sia corretto sintatticamente, mentre per verificarne la semantica è fondamentale essere competenti nella materia di cui si tratta all'interno del testo, ed avere una certa confidenza con lo stile di esso.
Next: Primi passi
Up: Introduzione
Previous: Cosa è un compilatore
  Indice
  Indice analitico
Claudio Cicconetti
2000-09-06