Peut-on avoir confiance en l informatique?

Dimension: px
Commencer à balayer dès la page:

Download "Peut-on avoir confiance en l informatique?"

Transcription

1 Peut-on avoir confiance en l informatique? René David et Christophe Raffalli Mai 2007

2 Introduction Progrès de l informatique Depuis 20 ans les performances des ordinateurs ont été multipliées par Un calcul qui aurait pris une année en 1983 est maintenant effectué en moins d une heure. Le revers de la médaille La rançon de ce progrès est élevée : la fiabilité des systèmes informatiques a été négligée. Les ordinateurs se bloquent, les sites Internet se déconnectent... Les budgets de maintenance, de réparation et de fonctionnement dépassent les coûts totaux en matériel et logiciels. Il y a des bugs! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

3 Introduction Progrès de l informatique Depuis 20 ans les performances des ordinateurs ont été multipliées par Un calcul qui aurait pris une année en 1983 est maintenant effectué en moins d une heure. Le revers de la médaille La rançon de ce progrès est élevée : la fiabilité des systèmes informatiques a été négligée. Les ordinateurs se bloquent, les sites Internet se déconnectent... Les budgets de maintenance, de réparation et de fonctionnement dépassent les coûts totaux en matériel et logiciels. Il y a des bugs! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

4 Introduction Progrès de l informatique Depuis 20 ans les performances des ordinateurs ont été multipliées par Un calcul qui aurait pris une année en 1983 est maintenant effectué en moins d une heure. Le revers de la médaille La rançon de ce progrès est élevée : la fiabilité des systèmes informatiques a été négligée. Les ordinateurs se bloquent, les sites Internet se déconnectent... Les budgets de maintenance, de réparation et de fonctionnement dépassent les coûts totaux en matériel et logiciels. Il y a des bugs! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

5 Introduction Progrès de l informatique Depuis 20 ans les performances des ordinateurs ont été multipliées par Un calcul qui aurait pris une année en 1983 est maintenant effectué en moins d une heure. Le revers de la médaille La rançon de ce progrès est élevée : la fiabilité des systèmes informatiques a été négligée. Les ordinateurs se bloquent, les sites Internet se déconnectent... Les budgets de maintenance, de réparation et de fonctionnement dépassent les coûts totaux en matériel et logiciels. Il y a des bugs! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

6 Introduction Progrès de l informatique Depuis 20 ans les performances des ordinateurs ont été multipliées par Un calcul qui aurait pris une année en 1983 est maintenant effectué en moins d une heure. Le revers de la médaille La rançon de ce progrès est élevée : la fiabilité des systèmes informatiques a été négligée. Les ordinateurs se bloquent, les sites Internet se déconnectent... Les budgets de maintenance, de réparation et de fonctionnement dépassent les coûts totaux en matériel et logiciels. Il y a des bugs! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

7 Introduction R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

8 Introduction Plan 1 Brève histoire de l informatique 2 Quelques exemples de gros «bugs» 3 Qu est ce qu un bug? 4 Pourquoi traquer les bugs, c est difficile? 5 Qu est ce que l absence de bug? 6 Les solutions actuelles 7 Logiciels et preuves mathématiques 8 Conclusion R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

9 Brève histoire de l informatique Plan 1 Brève histoire de l informatique 2 Quelques exemples de gros «bugs» 3 Qu est ce qu un bug? 4 Pourquoi traquer les bugs, c est difficile? 5 Qu est ce que l absence de bug? 6 Les solutions actuelles 7 Logiciels et preuves mathématiques 8 Conclusion R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

10 Brève histoire de l informatique (1) Les hommes Alan Turing ( ) Angleterre Modèle théorique des ordinateurs Logique Mathématique Machine de Turing R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

11 Brève histoire de l informatique (1) Les hommes Alonzo Church ( ) USA Modèle théorique de la programmation Le λ-calcul, ancêtre des langages fonctionnels (Lisp, ML,...) R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

12 Brève histoire de l informatique (1) Les hommes John von Newmann ( ) USA Concepteur des ordinateurs modernes Un pionnier de l informatique Il a aussi introduit les automates cellulaires et donc le calcul parallèle. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

13 Brève histoire de l informatique (2) Le matériel Les premières calculatrices mécaniques (elles font les 4 opérations) La machine de Pascal (1650) La machine de Leibniz (1694) R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

14 Brève histoire de l informatique (2) Le matériel La première machine programmable La machine de Jacquard (1801), elle ne servait pas à calculer! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

15 Brève histoire de l informatique (2) Le matériel La première machine (presque) programmable pour calculer des polynômes La machine de C. Babbage (1833), elle n a jamais vraiment fonctionné R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

16 Brève histoire de l informatique (2) Le matériel La première machine électro-mécanique La machine de H. Aiken (1943), elle pesait 5 tonnes R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

17 Brève histoire de l informatique (2) Le matériel Les machines électroniques (vers 1950) R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

18 Brève histoire de l informatique (2) Le matériel Les machines électroniques (suite) Machine utilisant des cartes perforées (vers 1960) R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

19 Brève histoire de l informatique (2) Le matériel Les machines modernes Depuis 1980 les machines utilisent des circuits intégrés... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

20 Brève histoire de l informatique (3) Le logiciel Les programmes La notion de programme, d algorithme existait bien avant que l on ne sache construire des ordinateurs : algorithme d Euclide ( BC, Alexandrie), Al Khuwarizmi ( ). R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

21 Brève histoire de l informatique (3) Le logiciel Un ordinateur ne fait que manipuler des 0 et 1 Dans les années 40 : on programme avec des 0 et des 1 et le fer à souder. Début des années 50 : on programme en «assembleur», les instructions ont un nom. Depuis la fin des années 50 : on utilise des langages de programmation. Les langages de programmation On utilise un langage lisible par l être humain et un «compilateur» pour traduire en langage machine. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

22 Brève histoire de l informatique Les langages de programmation (classement chronologique) Avant 1950 : Algorithmes et machines à calculer : pas de langage : Fortran, Lisp, Cobol, Algol : Apl, Basic, Pl/1, Logo : Pascal, Prolog, SmallTalk, C, Ada, : Dbase, C++, Eiffel, Mathematica, Maple, : VisualBasic, Java, Php, Mysql,... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

