Bonjour et bienvenue.
Dans cette vidéo, je vais vous expliquer ce que sont les erreurs de compilation.
Jusqu'à présent.
C'est vrai.
Nous avons écrit du code et nous avons remarqué que dans la fenêtre de sortie de la compilation, nous émettons une commande
de compilation et nous savons quand nous avons des erreurs.
C'est vrai.
En général, il y a une belle description qui dit qu'il y a une erreur dans votre code, mais qu'est-ce que cela veut dire
exactement ?
Ainsi, lorsque vous écrivez du code pour un langage de programmation, les langages de programmation sont très, très stricts.
Ils ont des règles.
Et vous devez suivre ces règles pour qu'un programme soit exécutable.
Un compilateur vérifie la syntaxe du code.
S'il est correct et s'il n'y a pas d'erreurs sémantiques, il générera, à partir du code source, un code de type langage machine,
et vous pourrez exécuter un programme.
Vous devez donc suivre ces règles, qui sont très détaillées.
Il faut donc être très attentif aux détails.
Les erreurs de compilation peuvent donc se présenter sous deux formes.
Elles peuvent prendre la forme d'une erreur de syntaxe ou d'une erreur sémantique.
Une erreur de syntaxe se produit lorsque quelque chose ne va pas dans la structure du code,
vous ne suivez pas les règles du langage en termes de syntaxe, n'est-ce pas ?
Vous ne mettez pas les parenthèses au bon endroit.
Vous n'ajoutez pas un point-virgule à toutes vos déclarations.
Vous n'êtes pas en train de mal orthographier les mots-clés.
Il s'agit là d'exemples courants.
Le point-virgule est un élément très courant lorsque l'on débute.
Ainsi, si vous déclarez une variable et que vous l'affectez à cinq, mais que vous ne mettez pas le point-virgule à la fin,
il s'agit d'une erreur de syntaxe.
Quelque chose ne va pas dans cette structure.
C'est la même chose que si vous utilisiez une instruction printf et que vous disiez une instruction printf entre guillemets doubles,
mais que vous oubliiez la fin, le guillemet double.
Il s'agit d'une erreur de syntaxe.
Lorsque le compilateur analyse votre code source et trouve cette erreur, il
donne généralement une description de l'erreur qui peut vous orienter dans la bonne direction, ainsi
que le numéro de ligne.
Nous l'avons vu dans les vidéos précédentes.
L'autre type d'erreur que le compilateur peut détecter est une erreur sémantique.
Il ne détecte pas toujours les erreurs sémantiques s'il s'agit d'erreurs logiques, mais sémantique signifie généralement que quelque
chose ne va pas au niveau du sens.
L'objectif du programme.
Par exemple, si vous ajoutez deux variables A et B, mais que ces variables sont de types différents et que
cela n'a pas de sens, n'est-ce pas ?
Il n'est pas logique d'ajouter A et B.
Le compilateur peut parfois détecter ces erreurs sémantiques.
D'autres erreurs sémantiques ont trait à la logique et nous allons en discuter.
Et le compilateur ne les trouve pas toujours.
La structure était correcte et tout allait bien avec la structure, mais quelque chose n'allait pas du point de vue logique.
Il y a une erreur dans la logique du code.
Ainsi, lorsque vous pensez aux erreurs sémantiques, à ce que le compilateur peut attraper, il s'agit plutôt
d'attraper des types et des choses que vous n'êtes pas censé faire avec, avec les différentes règles du langage concernant
les types de variables, par exemple.
Jetons maintenant un coup d'œil à la lumière du code pour voir quelques exemples courants d'erreurs syntaxiques et sémantiques dans le
langage de programmation C.
Nous voici donc dans le code light avec une simple application de type Hello world.
Il s'agit d'un code généré pour vous à partir des paramètres de votre projet.
Si vous l'avez enregistré comme modèle.
Un code très simple, n'est-ce pas ?
Et lorsque vous compilez ce fichier, il vous indique si vous avez ou non des erreurs de syntaxe.
Vous pouvez cliquer à nouveau avec le bouton droit de la souris et dire "compiler".
Et pour l'instant, nous n'avons pas d'erreurs, n'est-ce pas ?
Mais d'un point de vue syntaxique, nous respectons toutes les règles.
Mais la syntaxe comprend, à nouveau, toute la structure du code.
Ainsi, si vous n'avez pas de point-virgule ou de symbole dièse avant un include et que vous essayez de
le compiler.
Vous allez voir qu'il y a une erreur et généralement l'erreur du compilateur a une certaine signification.
Maintenant, lorsque vous écrivez de plus en plus de code et que vous avez de plus en plus de pratique, ces compilateurs ne seront plus
aussi obtus.
Elles ne seront pas si peu descriptives que vous serez en quelque sorte familier avec, par exemple,
cette erreur qui dit que nous avons une erreur sur la ligne un, n'est-ce pas ?
C'est donc agréable.
Vous pouvez double-cliquer dessus.
Le message d'erreur s'affiche, mais il indique que les équivalents attendus connaissent le point-virgule.
Il ne vous dit pas vraiment ce qui ne va pas.
Vous savez, en pratiquant la programmation, vous vous rendrez compte que j'ai oublié le symbole de la livre.
Ainsi, certaines erreurs du compilateur ne sont pas aussi descriptives que vous le souhaiteriez si vous êtes novice en programmation.
Vous ajoutez donc ce symbole, vous recompilez et c'est bon.
Si vous avez mal orthographié le i o standard, il ne sera parfois pas en mesure de le trouver.
Vous le sauvegardez, vous le recompilez et vous voyez une erreur qui est un peu plus descriptive.
C'est vrai ?
Aucun fichier ou répertoire de ce type Stdio. h qui vous dit en quelque sorte, oh, peut-être que vous l'avez mal orthographié.
Les fautes d'orthographe sont donc des erreurs courantes.
Vous savez, ne pas mettre les choses dans la bonne perspective en termes de parenthèses mal assorties.
Vous savez, si vous oubliez une parenthèse, vous savez, encore une fois, vous recompilez.
Voyons à quoi ressemble cette erreur.
Encore une fois, ce n'est pas très descriptif.
Il dit, vous savez, qu'il y a en fait une parenthèse avant l'accolade curly finale parce qu'il ne sait pas qu'il pense
peut-être que cette parenthèse droite va se terminer quelque part ici.
Il ne peut pas toujours vous dire exactement ce qui se passe.
Les parenthèses et les accolades manquantes ne sont donc pas toujours aussi descriptives.
Mais s'il manque un point-virgule, c'est assez simple.
Cette erreur de compilation vous indique exactement ce qui se passe.
Le point-virgule attendu avant le retour vous indique en quelque sorte l'endroit où vous êtes censé placer ce point-virgule.
Vous pouvez donc double-cliquer là-dessus, mettre un point-virgule s'il manque un guillemet double et recompiler.
C'est vrai ?
Vous voyez maintenant quelque chose qui dit qu'il manque un double guillemet de fin.
Encore une fois, il vous indique en quelque sorte l'endroit où se produit la première citation et vous donne plusieurs
erreurs, n'est-ce pas, même si vous n'en avez qu'une.
Vous avez donc mis ce double guillemet et vous êtes prêt à partir.
Maintenant, ce main dit qu'il faut retourner un int.
Que se passerait-il si vous essayiez de renvoyer quelque chose comme des guillemets à l'intérieur de guillemets doubles ?
Encore une fois, vous ne suivez pas la structure du langage qui vous dit que vous retournez un pointeur de caractère
à partir d'un type de fonction.
Encore une fois, ces erreurs de compilation n'ont peut-être pas de sens pour vous maintenant, mais au fur et à mesure
que vous écrirez du code, elles en auront de plus en plus.
Mais il s'agit de suivre cette structure.
Maintenant, si vous essayez de faire des choses qui ont un sens syntaxique, mais que le sens n'est pas correct.
Par exemple, si nous imprimons F et que nous essayons d'effectuer une opération arithmétique telle que la
division par huit ou la division par sept.
Nous l'enregistrons et nous le compilons, et nous constatons qu'il s'agit plutôt d'une erreur sémantique, car il y a un symbole de division après
les guillemets.
Vous savez où il était attendu Point-virgule C Nous trouvons principalement des erreurs de syntaxe, des erreurs sémantiques.
La signification du code est généralement liée à la logique.
Les erreurs sémantiques se produisent davantage dans un langage comme le C plus plus lorsque vous utilisez.
Objets.
Il faut donc être attentif aux erreurs de syntaxe du compilateur.
Fautes d'orthographe et d'usage.
Mots clés ne pas terminer les parenthèses lorsque vous les commencez blocs de code lorsque vous n'avez pas le
bloc de fin et de début Et vous pouvez avoir de multiples erreurs, n'est-ce pas ?
Disons donc que nous avons Hello world.
Il manque un point-virgule.
Nous renvoyons une chaîne de caractères.
Vous savez, il nous manque un support et nous le construisons.
Et il s'agit d'un programme assez restreint.
Mais lorsque nous essayons de le compiler maintenant, nous voyons de nombreuses erreurs, n'est-ce pas ?
Deux erreurs.
Et c'est un peu délicat, comme si je devais commencer par là.
En général, vous corrigez la première erreur, car une erreur peut parfois en provoquer d'autres.
Il faut donc toujours chercher l'erreur de compilation la plus importante et la corriger en premier.
Vous voulez donc corriger celui de la ligne cinq, n'est-ce pas ?
Ensuite, vous voudrez peut-être corriger et recompiler, puis peut-être corriger celui de la ligne six après cela.
Et maintenant, il est question de Jason.
Vous pouvez donc dire qu'il faut renvoyer zéro, mais il faut toujours corriger cette première erreur avant de corriger les suivantes,
car l'une peut être à l'origine de l'autre.
D'ailleurs, nous aurons toujours des erreurs dans notre code.
Même les programmeurs les plus chevronnés peuvent commettre des erreurs de syntaxe.
Les erreurs sont donc fréquentes.
Ce qui est vraiment important, c'est de comprendre les messages du compilateur pour savoir
comment les corriger.
Et encore une fois, cela viendra avec la pratique.
Nous parlerons plus en détail des compilateurs, des compilateurs courants dans les prochaines vidéos, mais essayez simplement de vous assurer
que vous suivez la structure du langage au fur et à mesure que vous l'apprenez, les langages syntaxiques et ainsi de suite.
Les prochaines conférences porteront sur les différents types d'erreurs.
J'ai parlé d'erreurs de logique.
Nous pouvons également parler un peu des avertissements.
Nous parlerons également des erreurs de l'éditeur de liens et des erreurs d'exécution.
Nous vous remercions.