Cosa significano “sintassi” e “semantica” e in cosa differiscono?

0
7861

Una lingua è un insieme di frasi valide. Cosa rende valida una frase? Puoi suddividere la validità in due cose: sintassi e semantica. Il termine sintassi si riferisce alla struttura grammaticale mentre il termine semantica si riferisce al significato dei simboli del vocabolario disposti con quella struttura. Tuttavia, grammaticale (sintatticamente valido) non implica sensato (semanticamente valido). Ad esempio, la frase grammaticale “cows flow supremaly” è grammaticalmente corretta (avverbio soggetto-verbo) in inglese, ma non ha senso. Allo stesso modo, in un linguaggio di programmazione, la grammatica (regole di sintassi) può consentire ID UGUALE A ID ma il linguaggio può consentire la frase solo se il testo corrispondente a ID non rappresenta un nome di tipo (una regola semantica).

Quando scrivi una grammatica ANTLR, stai specificando l'insieme di regole di sintassi a cui obbedisce la tua lingua. ANTLR lo usa per generare un riconoscimento per le frasi in quella lingua. Per applicare le regole semantiche, è necessario aggiungere azioni o predicati semantici alla grammatica. Le azioni testano il “valore” dei vari token e le loro relazioni per determinarne la validità semantica. Ad esempio, se cerchi il nome di un tipo in una tabella di simboli per assicurarti che sia un tipo e non una variabile, stai applicando una regola semantica.