23 Brève histoire de l informatique Les langages de programmation (classement par trait) Langages impératifs : APL - ASP - Assembleur - BASIC - C - Cobol - Forth - Fortran - Limbo - Logo - Pascal - Perl PHP -... Langages à objets : 4D - C++ - D - Delphi - Eiffel - Groovy - Java - Python - Ruby - Simula - Smalltalk - Visual Basic - WinDev -... Langages fonctionnels : Haskell - SML/OCaml - Lisp Common Lisp - Scheme - XSLT -... Langages déclaratifs : Clips - Prolog - Lambda-Prolog -... Langages concurrents : Ada 95 - Erlang -... Langage de balisage : TeX - LaTeX - HTML - SGML - XML - PHP -... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

24 Brève histoire de l informatique Les programmes ont des bugs! Maurice Wilkes, l un des créateurs des ordinateurs (1949) «Dès que nous avons commencé à programmer, nous avons découvert, à notre grande surprise, qu il n était pas aussi facile d obtenir des programmes corrects que nous le pensions. J ai alors réalisé qu une grande partie de ma vie serait consacrée à découvrir des fautes dans mes propres programmes.» R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

25 Quelques exemples de gros «bugs» Plan 1 Brève histoire de l informatique 2 Quelques exemples de gros «bugs» 3 Qu est ce qu un bug? 4 Pourquoi traquer les bugs, c est difficile? 5 Qu est ce que l absence de bug? 6 Les solutions actuelles 7 Logiciels et preuves mathématiques 8 Conclusion R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

26 Quelques exemples de gros «bugs» Quelques exemples de gros «Bugs» Il y en a des milliers... Il y a même des journaux qui répertorient tous ces bugs : Risk Digest,... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

27 Quelques exemples de gros «bugs» L explosion de la fusée Ariane 5 R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

28 Quelques exemples de gros «bugs» L explosion de la fusée Ariane 5 Le premier tir eut lieu le 4 juin 1996 à Kourou. Le lanceur fut détruit après approximativement 40 secondes de vol. L échec est dû à une erreur informatique : un programme d un composant (un gyroscope) provenant d Ariane 4 n a pas été re-testé. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

29 Quelques exemples de gros «bugs» L explosion de la fusée Ariane 5 Le programme était destiné à recalibrer les gyroscopes. Ce cas de figure, envisagé initialement pour Ariane 3, était depuis longtemps exclu des procédures de tir. L erreur a été provoquée par un programme qui ne servait à rien. C est l une des erreurs informatiques les plus coûteuses de l histoire. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

30 Quelques exemples de gros «bugs» Première guerre d Irak : bug d un missile patriot R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

31 Quelques exemples de gros «bugs» Bug d un missile patriot Dans la nuit du 25/02/91, un missile Patriot opérant de Dhahran (en Arabie Saoudite) n a pas pu intercepter un Scud. Le missile iraquien a tué 28 soldats américains et en a blessé 98. Le problème était un problème informatique : la place mémoire prévue pour stocker la vitesse de la cible n était pas suffisante et cela a donné des erreurs d arrondis... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

32 Quelques exemples de gros «bugs» Mars Climate Orbiter a loupé sa cible R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

33 Quelques exemples de gros «bugs» Mars Climate Orbiter a loupé sa cible Les unités de mesure au sol et dans la sonde n étaient pas les mêmes : anglaise d un coté, système métrique de l autre. On avait repris un logiciel venant de Mars global Surveyor et pas vérifié la compatibilité. Ce genre de vérification étaient faites pour des missions précédentes mais supprimées à cause de coupures budgétaires. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

34 Quelques exemples de gros «bugs» Problèmes médicaux avec le Thérac-25 R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

35 Quelques exemples de gros «bugs» Bug du Thérac-25 Le 3 juin 1985, en Géorgie, une femme de 61 ans atteinte d un cancer du sein débuta un traitement avec le Therac-25, une machine de radiothérapie. Peu après le traitement, la patiente souffrit de douleurs dans la région irradiée. Elle continua à souffrir de ses brûlures et son bras resta paralysé. Quelques mois plus tard, une autre personne mourut des suites des blessures occasionnées. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

36 Quelques exemples de gros «bugs» Bug du Thérac-25 L erreur était un manque de fiabilité du logiciel gérant la machine. Des dépassements de capacité se produisaient et engendraient la désactivation de certains tests de sécurité. L ensemble était programmé en assembleur, un langage courant à l époque mais difficile à analyser et «débogguer» par rapport aux langages de plus haut niveau. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

37 Quelques exemples de gros «bugs» Machine à voter en Belgique R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

38 Quelques exemples de gros «bugs» Machine à voter en Belgique Le 18 mai 2003 à Schaerbeek (Belgique), le décompte des voix exprimées dépasse de plus de le nombre d inscrits dans la circonscription. Les experts concluent que «l erreur a très probablement été occasionnée par une inversion spontanée et aléatoire d un bit». Ils ajoutent que «ce phénomène est abondamment décrit dans la littérature spécialisée». Il ne l est pas dans le code électoral... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

39 Quelques exemples de gros «bugs» Machine à voter en Belgique Le 18 mai 2003 à Schaerbeek (Belgique), le décompte des voix exprimées dépasse de plus de le nombre d inscrits dans la circonscription. Les experts concluent que «l erreur a très probablement été occasionnée par une inversion spontanée et aléatoire d un bit». Ils ajoutent que «ce phénomène est abondamment décrit dans la littérature spécialisée». Il ne l est pas dans le code électoral... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

40 Qu est ce qu un bug? Plan 1 Brève histoire de l informatique 2 Quelques exemples de gros «bugs» 3 Qu est ce qu un bug? 4 Pourquoi traquer les bugs, c est difficile? 5 Qu est ce que l absence de bug? 6 Les solutions actuelles 7 Logiciels et preuves mathématiques 8 Conclusion R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

41 Qu est ce qu un bug? Qu est ce qu un bug? Il s est passé quelque-chose de non souhaité, non prévu,... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

