Commentaires sur le devoir "maison" de MTP 1) On pouvait reduire le nombre de portes d'un additionneur simple a 5 au lieu de 7 (voir cours de Licence). Noter la fonction[nelle] make-simul-adder qui permet d'utiliser le meme circuit et les memes interrupteurs pour des donnees differentes ; c'est une forme de "curryfication" a la Scheme. 2) Pas mal de [bonnes] solutions proposees ; le tout est de verifier que le defaut "nombre d'entrees = 2" ne vient pas polluer les portes a nombre d'entrees quelconques (dans le corrige, une clause "allocation :instance" controle tout ca). Un test a ete fait dans "adders.lisp", avec une porte or a 3 pattes. 3) La securite des circuits ? Bon nombre de solutions ont ete proposees (certaines tres partielles) . La solution donnee ici a pour avantage qu'elle teste le plus de connections possible a la construction et non a la simulation du circuit. Donc les messages d'erreurs sont plus facilement localises. En fait, ca passe par une macro de construction de circuits complexes qui assure que tout est correct a l'interieur du circuit. La seule verification qu'a besoin de faire "simulate" est que les entrees les plus externes du circuit a tester ont bien ete connectees ; en aucun cas, simulate ne va regarder a l'interieur d'un circuit (suppose correct). Les fonctions sont testees dans tous les fichiers ou make-complex-circuit a ete remplace par la macro new-certified-complex. De plus, un additionneur et une mise en // bogues ont ete ecrites, pour voir apparaitre les messages d'erreurs. 4) Une solution possible est de "typer" la methode update, de telle facon qu'elle retourne T si rien n'a change dans le sous-composant considere. On reprogramme donc "update", qui permet de controler la boucle de "simulate". Cette facilite est egalement testee dans "demo.lisp" et "adders.lisp"