L'informatique, c'est logique! Sylvain Conchon Universite Paris-Sud 11 INRIA Saclay { ^Ile-de-France Olympiades Academiques de Mathematiques 2010 16 juin 2010 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 1 / 30
Une enigme de logique Sur l'^le des purs, qui disent toujours la verite, et des pires, qui mentent toujours, vous rencontrez deux habitants, Remi et Jacques. Remi vous dit : "Au moins l'un de nous deux est un pire" Que sont Remi et Jacques? Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 2 / 30
Reponse a l'aide d'un petit raisonnement logique Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 3 / 30
Une autre maniere de raisonner Une autre maniere de trouver la solution consiste a enumerer toutes les reponses possibles, puis a verier celles qui sont correctes. Remi Jacques \au moins un de nous deux est un pire" Pur Pur phrase fausse Pur Pire phrase vraie Pire Pur phrase vraie Pire Pire phrase vraie Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 4 / 30
Une autre maniere de raisonner Une autre maniere de trouver la solution consiste a enumerer toutes les reponses possibles, puis a verier celles qui sont correctes. Remi Jacques \au moins un de nous deux est un pire" Pur Pur phrase fausse Pur Pire phrase vraie Pire Pur phrase vraie Pire Pire phrase vraie Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 4 / 30
Une autre maniere de raisonner Une autre maniere de trouver la solution consiste a enumerer toutes les reponses possibles, puis a verier celles qui sont correctes. Remi Jacques \au moins un de nous deux est un pire" Pur Pur phrase fausse Pur Pire phrase vraie Pire Pur phrase vraie Pire Pire phrase vraie Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 4 / 30
Une autre maniere de raisonner Une autre maniere de trouver la solution consiste a enumerer toutes les reponses possibles, puis a verier celles qui sont correctes. Remi Jacques \au moins un de nous deux est un pire" Pur Pur phrase fausse Pur Pire phrase vraie Pire Pur phrase vraie Pire Pire phrase vraie Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 4 / 30
Une autre maniere de raisonner Une autre maniere de trouver la solution consiste a enumerer toutes les reponses possibles, puis a verier celles qui sont correctes. Remi Jacques \au moins un de nous deux est un pire" Pur Pur phrase fausse Pur Pire phrase vraie Pire Pur phrase vraie Pire Pire phrase vraie Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 4 / 30
Une autre maniere de raisonner Une autre maniere de trouver la solution consiste a enumerer toutes les reponses possibles, puis a verier celles qui sont correctes. Remi Jacques \au moins un de nous deux est un pire" Pur Pur phrase fausse Pur Pire phrase vraie Pire Pur phrase vraie Pire Pire phrase vraie Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 4 / 30
Une autre maniere de raisonner Une autre maniere de trouver la solution consiste a enumerer toutes les reponses possibles, puis a verier celles qui sont correctes. Remi Jacques \au moins un de nous deux est un pire" Pur Pur phrase fausse Pur Pire phrase vraie Pire Pur phrase vraie Pire Pire phrase vraie Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 4 / 30
Une autre maniere de raisonner Une autre maniere de trouver la solution consiste a enumerer toutes les reponses possibles, puis a verier celles qui sont correctes. Remi Jacques \au moins un de nous deux est un pire" Pur Pur phrase fausse Pur Pire phrase vraie Pire Pur phrase vraie Pire Pire phrase vraie Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 4 / 30
Vers un raisonnement mathematique Le calcul des propositions permet de denir mathematiquement ce qu'est un raisonnement logique. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 5 / 30
Vers un raisonnement mathematique Le calcul des propositions permet de denir mathematiquement ce qu'est un raisonnement logique. Ce calcul est base sur des propositions, qui prennent les valeurs de verite vrai ou faux \le ciel est bleu" \il fait beau" \Remi est un pur" et des connecteurs qui relient les propositions \il fait beau" et \Remi est un pur" \Remi est un pur" ou \le ciel est bleu" non \le ciel est bleu" George Boole (1815-1864) Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 5 / 30
Tables de verite Les sens des connecteurs et, ou et non sont denis par des tables de verite. A vrai faux non A faux vrai non A est vraie, si A est faux. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 6 / 30
Tables de verite Les sens des connecteurs et, ou et non sont denis par des tables de verite. A vrai faux non A faux vrai non A est vraie, si A est faux. A et B est vraie, si les deux propositions sont vraies. A B A et B vrai vrai vrai vrai faux faux faux vrai faux faux faux faux Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 6 / 30
Tables de verite Les sens des connecteurs et, ou et non sont denis par des tables de verite. A vrai faux non A faux vrai non A est vraie, si A est faux. A et B est vraie, si les deux propositions sont vraies. A B A ou B vrai vrai vrai vrai faux vrai faux vrai vrai faux faux faux A B A et B vrai vrai vrai vrai faux faux faux vrai faux faux faux faux A ou B est vraie, si au moins une des deux propositions est vraie. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 6 / 30
Reformulation de l'enigme On peut reformuler l'enigme logique dans le calcul des propositions Soit la proposition A : \Remi est un pur" Soit la proposition B : \Jacques est un pur" Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 7 / 30
Reformulation de l'enigme On peut reformuler l'enigme logique dans le calcul des propositions Soit la proposition A : \Remi est un pur" Soit la proposition B : \Jacques est un pur" La proposition \Remi est un pire" est identique a non \Remi est un pur" Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 7 / 30
Reformulation de l'enigme On peut reformuler l'enigme logique dans le calcul des propositions Soit la proposition A : \Remi est un pur" Soit la proposition B : \Jacques est un pur" La proposition \Remi est un pire" est identique a non \Remi est un pur" A (Remi est un pur) non A Remi est un pire vrai faux faux faux vrai vrai Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 7 / 30
Reformulation de l'enigme \Au moins l'un de nous deux est pire" est identique a \Remi est un pire ou Jacques est un pire" On peut donc reformuler la phrase de Remi en (non A) ou (non B). A B (non A) ou (non B) vrai vrai faux vrai faux vrai faux vrai vrai faux faux vrai Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 8 / 30
Reformulation de l'enigme \Au moins l'un de nous deux est pire" est identique a \Remi est un pire ou Jacques est un pire" On peut donc reformuler la phrase de Remi en (non A) ou (non B). A B (non A) ou (non B) vrai vrai faux vrai faux vrai faux vrai vrai faux faux vrai Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 8 / 30
Reformulation de l'enigme \Au moins l'un de nous deux est pire" est identique a \Remi est un pire ou Jacques est un pire" On peut donc reformuler la phrase de Remi en (non A) ou (non B). A B (non A) ou (non B) vrai vrai faux vrai faux vrai faux vrai vrai faux faux vrai Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 8 / 30
Reformulation de l'enigme \Au moins l'un de nous deux est pire" est identique a \Remi est un pire ou Jacques est un pire" On peut donc reformuler la phrase de Remi en (non A) ou (non B). A B (non A) ou (non B) vrai vrai faux vrai faux vrai faux vrai vrai faux faux vrai Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 8 / 30
Reformulation de l'enigme \Au moins l'un de nous deux est pire" est identique a \Remi est un pire ou Jacques est un pire" On peut donc reformuler la phrase de Remi en (non A) ou (non B). A B (non A) ou (non B) vrai vrai faux vrai faux vrai faux vrai vrai faux faux vrai Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 8 / 30
Reformulation de l'enigme \Au moins l'un de nous deux est pire" est identique a \Remi est un pire ou Jacques est un pire" On peut donc reformuler la phrase de Remi en (non A) ou (non B). A B (non A) ou (non B) vrai vrai faux vrai faux vrai faux vrai vrai faux faux vrai Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 8 / 30
Reformulation de l'enigme \Au moins l'un de nous deux est pire" est identique a \Remi est un pire ou Jacques est un pire" On peut donc reformuler la phrase de Remi en (non A) ou (non B). A B (non A) ou (non B) vrai vrai faux vrai faux vrai faux vrai vrai faux faux vrai Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 8 / 30
Reformulation de l'enigme \Au moins l'un de nous deux est pire" est identique a \Remi est un pire ou Jacques est un pire" On peut donc reformuler la phrase de Remi en (non A) ou (non B). A B (non A) ou (non B) vrai vrai faux vrai faux vrai faux vrai vrai faux faux vrai Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 8 / 30
Encore une enigme Toujours avec Remi et Jacques, Remi cette fois vous dit : \je suis un pire ou Jacques est un pur" Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 9 / 30
Encore une enigme Toujours avec Remi et Jacques, Remi cette fois vous dit : \je suis un pire ou Jacques est un pur" Remi dit en fait simplement (non A) ou B Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 9 / 30
Encore une enigme Toujours avec Remi et Jacques, Remi cette fois vous dit : \je suis un pire ou Jacques est un pur" Remi dit en fait simplement (non A) ou B A B (non A) ou B vrai vrai vrai vrai faux faux faux vrai vrai faux faux vrai Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 9 / 30
La folie des grandeurs Supposons que vous souhaitiez calculer la table de verite pour une enigme avec 300 variables. Savez-vous (approximativement) quelle quantite de memoire il vous faudrait pour stocker cette table dans un ordinateur? combien de temps serait necessaire pour calculer toutes les lignes de la table? Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 10 / 30
Preliminaire : la notation exponentielle Les grandeurs mises en jeux pour ce calcul sont tres grandes. Les grands nombres s'expriment habituellement a l'aide de la notation exponentielle. 10 n = 10 10 {z } n fois 100 = 10 10 = 10 2 10 000 = 10 10 10 10 = 10 4 1 000 000 = 10 6 (1million) 1 000 000 000 = 10 9 (1milliard) Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 11 / 30
Quelques ordres de grandeur 107 diam etre de la terre (en m etre) 1011 distance terre - soleil (en m etre) 1030 masse du soleil (en kg) 1041 superce de la voie lact ee (en m2 ) 1060 masse de l'univers (en kg) 1080 nombre d'atomes dans l'univers Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 12 / 30
Quantite de memoire necessaire pour stocker la table Une table de verite avec Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 13 / 30
Quantite de memoire necessaire pour stocker la table Une table de verite avec 1 variable a 2 combinaisons possibles (lignes) ; Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 13 / 30
Quantite de memoire necessaire pour stocker la table Une table de verite avec 1 variable a 2 combinaisons possibles (lignes) ; 2 variables a 2 2 = 4 combinaisons possibles ; Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 13 / 30
Quantite de memoire necessaire pour stocker la table Une table de verite avec 1 variable a 2 combinaisons possibles (lignes) ; 2 variables a 2 2 = 4 combinaisons possibles ; 3 variables a 2 2 2 = 8 combinaisons possibles ; Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 13 / 30
Quantite de memoire necessaire pour stocker la table Une table de verite avec 1 variable a 2 combinaisons possibles (lignes) ; 2 variables a 2 2 = 4 combinaisons possibles ; 3 variables a 2 2 2 = 8 combinaisons possibles ; 4 variables a 2 2 2 2 = 16 combinaisons possibles etc. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 13 / 30
Quantite de memoire necessaire pour stocker la table Une table de verite avec 1 variable a 2 combinaisons possibles (lignes) ; 2 variables a 2 2 = 4 combinaisons possibles ; 3 variables a 2 2 2 = 8 combinaisons possibles ; 4 variables a 2 2 2 2 = 16 combinaisons possibles etc. Le nombre de lignes d'une table de verite de 300 variables est donc de 2 2 10 90 {z } 300 fois Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 13 / 30
Quantite de memoire necessaire pour stocker la table Une table de verite avec 1 variable a 2 combinaisons possibles (lignes) ; 2 variables a 2 2 = 4 combinaisons possibles ; 3 variables a 2 2 2 = 8 combinaisons possibles ; 4 variables a 2 2 2 2 = 16 combinaisons possibles etc. Le nombre de lignes d'une table de verite de 300 variables est donc de 2 2 10 90 {z } 300 fois Il nous faudrait donc plus que le nombre d'atomes dans l'univers (10 80 )! Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 13 / 30
Un super ordinateur pour calculer les lignes de la table On peut tenter de calculer cette table de verite sur un (super)ordinateur. Celui du CNRS a une puissance de calcul de 207 Tera Flops (207 000 milliards d'operations par seconde) 207 10 12 operations/seconde!!! Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 14 / 30
et maintenant, calculons... En supposant que le super calculateur du CNRS calcule 207 000 milliards de lignes de la table de verite par seconde il faudrait environ Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 15 / 30
et maintenant, calculons... En supposant que le super calculateur du CNRS calcule 207 000 milliards de lignes de la table de verite par seconde il faudrait environ 10 90 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 15 / 30
et maintenant, calculons... En supposant que le super calculateur du CNRS calcule 207 000 milliards de lignes de la table de verite par seconde il faudrait environ 10 90 207 10 12 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 15 / 30
et maintenant, calculons... En supposant que le super calculateur du CNRS calcule 207 000 milliards de lignes de la table de verite par seconde il faudrait environ 10 90 207 10 12 (365 24 3600) Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 15 / 30
et maintenant, calculons... En supposant que le super calculateur du CNRS calcule 207 000 milliards de lignes de la table de verite par seconde il faudrait environ 10 90 207 10 12 (365 24 3600) = 10 68 annees Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 15 / 30
L'eternite pour un calcul En supposant que l'on ait 1 milliard d'ordinateurs comme celui du CNRS, chacun testant 207 000 milliards de lignes de la table de verite par seconde. Si le calcul de la table avait commence au moment de la naissance de l'univers (il y a 13; 7 milliards d'annees), on aurait fait a ce jour seulement... Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 16 / 30
L'eternite pour un calcul En supposant que l'on ait 1 milliard d'ordinateurs comme celui du CNRS, chacun testant 207 000 milliards de lignes de la table de verite par seconde. Si le calcul de la table avait commence au moment de la naissance de l'univers (il y a 13; 7 milliards d'annees), on aurait fait a ce jour seulement... 0,0000000000000000000000 00000000000001 % du calcul car cela represente seulement 10 32 de lignes testees! Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 16 / 30
Et pourtant... Aujourd'hui, on sait resoudre avec des ordinateurs des \enigmes" qui impliquent plusieurs centaines de milliers de variables! Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 17 / 30
Et pourtant... Aujourd'hui, on sait resoudre avec des ordinateurs des \enigmes" qui impliquent plusieurs centaines de milliers de variables! Les logiciels qui permettent de resoudre ces problemes ont de nombreuses applications dans : la conguration des cha^nes de production complexes des entreprises le contr^ole du trac aerien le routage des informations dans les reseaux informatique l'organisation de tournois sportifs la cryptographie la verication de circuits electroniques la preuve automatique de theoremes mathematiques etc... Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 17 / 30
La logique dans les microprocesseurs La calcul des propositions est au cur de l'architecture des microprocesseurs. Les valeurs de verite vrai et faux sont remplacees par les valeurs 1 et 0 (chires binaires binary digit ). Les connecteurs logiques sont les operations de base qui servent a construire les operateurs arithmetiques. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 18 / 30
Les transistors Les connecteurs logiques sont construits a partir d'interrupteurs electroniques appeles transistors. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 19 / 30
Les transistors Les connecteurs logiques sont construits a partir d'interrupteurs electroniques appeles transistors. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 19 / 30
Les transistors Les connecteurs logiques sont construits a partir d'interrupteurs electroniques appeles transistors. Aujourd'hui, les microprocesseurs sont constitues de plusieurs milliards de transistors! Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 19 / 30
Les transistors Les connecteurs logiques sont construits a partir d'interrupteurs electroniques appeles transistors. Aujourd'hui, les microprocesseurs sont constitues de plusieurs milliards de transistors! Pour realiser des connecteurs logiques, on utilise egalement des transistors inverses. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 19 / 30
Les transistors Les connecteurs logiques sont construits a partir d'interrupteurs electroniques appeles transistors. Aujourd'hui, les microprocesseurs sont constitues de plusieurs milliards de transistors! Pour realiser des connecteurs logiques, on utilise egalement des transistors inverses. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 19 / 30
Realisation du connecteur NON A non A 1 0 0 1 representation symbolique du connecteur non Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 20 / 30
Realisation du connecteur NON A non A 1 0 0 1 representation symbolique du connecteur non Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 20 / 30
Realisation du connecteur NON A non A 1 0 0 1 representation symbolique du connecteur non Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 20 / 30
Realisation du connecteur NON A non A 1 0 0 1 representation symbolique du connecteur non Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 20 / 30
Realisation du connecteur ET A B A et B 1 0 0 1 1 1 0 0 0 0 1 0 representation symbolique du connecteur et Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 21 / 30
Realisation du connecteur ET A B A et B 1 0 0 1 1 1 0 0 0 0 1 0 representation symbolique du connecteur et Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 21 / 30
Realisation du connecteur ET A B A et B 1 0 0 1 1 1 0 0 0 0 1 0 representation symbolique du connecteur et Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 21 / 30
Realisation du connecteur ET A B A et B 1 0 0 1 1 1 0 0 0 0 1 0 representation symbolique du connecteur et Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 21 / 30
Realisation du connecteur ET A B A et B 1 0 0 1 1 1 0 0 0 0 1 0 representation symbolique du connecteur et Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 21 / 30
Realisation du connecteur ET A B A et B 1 0 0 1 1 1 0 0 0 0 1 0 representation symbolique du connecteur et Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 21 / 30
Encore des connecteurs L'operateur Ou exculsif (xor) est le \ou" de \fromage ou dessert" au restaurant A B A xor B 1 0 1 1 1 0 0 0 0 0 1 1 representation symbolique du connecteur xor L'operateur ou se represente a l'aide du symbole suivant Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 22 / 30
Entiers en base 2 Les nombres entiers manipules par un ordinateur sont uniquement composes des chires 0 et 1. On dit que ces nombres sont en base 2 ou simplement que ce sont des nombres binaires. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 23 / 30
Entiers en base 2 Les nombres entiers manipules par un ordinateur sont uniquement composes des chires 0 et 1. On dit que ces nombres sont en base 2 ou simplement que ce sont des nombres binaires. Ainsi, un nombre binaire a n chires a n a n 1 : : : a 2 a 1 a 0 vaut la somme a n 2 n + a n 1 2 n 1 a 2 2 2 + a 1 2 1 + a 0 2 0 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 23 / 30
Entiers en base 2 Les nombres entiers manipules par un ordinateur sont uniquement composes des chires 0 et 1. On dit que ces nombres sont en base 2 ou simplement que ce sont des nombres binaires. Ainsi, un nombre binaire a n chires a n a n 1 : : : a 2 a 1 a 0 vaut la somme a n 2 n + a n 1 2 n 1 a 2 2 2 + a 1 2 1 + a 0 2 0 Par exemple, le nombre 13 sera represente en binaire par le nombre 1101 13 = 8 + 4 + 1 en decimal = 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 = 1101 en binaire Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 23 / 30
Decomposition d'un nombre entier en binaire Pour trouver la representation binaire d'un entier, il sut de le diviser par 2 tant que le quotient n'est pas 0. Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 24 / 30
Decomposition d'un nombre entier en binaire Pour trouver la representation binaire d'un entier, il sut de le diviser par 2 tant que le quotient n'est pas 0. quotient reste 13=2 = 6 1 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 24 / 30
Decomposition d'un nombre entier en binaire Pour trouver la representation binaire d'un entier, il sut de le diviser par 2 tant que le quotient n'est pas 0. quotient reste 13=2 = 6 1 6=2 = 3 0 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 24 / 30
Decomposition d'un nombre entier en binaire Pour trouver la representation binaire d'un entier, il sut de le diviser par 2 tant que le quotient n'est pas 0. quotient reste 13=2 = 6 1 6=2 = 3 0 3=2 = 1 1 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 24 / 30
Decomposition d'un nombre entier en binaire Pour trouver la representation binaire d'un entier, il sut de le diviser par 2 tant que le quotient n'est pas 0. quotient reste 13=2 = 6 1 6=2 = 3 0 3=2 = 1 1 1=2 = 0 1 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 24 / 30
Decomposition d'un nombre entier en binaire Pour trouver la representation binaire d'un entier, il sut de le diviser par 2 tant que le quotient n'est pas 0. quotient reste 13=2 = 6 1 6=2 = 3 0 3=2 = 1 1 1=2 = 0 1 Le nombre binaire correspondant a cette decomposition correspond aux restes de ces divisions, mais pris a l'envers Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 24 / 30
Decomposition d'un nombre entier en binaire Pour trouver la representation binaire d'un entier, il sut de le diviser par 2 tant que le quotient n'est pas 0. quotient reste 13=2 = 6 1 6=2 = 3 0 3=2 = 1 1 1=2 = 0 1 Le nombre binaire correspondant a cette decomposition correspond aux restes de ces divisions, mais pris a l'envers Pour 13, cela donne donc 1101 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 24 / 30
L'addition binaire L'addition de deux nombres binaires est analogue a l'addition avec le systeme decimal Il sut de conna^tre l'addition de deux chires binaires et de propager la retenue retenue 0 + 0 = 0 0 0 + 1 = 1 0 1 + 0 = 1 0 1 + 1 = 0 1 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 25 / 30
L'addition binaire L'addition de deux nombres binaires est analogue a l'addition avec le systeme decimal Il sut de conna^tre l'addition de deux chires binaires et de propager la retenue retenue 0 + 0 = 0 0 0 + 1 = 1 0 1 + 0 = 1 0 1 + 1 = 0 1 Exemples d'additions avec des nombres de 4 chires binaires : 1011 + 0100 = 1111 1 1 0010 + 0111 = 1001 1 1 1 0011 + 0111 = 1010 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 25 / 30
(demi)additionneur binaire En combinant des connecteurs et, ou et xor de la maniere suivante, on obtient le schema d'un demi-additionneur pour 1 chire binaire Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 26 / 30
(demi)additionneur binaire En combinant des connecteurs et, ou et xor de la maniere suivante, on obtient le schema d'un demi-additionneur pour 1 chire binaire Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 26 / 30
(demi)additionneur binaire En combinant des connecteurs et, ou et xor de la maniere suivante, on obtient le schema d'un demi-additionneur pour 1 chire binaire Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 26 / 30
(demi)additionneur binaire En combinant des connecteurs et, ou et xor de la maniere suivante, on obtient le schema d'un demi-additionneur pour 1 chire binaire Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 26 / 30
(demi)additionneur binaire En combinant des connecteurs et, ou et xor de la maniere suivante, on obtient le schema d'un demi-additionneur pour 1 chire binaire Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 26 / 30
Addition avec retenue Pour realiser un additionneur complet, il faut propager la retenue. Ceci revient a construire une table pour un additionneur a 3 entrees : retenue + a + b retenue en entree retenue en sortie 0 + 0 + 0 = 0 0 1 + 0 + 0 = 1 0 0 + 0 + 1 = 1 0 1 + 0 + 1 = 0 1 0 + 1 + 0 = 1 0 1 + 1 + 0 = 0 1 0 + 1 + 1 = 0 0 1 + 1 + 1 = 1 1 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 27 / 30
Additionneur complet Un additionneur complet pour calculer la somme r e compose de deux demi-additionneurs : + a + b est le premier calcule la somme x = a+b ainsi que la retenue r 1 le deuxieme calcule la somme y = r e + x ainsi que la retenue r 2 la retenue sortante r S vaut 1 si l'une des deux retenues r 1 ou r 2 vaut 1 Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 28 / 30
L'informatique, c'est logique! La logique, et en particulier la logique des propositions, est au cur des ordinateurs les valeurs de verite vrai (1) et faux (0) sont les seuls chires manipules pas les ordinateurs les transistors, veritables briques de base des micro-processeurs, sont utilises pour construire les connecteurs logiques (et, ou, non etc.) toutes les operations arithmetiques sont fabriquees a partir de ces connecteurs Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 29 / 30
Pour en savoir plus Pour ceux qui souhaitent decouvrir de nouvelles enigmes logiques Pour ceux qui souhaitent en savoir plus sur l'architecture des ordinateurs Raymond Smullyan Andrew Tanenbaum Sylvain Conchon (LRI, INRIA) L'informatique, c'est logique! 16 Juin 2010 30 / 30