42 Qu est ce qu un bug? Qui est coupable? (d après A Fox et D Patterson - Pour la science 2003) Materiel : 15% Logiciel : 34% Humain : 51% R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

43 Qu est ce qu un bug? Les erreurs humaines Mauvaise compréhension de la documentation Erreurs de manipulation... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

44 Qu est ce qu un bug? Les erreurs matériel Panne d un composant : un circuit a «grillé» Erreur de communication, erreur de stockage : codes correcteurs d erreurs. Les rayons cosmiques peuvent perturber le fonctionnement des machines. Erreur de conception : la puce ne fait pas ce qu il faut... même si on sait souvent «prouver» les circuits. Bug très proche du bug logiciel.... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

45 Qu est ce qu un bug? Les erreurs matériel Les rayons cosmiques Les rayons cosmiques provoquent des erreurs dans les ordinateurs. Ce sont les neutrons qui posent problème. À 10 kilomètres d altitude, il y a neutrons qui traversent chaque centimètre carré par heure. Un chercheur du CNRS estime qu un PC portable, en avion, a un risque de planter toutes les 5 heures. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

46 Qu est ce qu un bug? Les erreurs matériel Bug du pentium En 1994, un chercheur découvre un bug dans l unité de valeur en virgule flottante du Pentium. Dans un premier temps, Intel nie le problème mais ces erreurs dans les divisions sont rapidement confirmées par d autres personnes. L erreur provient de l initialisation incomplète (dans le silicium) d une table de valeurs servant à un nouvel algorithme plus rapide. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

47 Qu est ce qu un bug? Les erreurs matériel Bug du pentium Si x = , y = et z = x x y y On devrait trouver 0 mais la puce répond 256. Des organismes indépendants montrèrent cependant le peu d importance des conséquences du bug et que l effet était négligeable dans la plupart des utilisations. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

48 Qu est ce qu un bug? Les erreurs logiciel Les bugs logiciel Un programme qui ne fait pas ce que l on veut. Le reste de l exposé Qu est ce que l on veut? Comment l obtient-on? R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

49 Qu est ce qu un bug? Les erreurs logiciel Les bugs logiciel Un programme qui ne fait pas ce que l on veut. Les erreurs logiciel classiques Diviser par zéro Dépassement des bornes d un tableau Accès mémoire non autorisé Utilisation d une variable non initialisée Les erreurs d arrondis dans les calculs Erreur «logique» (on ne calcule pas ce que l on veut)... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

50 Qu est ce qu un bug? Les erreurs d arrondis En math ( ) = 1 Pour un ordinateur ( ) = 0 R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

51 Qu est ce qu un bug? Les erreurs d arrondis En math ( ) = 1 Pour un ordinateur ( ) = 0 R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

52 Qu est ce qu un bug? Erreurs d arrondis à la bourse de Vancouver En 1982, on introduit un indice initialisé à Après chaque transaction, il est réactualisé. 22 mois plus tard, sa valeur est à 525. La vraie valeur était de Les erreurs d arrondis (allant toujours dans le même sens) s étaient cumulées. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

53 Qu est ce qu un bug? Erreurs d arrondis à la bourse de Vancouver En 1982, on introduit un indice initialisé à Après chaque transaction, il est réactualisé. 22 mois plus tard, sa valeur est à 525. La vraie valeur était de Les erreurs d arrondis (allant toujours dans le même sens) s étaient cumulées. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

54 Qu est ce qu un bug? Erreur logique dans les élections au parlement de Schleswig-Holstein en 1992 En Allemagne, pour avoir des sièges, un parti doit avoir au moins 5% des voix. Les verts, crédités de 5%, obtiennent donc des élus. En fait le pourcentage était de 4.97%... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

55 Qu est ce qu un bug? Erreur logique dans les élections au parlement de Schleswig-Holstein en 1992 En Allemagne, pour avoir des sièges, un parti doit avoir au moins 5% des voix. Les verts, crédités de 5%, obtiennent donc des élus. En fait le pourcentage était de 4.97%... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

56 Pourquoi traquer les bugs, c est difficile? Plan 1 Brève histoire de l informatique 2 Quelques exemples de gros «bugs» 3 Qu est ce qu un bug? 4 Pourquoi traquer les bugs, c est difficile? 5 Qu est ce que l absence de bug? 6 Les solutions actuelles 7 Logiciels et preuves mathématiques 8 Conclusion R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

57 Pourquoi traquer les bugs, c est difficile? R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

58 Pourquoi traquer les bugs, c est difficile? R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

59 Pourquoi traquer les bugs, c est difficile? (1) Les limitations dues à la vitesse Question : Combien d opérations un ordinateur qui fait opérations à la seconde qui calculerait depuis le Big Bang aurait-il fait? Il est généralement estimé que notre cerveau, avec ses neurones et synapses, fait entre et opérations à la seconde. Réponse : opérations, c est à dire 1 suivi de 31 zéros ce qui est très grand mais quand même trop petit... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

60 Pourquoi traquer les bugs, c est difficile? (1) Les limitations dues à la vitesse Question : Combien d opérations un ordinateur qui fait opérations à la seconde qui calculerait depuis le Big Bang aurait-il fait? Il est généralement estimé que notre cerveau, avec ses neurones et synapses, fait entre et opérations à la seconde. Réponse : opérations, c est à dire 1 suivi de 31 zéros ce qui est très grand mais quand même trop petit... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

61 Pourquoi traquer les bugs, c est difficile? (1) Les limitations dues à la vitesse Question : Combien d opérations un ordinateur qui fait opérations à la seconde qui calculerait depuis le Big Bang aurait-il fait? Il est généralement estimé que notre cerveau, avec ses neurones et synapses, fait entre et opérations à la seconde. Réponse : opérations, c est à dire 1 suivi de 31 zéros ce qui est très grand mais quand même trop petit... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

62 Pourquoi traquer les bugs, c est difficile? (2) Problèmes indécidables Théorème Il existe des problèmes indécidables, c est à dire qu il n y a pas d algorithme général pour les résoudre. begin i := i + 1 ; end Ce programme va-t-il s arrêter? Ce programme va-t-il utiliser cette instruction? Ce programme a-t-il exactement le même comportement que tel autre? R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

