> J'ai une question concernant l'examen INF401 de 2023,
> plus précisément
sur l'exercice 3, questions (n) et (o).
> Doit-on remplir le tableau donné
en annexe sur la copie de l'examen,
> ou doit-on suivre la méthode
utilisée dans la correction de ces deux questions ?
pour l'exercice 3, les tableaux de simulation de l'exécution des
programmes attendus doivent premettre de suivre l'exécution des
programmes
ces tableaux de simulation constituent des outils qui dépassent le cours d'assembleur,
ils sont similaires aux traces de débuger (avec plus de largeur
d'observation et la possibilité de revenir en arrière)
mais, à part la largeur et la possibilité d'une lecture avant-arrière
plus facile, ils manquent de la dynamique des traces observées par
débuger (avec des points d'arrêts placés aux bons endroits)
là où
le debuger gagne en dynamique, il perd en détail (et inversement pour la
tableau vs le debuger)
[rem. on peut aussi considérer que
le premier tableau [asm] est une forme dynamique du second tableau [micro-action], avec une
observation au point d'arrêt "Nouvelle Instruction"]
[d'où l'intérêt des 2 tableaux ==>> cela peut être une piste pour
l'utilisation du débugger et la construction de vos prochains tableaux]
ces tableaux sont assez fastidieux à réaliser et même en cours, j'ai du mal à
les faire en entier ; il faut être patient/e et concentré/e
(un programme les ferait bien mieux que nous)
ils ne sont pas particulièrement difficiles à faire, sauf si l'on n'en a jamais fait et que l'on n'a pas bien compris la matière
mais ils sont très importants pour vérifier qu'un programme fait bien ce
qu'il doit faire ou pour comprendre ce qu'il fait effectivement
et ils peuvent, parfois, être faits symboliquement (ou de manière
abstraite) et permettre de répondre à des questions plus difficiles, par
ex. sur la complexité ou les propriétés des programmes
mais c'est une autre histoire
ils sont assez fastidieux à réaliser (et à relire), car il ne faut pas y
écrire ce que l'on imagine/veut que le programme fasse (c'est le risque
si l'on veut aller plus vite), mais ce qu'il fait effectivement
il faut donc pouvoir, à chaque ligne, avoir les éléments nécessaires à
l'exécution de la ligne suivante, et produire cette ligne suivante en
suivant précisément la sémantique de l'action/l'instruction concernée
(sans intention, patiemment, en effectuant les calculs décrits à partir
des données de la ligne précédente, à la manière d'une machine)
l'une des difficultés de ces tableaux est donc de bien choisir
(globalement) l'ensemble des éléments nécessaires à la production de la
ligne suivante : i.e. les colonnes ; dans l'énoncé, des éléments sont proposés, vous pouvez
en enlever, ou en ajouter (l'énoncé ne cherche pas à vous tromper, les
éléments mis sont ceux qui semblent importants en général), mais libre à
vous d'avoir des tableaux similaires, mais aussi efficaces
une autre difficulté, c'est d'être assez patient/e et attentif/ve, pour
ne pas faire d'erreur (cf. prec.) et bien écrire ce que le programme
fait vraiment
les "éléments de
corrections" données sur Moodle ne respectent pas ce critère : en effet, à partir d'une ligne (ma
<- pc), on ne peut pas vraiment faire la suite, il manque beaucoup
d'information
ils seraient donc insuffisants comme
"correction" de ces questions,
par contre, comme "éléments de corrections", ils
sont suffisants pour vérifier que des tableaux produits par vous sont corrects
derniers commentaires,
le jour de l'examen, prenez le temps de faire les tableaux comme demandé
dans l'énoncé
et le jour de la publication des "éléments de
corrections", vérifiez qu'ils sont cohérents avec ces "éléments"
en dehors des examens, n'hésitez pas utiliser ces tableaux dans d'autres matières pour tracer l'exécution de vos programmes
Bien à vous,
Denis B.
Denis B.