SYNTAXE
En informatique, le terme syntaxe d'un langage informatique fait référence à l'ensemble de règles qui définissent la combinaison de symboles considérés comme un fragment ou un document correctement structuré dans ce langage. Cela s'applique à la fois aux langages de balisage, où le document représente des données et aux langages de programmation, où le document représente le code source. La syntaxe d'un langage définit sa forme de surface. Les langages informatiques basés sur du texte sont basés sur les séquences de caractères. Les langages de programmation visuelle, quant à eux, sont basés sur la connexion entre les symboles (qui peuvent être graphiques ou textuels) et sur la disposition spatiale. Les documents dont la syntaxe est invalide sont réputés avoir une erreur de syntaxe.
La syntaxe - la forme - est opposée à la sémantique - le sens. Dans le traitement des langages informatiques, le traitement sémantique vient normalement après le traitement syntaxique. Cependant, dans certains cas, le traitement sémantique est important pour une analyse syntaxique complète, et ils sont donc effectués simultanément ou ensemble. Dans un compilateur, l'analyse syntaxique comprend le frontend, tandis que l'analyse sémantique comprend le backend (et le middle end dans les cas où la phase est distinguée).
NIVEAUX DE SYNTAXE
La syntaxe du langage informatique se distingue normalement en trois niveaux différents:
Distinguer de cette manière produit une modularité permettant à chaque niveau d'être décrit ainsi que traité séparément, et souvent indépendamment. Cela commence par un lexer qui transforme la séquence linéaire de caractères en une séquence linéaire de jetons: c'est ce qu'on appelle l'analyse lexicale ou lexing .
Deuxièmement, l'analyseur transforme la séquence linéaire de jetons en ce qu'on appelle un arbre de syntaxe hiérarchique. C'est ce qu'on appelle l' analyse .
Troisièmement, l'analyse contextuelle résout les vérifications et les types de noms. L'étape d'analyse elle-même peut être subdivisée en deux parties: l' arbre de syntaxe concret ou l' arbre d'analyse qui est déterminé par la grammaire, mais il est trop détaillé pour une utilisation pratique, et l' arbre de syntaxe abstraite (AST), qui le simplifie en une forme c'est utilisable.
SYNTAXE VERSUS SÉMANTIQUE
La syntaxe d'un langage décrit la forme d'un programme valide, mais elle ne fournit aucune information concernant la signification du programme ou les résultats qui accompagnent l'exécution de ce programme. La signification donnée à une combinaison de symboles est gérée par la sémantique (soit codée en dur, soit formelle dans une implémentation de référence). Tous les programmes dont la syntaxe est correcte ne sont pas sémantiquement corrects. Un grand nombre de programmes syntaxiquement corrects sont néanmoins mal formés, selon les règles du langage; et peut (en ce qui concerne la spécification du langage ainsi que la solidité de l'implémentation) entraîner une erreur lors de l'exécution ou de la traduction. Dans certains cas, ces programmes peuvent afficher un comportement indéfini. Même à des moments où un programme est bien défini dans une langue, il peut toujours avoir une signification non voulue par son auteur.
Dans l'exemple d'une langue naturelle, il peut être impossible de donner un sens à une phrase grammaticalement correcte. Par exemple,