63 Pourquoi traquer les bugs, c est difficile? (3) Complexité croissante des systèmes Taille des systèmes : nombre de lignes de code (place mémoire de Windows XP et Vista). Systèmes «distribués» (même si ce n est pas le cas des applications critiques). R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

64 Pourquoi traquer les bugs, c est difficile? (4) Préciser «ce que l on veut» n est pas si simple Quelques examples : le passage à niveau, le bug de l an 2000, les unités de mesure pour Mars voyager. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

65 Pourquoi traquer les bugs, c est difficile? (5) Définir «ce que fait un programme» n est pas si simple On ne peut pas vérifier qu un programme fait «ce que l on veut» si on ne sait pas ce que le programme fait. Il faut donner un sens parfaitement précis aux programmes, ce qu on appelle une «sémantique mathématique». De bons langages (avec une bonne «sémantique») réduisent le taux d erreurs de façon majeure. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

66 Pourquoi traquer les bugs, c est difficile? (6) Rigidité du monde industriel Difficile d intégrer les progrès de la recherche dans le monde industriel. Les choix technologiques du monde industriel sont trop souvent «spontanés» : pourquoi C++ et pas objective C, pourquoi Java et pas ML, pourquoi Perl. Il faut souvent attendre d avoir des bugs majeurs pour promouvoir la recherche dans ce domaine. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

67 Qu est ce que l absence de bug? Plan 1 Brève histoire de l informatique 2 Quelques exemples de gros «bugs» 3 Qu est ce qu un bug? 4 Pourquoi traquer les bugs, c est difficile? 5 Qu est ce que l absence de bug? 6 Les solutions actuelles 7 Logiciels et preuves mathématiques 8 Conclusion R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

68 Qu est ce que l absence de bug? L absence de bug est parfois une propriété indispensable Pour les logiciels embarqués dans les avions, les voitures ou les appareils médicaux, la sécurité est absolument fondamentale. Il n est pas question de diffuser des versions plus ou moins buggées en demandant aux utilisateurs de télécharger les nouvelles versions quand on trouve un problème. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

69 Qu est ce que l absence de bug? La norme ISO/CEI 9126 Elle décrit les exigences qualité des logiciels Capacité fonctionnelle : Est-ce que le logiciel répond aux besoins fonctionnels exprimés? Fiabilité : Est-ce que le logiciel maintient son niveau de service dans des conditions précises et pendant une période déterminée? Facilité d utilisation : Est-ce que le logiciel requiert peu d effort à l utilisation?... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

70 Qu est ce que l absence de bug? Absence de bugs = présence de propriétés Ne plante pas = ne s arrête pas de manière inattendue. Le logiciel a un comportement correct : certaines situations sont impossibles ; certains événements vont se produire. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

71 Qu est ce que l absence de bug? Absence de bugs = présence de propriétés Solution On décrit tout cela grâce aux MATHÉMATIQUES. Les spécifications C est le nom que l on donne aux propriétés mathématiques qu un programme doit satisfaire pour être correct (sans bug). R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

72 Qu est ce que l absence de bug? Un exemple : le passage à niveau Si un train passe : les barrières sont fermées depuis N minutes. Les barrières sont parfois ouvertes! Au moins P minutes entre une ouverture et une fermeture et un signal P minutes avant la fermeture! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

73 Qu est ce que l absence de bug? Un exemple : le passage à niveau Si un train passe : les barrières sont fermées depuis N minutes. Les barrières sont parfois ouvertes! Au moins P minutes entre une ouverture et une fermeture et un signal P minutes avant la fermeture! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

74 Qu est ce que l absence de bug? Un exemple : le passage à niveau Si un train passe : les barrières sont fermées depuis N minutes. Les barrières sont parfois ouvertes! Au moins P minutes entre une ouverture et une fermeture et un signal P minutes avant la fermeture! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

75 Qu est ce que l absence de bug? Les spécifications sont utiles en elles mêmes Les spécifications formelles sont un cahier des charges fiable pour le logiciel. Bug de l an 2000 Les spécifications ont mis (auraient du mettre?) le problème en évidence. Mars orbiter Des spécifications complètes auraient précisé les unités. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

76 Les solutions actuelles Plan 1 Brève histoire de l informatique 2 Quelques exemples de gros «bugs» 3 Qu est ce qu un bug? 4 Pourquoi traquer les bugs, c est difficile? 5 Qu est ce que l absence de bug? 6 Les solutions actuelles 7 Logiciels et preuves mathématiques 8 Conclusion R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

77 Les solutions actuelles Le test du logiciel On produit un vecteur de tests : une liste d entrées, les sorties correspondantes. On vérifie la sortie du programme sur chaque entrée du vecteur. Les tests peuvent être écrits à la main, générés. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

78 Les solutions actuelles Exemple de l ascenseur Un immeuble de 9 étages + RDC Entrée : étage + boutons appuyés. Sortie : monte, descend, ne fait rien. Il y a millions d entrées possibles. Conclusion Le test complet est impossible. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

79 Les solutions actuelles Exemple de l ascenseur Un immeuble de 9 étages + RDC Entrée : étage + boutons appuyés. Sortie : monte, descend, ne fait rien. Il y a millions d entrées possibles. Conclusion Le test complet est impossible. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

80 Les solutions actuelles Les limites du test Test exhaustif presque toujours impossible. Test partiel risque de bugs. Tests générés à la main risque de bugs. Tests générés automatiquement un programme de plus avec ses bugs! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

81 Les solutions actuelles Le «model checking» Introduit au début des années 80. Très utilisé pour la preuve de circuits. Améliorations du test : Spécification pour vérifier le vecteur de tests. On ne teste pas tous les cas. Pour le passage à niveau à 2 voies : 2 cas au lieu de 4. Repose sur la théorie des modèles fondement mathématique fiable. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

82 Les solutions actuelles Le «model checking» Introduit au début des années 80. Très utilisé pour la preuve de circuits. Améliorations du test : Spécification pour vérifier le vecteur de tests. On ne teste pas tous les cas. Pour le passage à niveau à 2 voies : 2 cas au lieu de 4. Repose sur la théorie des modèles fondement mathématique fiable. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

