IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Erreur syntaxique et sémantique !?!?


Sujet :

Langages de programmation

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut Erreur syntaxique et sémantique !?!?
    Bonjour !


    Je me pose la question suivante car c'est un peu flou pour le moment: comment bien différencier une erreur syntaxique et une erreur sémantique ?

    Un exemple:
    serait-ce une erreur de syntaxe (je pense que oui) ou sémantique ?


    En gros, si quelqu'un peut me donner des précision et comment bien distinguer par moment les deux types d'erreurs ... merci d'avance

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Je vais supposer qu'on parle des erreurs détectées par le compilateur.

    La différence entre les deux n'est pas fondamentale et est liée à l'organisation du compilateur. Une erreur syntaxique est détectée par la phase d'analyse syntaxique et une erreur sémantique est détectée par la phase d'analyse sémantique. Il est des choses qui sont clairement du ressort de l'une ou de l'autre, et d'autre qu'on peut mettre dans l'une ou dans l'autre comme on veut.

    Pour ton exemple, il faudrait se fixer d'abord un langage. Parce que ça pourrait être un appel tout à fait valide à une procédure var en lui passant comme paramètre la valeur de la variable int. Dans ce cas, si int n'a pas le type attendu par var, c'est une erreur de sémantique.

  3. #3
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Comme type de langage je prend comme exemple C et Java
    Ici c'est une erreur bien volontaire d'une tentative de déclaration de variable

  4. #4
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    En C ce serait une erreur de syntaxe.

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    En C ce serait une erreur de syntaxe.
    Ok c'était ma première idée. Donc en somme une erreur de sémantique c'est en quelques sorte une erreur de typage c'est ca ?

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    On peut considérer comme erreur syntaxique une erreur qui peut être détectée en dehors de tout contexte (reste à définir la notion de contexte : autres instructions du même bloc ou de la même procédure, autres procédures, autre unités, autres objets, ...)

    En appliquant cette définition, il est clair que, "var int;" étant erroné (pour le langage utilisé) en dehors de toute autre instruction, il s'agit d'une erreur syntaxique.

  7. #7
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Franck.H
    Ok c'était ma première idée. Donc en somme une erreur de sémantique c'est en quelques sorte une erreur de typage c'est ca ?
    Une erreur de typage est une erreur sémantique. Mais il peut y en avoir d'autres. Déclarer un identificateur après une utilisation n'est pas particulièrement une erreur de typage, mais c'est une erreur sémantique dans les langages qui exigent une déclaration avant l'utilisation en question.

  8. #8
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    En C ce serait une erreur de syntaxe.
    J'aurais dit l'inverse.
    Une erreur de syntaxe, c'est un peu une erreur d'orthographe (le mot est inconnu, la ponctuation est placée n'importe comment, etc.);
    alors qu'une erreur sémantique, c'est un peu une erreur de grammaire (la phrase n'a pas de sens, le mot est mal employé, etc.).
    Non ?

  9. #9
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par zooro
    J'aurais dit l'inverse.
    Une erreur de syntaxe, c'est un peu une erreur d'orthographe (le mot est inconnu, la ponctuation est placée n'importe comment, etc.);
    alors qu'une erreur sémantique, c'est un peu une erreur de grammaire (la phrase n'a pas de sens, le mot est mal employé, etc.).
    Non ?
    Non. La syntaxe est une partie de la grammaire.
    La sémantique s'occupe du sens.

  10. #10
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Ok j'y vois déjà un peu plus clair, merci pour ces quelques précisions

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VLookup erreur syntaxique
    Par peofofo dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/07/2008, 14h48
  2. [Flex/Bison] Erreur syntaxique récurrente et inexpliquée
    Par BiM dans le forum Générateurs de compilateur
    Réponses: 3
    Dernier message: 11/02/2007, 16h37
  3. Réponses: 2
    Dernier message: 28/12/2006, 11h31
  4. [Tableaux] Erreur syntaxique sur constructeur, PHP5
    Par fredrik dans le forum Langage
    Réponses: 2
    Dernier message: 14/08/2006, 14h51
  5. Afficher le détail des erreurs syntaxiques
    Par Laurent Birckel dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 22/03/2005, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo