Eu entendo a diferença entre sintaxe e semântica -
Sintaxe : como os símbolos são combinados para formar uma expressão ou declaração válida.
Semântica : o significado desses símbolos que formam uma expressão ou afirmação.
Mas qual é a gramática? Por exemplo: às vezes ouço as pessoas dizerem que alguma construção é "gramaticalmente incorreta, mas sintaticamente está correta". O que isso significa?
int;
é gramaticalmente válido, mas sintaticamente mal formado em C ++. A gramática não tem problemas com esse código, mas as restrições de sintaxe exigem que um nome seja fornecido se a primeira parte de uma declaração não contiver especificador de classe ou enum-especificador ou, no C ++ 11, especificador de amigo .