83 Les solutions actuelles Les langages plus évolués Les langages ne sont pas tous égaux : Assembleur < C < C++ < Java < ML Pourquoi? 1 + "toto" : possible en C, pas en ML! En ML ceci est un théorème, pas en Java! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

84 Les solutions actuelles Les contraintes du langage augmentent la fiabilité Accès mémoire illégal : Solution : entier différent de adresse mémoire. Une chaîne à la place d un entier : Solution : typage statique. On utilise un objet que l on a détruit : Solution : «garbage collector». Nouveaux paradigmes programmes plus courts et plus clairs, moins de bugs, réutilisation de codes éprouvés programmes plus sûrs. Mais plus de contraintes! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

85 Les solutions actuelles Comparaison C - OCaml En C En OCaml int valeur(expr e) { switch(e->tag) { constante : return valeur(e->u.cst) ; somme : return valeur(e->u.args.arg1) + valeur(e->u.args.arg2) ;... } let rec valeur = function constante(n)-> n Somme(e1,e2)-> valeur(e1) + valeur(e2)... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

86 Logiciels et preuves mathématiques Plan 1 Brève histoire de l informatique 2 Quelques exemples de gros «bugs» 3 Qu est ce qu un bug? 4 Pourquoi traquer les bugs, c est difficile? 5 Qu est ce que l absence de bug? 6 Les solutions actuelles 7 Logiciels et preuves mathématiques 8 Conclusion R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

87 Logiciels et preuves mathématiques Nécessité de prouver les programmes Exigence de sécurité Depuis 1995, en Europe, les ITSEC (Information Technology Security Evaluation Criteria) exigent l usage de méthodes formelles à partir d un certain niveau de sécurité. Transports, médecine Banques, Télécommunications,... Les «méthodes formelles» comprennent Spécification Test Model-Checking Preuve de logiciel R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

88 Logiciels et preuves mathématiques Spécification et preuves Question Puisque spécifications = formules mathématiques, pourquoi ne pas faire des preuves? Oui mais : Même en mathématiques on fait des erreurs dans les preuves. En mathématiques, la «communauté»vérifie les preuves. En informatique, personne ne relira une preuve d un programme! R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

89 Logiciels et preuves mathématiques Spécification et preuves Question Puisque spécifications = formules mathématiques, pourquoi ne pas faire des preuves? Solution : On peut vérifier une preuve à l aide d un ordinateur. Degré de fiabilité très très élevé (mais pas 100%). R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

90 Logiciels et preuves mathématiques Correspondance de Curry-Howard Spécification = Théorème. Preuve = Programme. On prouve : e s Specif(e, s) De la preuve, on extrait un programme correct calculant la sortie s en fonction de l entrée e. Limitations peu efficace, très dur d écrire le programme que l on veut. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

91 Logiciels et preuves mathématiques Correspondance de Curry-Howard Spécification = Théorème. Preuve = Programme. On prouve : e s Specif(e, s) De la preuve, on extrait un programme correct calculant la sortie s en fonction de l entrée e. Limitations peu efficace, très dur d écrire le programme que l on veut. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

92 Logiciels et preuves mathématiques Correspondance de Curry-Howard Spécification = Théorème. Preuve = Programme. On prouve : e s Specif(e, s) De la preuve, on extrait un programme correct calculant la sortie s en fonction de l entrée e. Limitations peu efficace, très dur d écrire le programme que l on veut. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

93 Logiciels et preuves mathématiques Preuve de programmes Qu est ce que c est? On prouve que le logiciel satisfait ses spécifications. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

94 Logiciels et preuves mathématiques Preuve de programmes Deux méthodes principales : Programmes impératifs : logique de Hoare Méthode B : Ligne de métro 14 à Paris,... Approche fonctionnelle Boyer-Moore : preuve d un micro processeur, d un compilateur Pascal,... Plus de limites... en principe R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

95 Logiciels et preuves mathématiques Logique de Hoare (methode B) Appliquée aux programmes impératifs : Affectation, Boucles (invariants...). À partir du programme et des spécifications on génère des «obligations de preuves». La théorie mathématique sous jacente à la logique de Hoare assure que cela suffit. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

96 Logiciels et preuves mathématiques Logique de Hoare (exemple) X := a ; while ( X 2 a e) do X := 1 2 (X + a X ) ; done ; return(x) ; Preuve : Invariant de boucle : X > 0 (non nul). Post-condition : X a < e. Obligations de preuve : a > 0, X > (X + a X ) > 0. (e est la marge d erreur) rappel : attention aux erreurs d arrondis. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

97 Logiciels et preuves mathématiques Langage fonctionnel Remarque : Les fonctions existent en mathématiques. Exemple : f (X) = X si X 2 a < e et f (X) = f ( 1 2 (X + a X )) sinon Preuve Même contenu que pour la logique de Hoare. Mais proche d une preuve mathématique usuelle. Justification de la méthode un peu plus simple. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

98 Logiciels et preuves mathématiques Limitation de la preuve de programme Demande du temps, mais pas forcément plus que la recherche et la correction des bugs. On doit le faire avant de vendre le produit. Les industriels actuels n ont pas fait assez de maths. Les industriels changent difficilement de langage de programmation. R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

99 Conclusion Plan 1 Brève histoire de l informatique 2 Quelques exemples de gros «bugs» 3 Qu est ce qu un bug? 4 Pourquoi traquer les bugs, c est difficile? 5 Qu est ce que l absence de bug? 6 Les solutions actuelles 7 Logiciels et preuves mathématiques 8 Conclusion R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

100 Conclusion Peut-on avoir confiance en l informatique? Bureautique et informatique courante Les industriels ont conscience du problème. Pression économique encourageant les bugs! Outils peu ou pas utilisés. Des bugs, encore des bugs,... Systèmes critiques Les industriels ont conscience du problème. Pression économique encourageant la sécurité. Outils en progrès constant. On peut avoir confiance... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

101 Conclusion Peut-on avoir confiance en l informatique? Bureautique et informatique courante Les industriels ont conscience du problème. Pression économique encourageant les bugs! Outils peu ou pas utilisés. Des bugs, encore des bugs,... Systèmes critiques Les industriels ont conscience du problème. Pression économique encourageant la sécurité. Outils en progrès constant. On peut avoir confiance... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

102 Conclusion Peut-on avoir confiance en l informatique? Bureautique et informatique courante Les industriels ont conscience du problème. Pression économique encourageant les bugs! Outils peu ou pas utilisés. Des bugs, encore des bugs,... Systèmes critiques Les industriels ont conscience du problème. Pression économique encourageant la sécurité. Outils en progrès constant. On peut avoir confiance... R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

103 Conclusion Fin R.David - C.Raffalli Avoir confiance en l informatique? Mai / 78

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

Machines virtuelles Cours 1 : Introduction

Machines virtuelles Cours 1 : Introduction Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une

Plus en détail

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Préparation à l examen EFA en Macro

Préparation à l examen EFA en Macro Préparation à l examen EFA en Macro Exercice sur les macros en Word / Excel Les questions suivantes doivent constituer un bref rafraîchissement et vous aider à situer le niveau de vos connaissances : Question

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Logiciel Libre Cours 2 Fondements: Programmation

Logiciel Libre Cours 2 Fondements: Programmation Logiciel Libre Cours 2 Fondements: Programmation Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Informatique Machines à calculer en théorie et en pratique

Informatique Machines à calculer en théorie et en pratique Licence Physique-Chimie Histoire des Sciences Informatique Machines à calculer en théorie et en pratique Notes de Cours 1 Introduction Étymologie En Allemagne (1957) le terme «Informatik» est créé par

Plus en détail

Les Langages Informatiques

Les Langages Informatiques Les Langages Informatiques Les évolutions Michel Riguidel (riguidel@enst.fr) Table des Matières Table des Matières 2 Segmentation Informatique 3 Autrefois 3 Maintenant 3 Informatique 3 Informatique, Ordinateur,

Plus en détail

Qualité du logiciel: Méthodes de test

Qualité du logiciel: Méthodes de test Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution

Plus en détail

Représentation des Nombres

Représentation des Nombres Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

B = A = B = A = B = A = B = A = Recopier sur la copie chaque expression numérique et la réponse exacte. Réponse A Réponse B Réponse C Solution

B = A = B = A = B = A = B = A = Recopier sur la copie chaque expression numérique et la réponse exacte. Réponse A Réponse B Réponse C Solution Q.C.M. Recopier sur la copie chaque expression numérique et la réponse exacte. Réponse A Réponse B Réponse C Solution Exercice 1 On considère les trois nombres A, B et C : 2 x (60 5 x 4 ²) (8 15) Calculer

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Les fusées Ariane. Par Jennifer MOULLET, 3 3

Les fusées Ariane. Par Jennifer MOULLET, 3 3 Les fusées Ariane Par Jennifer MOULLET, 3 3 Sommaire: I) le contexte A: recommencer après un échec B: de nombreux enjeux internationaux et un grand succès II) présentation des fusées A: Généralités B:

Plus en détail

Conversion d un entier. Méthode par soustraction

Conversion d un entier. Méthode par soustraction Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

1 Recherche en table par balayage

1 Recherche en table par balayage 1 Recherche en table par balayage 1.1 Problème de la recherche en table Une table désigne une liste ou un tableau d éléments. Le problème de la recherche en table est celui de la recherche d un élément

Plus en détail

Introduction à l Informatique licence 1 ère année Notes de Cours

Introduction à l Informatique licence 1 ère année Notes de Cours Introduction à l Informatique licence 1 ère année Notes de Cours Philippe Le Parc Mail : leparc@univ-brest.fr Bureau : LC101 Tel : (029801) 6960 Fiche UE (part.1) 2 Plan et planning Début des cours magistraux

Plus en détail

Choisir une pointeuse, badgeuse ou système de gestion des temps

Choisir une pointeuse, badgeuse ou système de gestion des temps Choisir une pointeuse, badgeuse ou système de gestion des temps Ce guide a été conçu pour vous assister dans votre démarche de sélection d un système de gestion des temps. Nous souhaitons ici vous faire

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique DOMAINE P3.C3.D1. Pratiquer une démarche scientifique et technologique, résoudre des

Plus en détail

Introduction aux Bases de Données Relationnelles Conclusion - 1

Introduction aux Bases de Données Relationnelles Conclusion - 1 Pratique d un : MySQL Objectifs des bases de données Où en sommes nous? Finalement, qu est-ce qu un? Modèle relationnel Algèbre relationnelle Conclusion SQL Conception et rétro-conception Protection de

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Algorithmique et Programmation Fonctionnelle

Algorithmique et Programmation Fonctionnelle Algorithmique et Programmation Fonctionnelle RICM3 Cours 9 : Lambda-calcul Benjamin Wack Polytech 2014-2015 1 / 35 La dernière fois Typage Polymorphisme Inférence de type 2 / 35 Plan Contexte λ-termes

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Arithmétique réelle. Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations. Valérie Ménissier-Morain

Arithmétique réelle. Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations. Valérie Ménissier-Morain Arithmétique réelle Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations Valérie Ménissier-Morain Université Pierre et Marie Curie - Paris 6 LIP6 - Département CALSCI

Plus en détail

Éléments d'architecture des ordinateurs

Éléments d'architecture des ordinateurs Chapitre 1 Éléments d'architecture des ordinateurs Machines take me by surprise with great frequency. Alan Turing 1.1 Le Hardware Avant d'attaquer la programmation, il est bon d'avoir quelques connaissances

Plus en détail

Informatique Générale

Informatique Générale Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) guillaume.hutzler@ibisc.univ-evry.fr Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html

Plus en détail

Le génie logiciel. maintenance de logiciels.

Le génie logiciel. maintenance de logiciels. Le génie logiciel Définition de l IEEE (IEEE 1990): L application d une approche systématique, disciplinée et quantifiable pour le développement, l opération et la maintenance de logiciels. Introduction

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Directives pour l évaluation des participations d astrophilatélie

Directives pour l évaluation des participations d astrophilatélie FEDERATION INTERNATIONALE DE PHILATELIE SECTION FOR ASTROPHILATELY Directives pour l évaluation des participations d astrophilatélie Article 1 : Exposition en compétition Principe fondamental (réf. GREV

Plus en détail

Liste de vérification des exigences Flexfone

Liste de vérification des exigences Flexfone Liste de vérification des exigences Flexfone Introduction Avant de déployer un service de voix par le protocole de l Internet (VoIP) ou un PBX hébergé dans votre entreprise, vous devriez prendre certaines

Plus en détail

Représentation d un nombre en machine, erreurs d arrondis

Représentation d un nombre en machine, erreurs d arrondis Chapitre Représentation d un nombre en machine, erreurs d arrondis Ce chapitre est une introduction à la représentation des nombres en machine et aux erreurs d arrondis, basé sur [], [].. Un exemple :

Plus en détail

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09 INFORMATIQUE & WEB Code du diplôme : CP09 Passionné par l informatique et le web, vous souhaitez obtenir une certification dans un domaine porteur et enrichir votre CV? PARCOURS CERTIFICAT PROFESSIONNEL

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Outils pour les réseaux de neurones et contenu du CD-Rom

Outils pour les réseaux de neurones et contenu du CD-Rom Outils pour les réseaux de neurones et contenu du CD-Rom Depuis le développement théorique des réseaux de neurones à la fin des années 1980-1990, plusieurs outils ont été mis à la disposition des utilisateurs.

Plus en détail

Intelligence Artificielle et Robotique

Intelligence Artificielle et Robotique Intelligence Artificielle et Robotique Introduction à l intelligence artificielle David Janiszek david.janiszek@parisdescartes.fr http://www.math-info.univ-paris5.fr/~janiszek/ PRES Sorbonne Paris Cité

Plus en détail

La Certification de la Sécurité des Automatismes de METEOR

La Certification de la Sécurité des Automatismes de METEOR 1 La Certification de la Sécurité des Automatismes de METEOR 2 un mot sur METEOR 3 Le projet METEOR, c'est... un système automatique complexe fortement intégré matériel roulant, équipements électriques,

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Conception des systèmes répartis

Conception des systèmes répartis Conception des systèmes répartis Principes et concepts Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Octobre 2012 Gérard Padiou Conception des systèmes répartis 1 / 37 plan

Plus en détail

Systèmes et traitement parallèles

Systèmes et traitement parallèles Systèmes et traitement parallèles Mohsine Eleuldj Département Génie Informatique, EMI eleuldj@emi.ac.ma 1 Système et traitement parallèle Objectif Etude des architectures parallèles Programmation des applications

Plus en détail

Le Collège de France crée une chaire pérenne d Informatique, Algorithmes, machines et langages, et nomme le Pr Gérard BERRY titulaire

Le Collège de France crée une chaire pérenne d Informatique, Algorithmes, machines et langages, et nomme le Pr Gérard BERRY titulaire Communiquédepresse Mars2013 LeCollègedeFrancecréeunechairepérenned Informatique, Algorithmes,machinesetlangages, etnommeleprgérardberrytitulaire Leçoninauguralele28mars2013 2009avait marquéunpas importantdans

Plus en détail

Chapitre 1 : Introduction aux bases de données

Chapitre 1 : Introduction aux bases de données Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données

Plus en détail

Introduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr

Introduction aux systèmes temps réel. Iulian Ober IRIT ober@iut-blagnac.fr Introduction aux systèmes temps réel Iulian Ober IRIT ober@iut-blagnac.fr Définition Systèmes dont la correction ne dépend pas seulement des valeurs des résultats produits mais également des délais dans

Plus en détail

M1805 - Études et développement informatique

M1805 - Études et développement informatique Appellations (Métiers courants) Analyste décisionnel - Business Intelligence Analyste organique informatique Analyste-programmeur / Analyste-programmeuse informatique Chef de projet étude et développement

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

ECONOMIE GENERALE G. Carminatti-Marchand SEANCE III ENTREPRISE ET INTERNATIONALISATION

ECONOMIE GENERALE G. Carminatti-Marchand SEANCE III ENTREPRISE ET INTERNATIONALISATION ECONOMIE GENERALE G. Carminatti-Marchand SEANCE III ENTREPRISE ET INTERNATIONALISATION On constate trois grandes phases depuis la fin de la 2 ème guerre mondiale: 1945-fin 50: Deux blocs économiques et

Plus en détail

Puissances d un nombre relatif

Puissances d un nombre relatif Puissances d un nombre relatif Activités 1. Puissances d un entier relatif 1. Diffusion d information (Activité avec un tableur) Stéphane vient d apprendre à 10h, la sortie d une nouvelle console de jeu.

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Histoire de l Informatique

Histoire de l Informatique Histoire de l Informatique Abdelaaziz EL HIBAOUI Université Abdelelmalek Essaadi Faculté des Sciences de-tétouan hibaoui.ens@gmail.com 14 Feb 2015 A. EL HIBAOUI (FS-Tétouan) Architecture des ordinateurs

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

I.1- DÉFINITIONS ET NOTIONS DE BASE

I.1- DÉFINITIONS ET NOTIONS DE BASE I.1- DÉFINITIONS ET NOTIONS DE BASE Informatique Information Automatique Logiciels (Software) Matériels (Hardware) Définition de l information : On appelle une information tout ce qui est transmissible

Plus en détail

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

Métriques de performance pour les algorithmes et programmes parallèles

Métriques de performance pour les algorithmes et programmes parallèles Métriques de performance pour les algorithmes et programmes parallèles 11 18 nov. 2002 Cette section est basée tout d abord sur la référence suivante (manuel suggéré mais non obligatoire) : R. Miller and

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Diviser un nombre décimal par 10 ; 100 ; 1 000

Diviser un nombre décimal par 10 ; 100 ; 1 000 Diviser un nombre décimal par 10 ; 100 ; 1 000 Diviser un nombre décimal par 10 ; 100 ; 1 000. 23 1 et 2 Pauline collectionne les cartes «Tokéron» depuis plusieurs mois. Elle en possède 364 et veut les

Plus en détail

Voici une demande qui revient régulièrement lors de mes rencontres avec les employeurs :

Voici une demande qui revient régulièrement lors de mes rencontres avec les employeurs : Logique dépannage La logique de dépannage dépend d une multitude d aspect, et un de ses aspects que j ai pu constater avec le temps en tant que formateur est que les techniciens industriels apprennent

Plus en détail

L emprunt indivis - généralités

L emprunt indivis - généralités L emprunt indivis - généralités Les modalités de calcul d un échéancier de remboursement d un emprunt indivis forment un thème d étude des outils de gestion en BTS HR (partie mathématiques financières)

Plus en détail

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée. ANALYSE 5 points Exercice 1 : Léonie souhaite acheter un lecteur MP3. Le prix affiché (49 ) dépasse largement la somme dont elle dispose. Elle décide donc d économiser régulièrement. Elle a relevé qu elle

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

1. La sécurité applicative

1. La sécurité applicative ISO 27034 Caractéristiques et avantages pour les entreprises 1. La sécurité applicative v Quel est le poids de la sécurité applicative par rapport à la sécurité de l'information et par rapport à la sécurité

Plus en détail

Chapitre 10 Arithmétique réelle

Chapitre 10 Arithmétique réelle Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013

Plus en détail

C U R R I C U L U M V I T A E

C U R R I C U L U M V I T A E C U R R I C U L U M V I T A E Rashi da Gam ila PAQ UI O T INFORMATIONS PERSONNELLES Nom Adresse Situation matrimoniale Courrier électronique PAQUIOT, RASHIDA GAMILA CIV 190 RUE FREDERIC MISTRAL BASTIDE

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

M1805 - Études et développement informatique

M1805 - Études et développement informatique Appellations Analyste cogniticien / cogniticienne informatique Analyste concepteur / conceptrice informatique Concepteur / Conceptrice analyste informatique Concepteur / Conceptrice d'application informatique

Plus en détail

Chapitre 1 : Évolution COURS

Chapitre 1 : Évolution COURS Chapitre 1 : Évolution COURS OBJECTIFS DU CHAPITRE Savoir déterminer le taux d évolution, le coefficient multiplicateur et l indice en base d une évolution. Connaître les liens entre ces notions et savoir

Plus en détail

Dispositif e-learning déployé sur les postes de travail

Dispositif e-learning déployé sur les postes de travail Résumé : Ce document fait l inventaire du matériel et des moyens nécessaires à la production de sessions de formation à distance à partir des postes de travail des salariés bénéficiant d une connexion

Plus en détail

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

Plus en détail

Chapitre 1 Qu est-ce qu une expression régulière?

Chapitre 1 Qu est-ce qu une expression régulière? Chapitre 1 Qu est-ce qu une expression régulière? Les ordinateurs n ont pas du tout la même conception des textes que nous : pour nous, un texte est un ensemble d idées couchées sur papier. Nous nous en

Plus en détail

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007 Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007 page 1 / 10 abscisse addition additionner ajouter appliquer

Plus en détail

Programmes des classes préparatoires aux Grandes Ecoles

Programmes des classes préparatoires aux Grandes Ecoles Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voies : Mathématiques, physique et sciences de l'ingénieur (MPSI) Physique, chimie et sciences de l ingénieur (PCSI) Physique,

Plus en détail

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Machines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut

Plus en détail

Programmation linéaire

Programmation linéaire 1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit

Plus en détail

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/ Calculabilité Cours 3 : Problèmes non-calculables http://www.irisa.fr/lande/pichardie/l3/log/ Problèmes et classes de décidabilité Problèmes et classes de décidabilité Nous nous intéressons aux problèmes

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal

La demande Du consommateur. Contrainte budgétaire Préférences Choix optimal La demande Du consommateur Contrainte budgétaire Préférences Choix optimal Plan du cours Préambule : Rationalité du consommateur I II III IV V La contrainte budgétaire Les préférences Le choix optimal

Plus en détail

Objets et Programmation. origine des langages orientés-objet

Objets et Programmation. origine des langages orientés-objet Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève

Plus en détail

Pourquoi construire son PC?

Pourquoi construire son PC? Chapitre 1 Pourquoi construire son PC? De nombreuses marques proposent des ordinateurs tout faits, du très puissant au bon marché. Dès lors, pourquoi chercher à savoir ce qu il y a dans un ordinateur,

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

4.2 Unités d enseignement du M1

4.2 Unités d enseignement du M1 88 CHAPITRE 4. DESCRIPTION DES UNITÉS D ENSEIGNEMENT 4.2 Unités d enseignement du M1 Tous les cours sont de 6 ECTS. Modélisation, optimisation et complexité des algorithmes (code RCP106) Objectif : Présenter

Plus en détail

Séance 1 Méthodologies du génie logiciel

Séance 1 Méthodologies du génie logiciel Séance 1 Méthodologies du génie logiciel Objectifs : Histoire du développement du logiciel. La crise du logiciel. Explorer les différentes méthodologies de développement. Comprendre l importance d adopter

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov

Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov Olivier Hermant et Vivien Maisonneuve CRI, MINES ParisTech, PSL Research University prenom.nom@mines-paristech.fr

Plus en détail

Procédure d inscription pour une recherche personnelle de stage

Procédure d inscription pour une recherche personnelle de stage Procédure d inscription pour une recherche personnelle de stage 1. CONFIRMATION D EMBAUCHE Fournir au une lettre officielle d embauche de l entreprise : date de début et de fin de stage (durée du stage

Plus en détail

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

Test et Validation du Logiciel

Test et Validation du Logiciel Test et Validation du Logiciel McInfo4_ASR Tests Janvier 2009 Patrick FELIX patrick.felix@labri.fr IUT Bordeaux 1 Plan Introduction : Pourquoi de la VVT? 1 Introduction au test de logiciels 2 Le test fonctionnel

Plus en détail

Le Virtual PBX et les économies? Table of Contents. Qu est-ce que le Virtual PBX?

Le Virtual PBX et les économies? Table of Contents. Qu est-ce que le Virtual PBX? Le Virtual PBX et les économies? Table of Contents...1 Le Virtual PBX et les économies?...1 Qu est-ce que le Virtual PBX?...1 Avantages et désavantages...2 Investissement...2 Les fonctionnalités...2 Coûts

Plus en détail