Erreur lexicale ou bien syntaxique ?
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Erreur lexicale ou bien syntaxique ?



  1. #1
    invite13cd37f1

    Erreur lexicale ou bien syntaxique ?


    ------

    Bonjour ,
    Je veux juste savoir est ce que le fait d'écrire '3a' [où 'a' est une variable de type entier] est considéré comme erreur lexicale ou bien syntaxique.

    Merci d'avance.

    -----

  2. #2
    invite7a96054d

    Re : Erreur lexicale ou bien syntaxique ?

    Bonjour,

    on ne peut pas dire sans plus de précisions ... '3a' peut-être décodé comme le nombre 58 codé en héxa par exemple et dans ce cas ce n'est pas une erreur lexicale. Si ça se trouve tu parles d'un langage qui accepte <NOMBRE><IDENTIFICATEUR> comme un multiplication et ce ne sera pas non plus une erreur syntaxique, et si le langage accepte <NOMBRE><VARIABLE ENTIERE> comme une multiplication ce ne sera pas non plus une erreur sémantique.
    Maintenant si on se place dans un cadre plus classique (disons le langage C) avec une quelque chose du genre :
    Code:
    int a,b;
    b=3a;
    3a ne sera pas reconnu comme un lexème légal et provoquera une erreur lexicale.

  3. #3
    invite13cd37f1

    Re : Erreur lexicale ou bien syntaxique ?

    j'ai dû préciser
    en tout cas ma réponse et dans ta dernière paragraphe .Merciii

  4. #4
    invite13cd37f1

    Re : Erreur lexicale ou bien syntaxique ?

    Mr kwariz, je pense que l'erreur provoqué est syntaxique puisque l'analyseur lexicale va retourner des tokens : le 3 comme "nb" et le "a" comme id;
    Ensuite l'analyseur syntaxique va générer une erreur syntaxique car on ne peut pas écrire un nombre suivi d'un identificateur. n'est ce pas Mr ?

  5. A voir en vidéo sur Futura
  6. #5
    invite7a96054d

    Re : Erreur lexicale ou bien syntaxique ?

    Tout dépend de ton langage ... il faut en préciser le grammaire avant de pouvoir dire quoi que ce soit.

    En C il s'agit bien d'une erreur lexicale car aucun identifiant légal ne peut commencer par un chiffre. Une erreur syntaxique en c serait par exemple "if x==0", car, bien que composée de lexème reconnus, après if doit venir une expression parenthésée.

  7. #6
    invite13cd37f1

    Re : Erreur lexicale ou bien syntaxique ?

    Si on parle d'un id, on sait bien qu'il ne doit pas commencer par un chiffre, mais si on parle d'un chiffre (3) et s'il peut être suivi d'un id (a) ou nn, c'est la syntaxe non ? (On est tjrs dans le contexte du langage C )

  8. #7
    invite7a96054d

    Re : Erreur lexicale ou bien syntaxique ?

    Plaçons-nous lors de l'analyse lexicale d'un source C. L'analyseur lexical va nous fournir un flux de léxèmes (mots clés, identificateur, constante, chaine littérale, opérateur ou ponctuation) à partir d'un flux de caractères. On commence la reconnaissance d'un nouveau lexème et l'analyseur lexical reçoit un '3', cela élimine la reconnaissance d'un mot clé (aucun ne commence par '3'), d'un identificateur (il ne peuvent commencer par un chiffre), d'une chaîne littérale (qui commence par '"' ou 'L'suivi de '"'), d'un opérateur (aucun ne commence par '3') et d'une ponctuation (aucune ne commence par '3').
    Nous devons donc reconnaître une constante. Cela peut-être un flottant ou un entier (seuls ceux-là peuvent commencer par le caractère '3'), or ni un flottant ni un entier commençant par '3' ne peut être suivi par un 'a' (les constantes en hexadécimal sont préfixées par '0x' ou '0X'). À partir du moment où on reçoit un 'a' on sait que nous ne pourrons jamais créer un lexème valide : il s'agit d'une erreur lexicale.
    Juste pour rajouter un identifiant n'est qu'un léxème qui pourra par la suite au moment de l'analyse syntaxique être identifié comme un nom de variable, ou un nom de type ou une constante d'énumération, un nom de fonction .... du moins en général en C.

Discussions similaires

  1. Analyseur lexical : lexème et unité lexicale.
    Par invite13cd37f1 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 21/03/2013, 22h37
  2. L'erreur humaine est bien une erreur mathématique...
    Par invite563ba7d5 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 28/02/2011, 21h50
  3. Analyse syntaxique Examen
    Par invite5a538809 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 06/03/2010, 17h21
  4. un compilateur qui fait l'analyse lexicale et syntaxique
    Par invite6f195ab1 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 07/02/2008, 12h23