SINTAXE
Em ciência da computação, o termo sintaxe de uma linguagem de computador refere-se ao conjunto de regras que definem a combinação de símbolos considerados como um fragmento ou documento corretamente estruturado nessa linguagem. Isso se aplica tanto a linguagens de marcação, em que o documento representa dados, quanto a linguagens de programação, em que o documento representa o código-fonte. A sintaxe de uma linguagem define sua forma de superfície. As linguagens de computador baseadas em texto são baseadas nas sequências de caracteres. As linguagens de programação visual, por outro lado, são baseadas na conexão entre símbolos (que podem ser gráficos ou textuais) e no layout espacial. Diz-se que os documentos que são sintaticamente inválidos têm um erro de sintaxe.
A sintaxe – a forma – é contrastada com a semântica – o significado. No processamento de linguagens de computador, o processamento semântico normalmente vem após o processamento sintático. No entanto, em alguns casos, o processamento semântico é importante para uma análise sintática completa e, portanto, eles são feitos simultaneamente ou em conjunto. Em um compilador, a análise sintática compreende o frontend, enquanto a análise semântica compreende o backend (e o middle end nos casos em que a fase é diferenciada).
NÍVEIS DE SINTAXE
A sintaxe da linguagem de computador é normalmente distinguida em três níveis diferentes:
Distinguir dessa maneira produz modularidade, permitindo que cada nível seja descrito e processado separadamente, e muitas vezes de forma independente. Ele começa por um lexer transformando a sequência linear de caracteres em uma sequência linear de tokens: isso é chamado de análise léxica ou lexing .
Em segundo lugar, o analisador transforma a sequência linear de tokens no que é chamado de árvore sintática hierárquica. Isso é conhecido como análise .
Em terceiro lugar, a análise contextual resolve os tipos de cheques e nomes. O estágio de análise em si pode ser subdividido em duas partes: a árvore sintática concreta ou a árvore sintática que é determinada pela gramática, mas é muito detalhada para uso prático, e a árvore sintática abstrata (AST), que simplifica isso em uma forma que é utilizável.
SINTAXE VERSUS SEMÂNTICA
A sintaxe de uma linguagem descreve a forma de um programa válido, mas não fornece nenhuma informação sobre o significado do programa ou os resultados que vêm com a execução desse programa. O significado que é dado a uma combinação de símbolos é tratado pela semântica (seja codificada ou formal em uma implementação de referência). Nem todos os programas sintaticamente corretos são semanticamente corretos. Um grande número de programas sintaticamente corretos são, no entanto, mal formados, de acordo com as regras da linguagem; e pode (no que diz respeito à especificação do idioma, bem como à solidez da implementação) resultar em um erro de execução ou tradução. Em alguns casos, esses programas podem apresentar um comportamento indefinido. Mesmo às vezes quando um programa está bem definido em uma linguagem, ele ainda pode ter um significado não pretendido por seu escritor.
No exemplo de uma linguagem natural, pode ser impossível dar um significado a uma frase gramaticalmente correta. Por exemplo,