Automatisation de la certification formelle de systèmes critiques par instrumentation d interpréteurs abstraits

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

Download "Automatisation de la certification formelle de systèmes critiques par instrumentation d interpréteurs abstraits"

Transcription

1 1 d Automatisation de la certification formelle de systèmes critiques par instrumentation d sous la direction de Michaël Périn Soutenance de Thèse de Doctorat Université de Grenoble - Laboratoire Verimag 27 Août 2010

2 2 Global d La programmation des ordinateurs est une activité difficile Il existe des programmes dont l utilisation est critique Il est nécessaire de valider la correction des programmes développés avant leur utilisation

3 3 Global d Pour résoudre ce problème il faut des méthodes à la fois efficaces et précises Développement de théories permettant de valider les programmes (Depuis Floyd-Hoare 1969) Ces théories conduisent à des outils de validation automatique (model-checkers,, prouveurs,...)

4 4 La Validation d Les Vérificateurs automatiques vérifient des propriétés données : Programme p Outil de Validation OK Propriété Ψ Ψ = def n i n + 2

5 4 La Validation d Les Vérificateurs automatiques vérifient des propriétés données : Programme p Outil de Validation OK Propriété Ψ Ψ = def n i n + 2

6 5 La Validation d Les Analyseurs statiques découvrent des propritétés Programme p Outil de Validation Programme p annoté par Ψ

7 6 Illustration d un outil de Validation d Example void exemple(int n){ int i = 0 ; while (i <= n) do { i = i + 2 ; } }

8 7 Illustration d un outil de Validation d Un programme peut être vu comme un système de transitions Example q 0 i := 0 i > n q 1 q 3 i <= n q 2 i := i + 2 void exemple(int n){ int i = 0 ; while (i <= n) do { i = i + 2 ; } } Les analyseurs statiques permettent de calculer des propriétés sur les programmes aux différents points de contrôle

9 7 Illustration d un outil de Validation d Un programme peut être vu comme un système de transitions Example q 0 i := 0 i > n q 1 q 3 i <= n q 2 i := i + 2 void exemple(int n){ int i = 0 ; while (i <= n) do { i = i + 2 ; } } Les analyseurs statiques permettent de calculer des propriétés sur les programmes aux différents points de contrôle

10 8 Illustration d un outil de Validation d Un programme peut être vu comme un système de transitions Example q 0 i := 0 {i n + 2} i > n q 1 q 3 i <= n q 2 {i n} i := i + 2 {n + 1 i i n + 2} void exemple(int n){ int i = 0 ; while (i <= n) do { i = i + 2 ; } } Les analyseurs statiques permettent de calculer des propriétés sur les programmes aux différents points de contrôle

11 9 d Quelle confiance avoir dans les outils de validation? Générale Les outils de validation sont des programmes Leur correction est à leur tour mise en question Objectif de la Certification Casser la chaîne de validation à l aide d arguments formels convaincants Garantir la correction des programmes avec un niveau de confiance optimal Solution employée Fournir des s formelles de correction des programmes

12 9 d Quelle confiance avoir dans les outils de validation? Générale Les outils de validation sont des programmes Leur correction est à leur tour mise en question Objectif de la Certification Casser la chaîne de validation à l aide d arguments formels convaincants Garantir la correction des programmes avec un niveau de confiance optimal Solution employée Fournir des s formelles de correction des programmes

13 9 d Quelle confiance avoir dans les outils de validation? Générale Les outils de validation sont des programmes Leur correction est à leur tour mise en question Objectif de la Certification Casser la chaîne de validation à l aide d arguments formels convaincants Garantir la correction des programmes avec un niveau de confiance optimal Solution employée Fournir des s formelles de correction des programmes

14 10 d La de programme Certifier un programme consiste à fournir une démonstration de sa correction Trois questions fondamentales : Comment modéliser les démonstrations? Les démonstrations sont des arbres exprimées dans un système formel de logique mathématique encodable en langage machine Comment construire les démonstrations? Les démonstrations sont construites interactivement avec des assistants à la (Coq, hol) Comment vérifier la validité des démonstrations? Les démonstrations sont vérifiées automatiquement par des critères syntaxiques

15 10 d La de programme Certifier un programme consiste à fournir une démonstration de sa correction Trois questions fondamentales : Comment modéliser les démonstrations? Les démonstrations sont des arbres exprimées dans un système formel de logique mathématique encodable en langage machine Comment construire les démonstrations? Les démonstrations sont construites interactivement avec des assistants à la (Coq, hol) Comment vérifier la validité des démonstrations? Les démonstrations sont vérifiées automatiquement par des critères syntaxiques

16 10 d La de programme Certifier un programme consiste à fournir une démonstration de sa correction Trois questions fondamentales : Comment modéliser les démonstrations? Les démonstrations sont des arbres exprimées dans un système formel de logique mathématique encodable en langage machine Comment construire les démonstrations? Les démonstrations sont construites interactivement avec des assistants à la (Coq, hol) Comment vérifier la validité des démonstrations? Les démonstrations sont vérifiées automatiquement par des critères syntaxiques

17 10 d La de programme Certifier un programme consiste à fournir une démonstration de sa correction Trois questions fondamentales : Comment modéliser les démonstrations? Les démonstrations sont des arbres exprimées dans un système formel de logique mathématique encodable en langage machine Comment construire les démonstrations? Les démonstrations sont construites interactivement avec des assistants à la (Coq, hol) Comment vérifier la validité des démonstrations? Les démonstrations sont vérifiées automatiquement par des critères syntaxiques

18 11 d faire confiance au vérificateur de s? La vérification des démonstrations est un problème de type-checking, algorithmiquement simple. Le vérificateur de est un programme de petite taille Respecte le critère de debruijn Les outils de développement de s n ont pas à être validés La certification a un niveau de confiance optimal

19 11 d faire confiance au vérificateur de s? La vérification des démonstrations est un problème de type-checking, algorithmiquement simple. Le vérificateur de est un programme de petite taille Respecte le critère de debruijn Les outils de développement de s n ont pas à être validés La certification a un niveau de confiance optimal

20 12 De la Validation à la Certification d Récapitulons la situation actuelle Valider outils complexes automatique Objectifs Lier le meilleurs des deux approches : Certifier simple vérificateur de s interactif Faciliter d utilisation des outils de validation Niveau de confiance optimal de la certification

21 12 De la Validation à la Certification d Récapitulons la situation actuelle Valider outils complexes automatique Objectifs Lier le meilleurs des deux approches : Certifier simple vérificateur de s interactif Faciliter d utilisation des outils de validation Niveau de confiance optimal de la certification

22 13 d Que faut-il certifier? Les outils de validation sont des programmes 2 approches : 1- Preuve de correction des outils de validation (Monniaux 98, Genet 03) Certification de l outil de validation Une unique, construite interactivement lors du développement de l outil 2 - Preuve de correction des verdicts des outils de validation (Pnueli et al 98) Certifier chaque verdict de l outil de validation Une par verdict, construite à chaque exécution de l outil Étendre l outil pour automatiser la certification

23 13 d Que faut-il certifier? Les outils de validation sont des programmes 2 approches : 1- Preuve de correction des outils de validation (Monniaux 98, Genet 03) Certification de l outil de validation Une unique, construite interactivement lors du développement de l outil 2 - Preuve de correction des verdicts des outils de validation (Pnueli et al 98) Certifier chaque verdict de l outil de validation Une par verdict, construite à chaque exécution de l outil Étendre l outil pour automatiser la certification

24 13 d Que faut-il certifier? Les outils de validation sont des programmes 2 approches : 1- Preuve de correction des outils de validation (Monniaux 98, Genet 03) Certification de l outil de validation Une unique, construite interactivement lors du développement de l outil 2 - Preuve de correction des verdicts des outils de validation (Pnueli et al 98) Certifier chaque verdict de l outil de validation Une par verdict, construite à chaque exécution de l outil Étendre l outil pour automatiser la certification

25 13 d Que faut-il certifier? Les outils de validation sont des programmes 2 approches : 1- Preuve de correction des outils de validation (Monniaux 98, Genet 03) Certification de l outil de validation Une unique, construite interactivement lors du développement de l outil 2 - Preuve de correction des verdicts des outils de validation (Pnueli et al 98) Certifier chaque verdict de l outil de validation Une par verdict, construite à chaque exécution de l outil Étendre l outil pour automatiser la certification

26 14 Travaux de doctorat réalisés d 1- Proposition d une méthodologie d analyseurs statiques à l aide de patrons de 2- Étude de cas sur un analyseur non-trivial d un analyseur statique de programmes manipulant des tableaux 3- Utilisation sur un système critique Certification à l aide de cet analyseur instrumenté de programmes critiques embarqués dans l avionique

27 14 Travaux de doctorat réalisés d 1- Proposition d une méthodologie d analyseurs statiques à l aide de patrons de 2- Étude de cas sur un analyseur non-trivial d un analyseur statique de programmes manipulant des tableaux 3- Utilisation sur un système critique Certification à l aide de cet analyseur instrumenté de programmes critiques embarqués dans l avionique

28 15 Plan d

29 16 Méthode suivie d q 0 i := 0 {i n + 2} i > n q 1 q 3 i <= n q 2 {i n} i := i + 2 {n + 1 i i n + 2} Utilisation de la méthode de Floyd-Hoare pour certifier que les propriétés calculées sont correctes

30 17 Méthode suivie d q 0 i := 0 {i n + 2} i > n q 1 q 3 i <= n q 2 {i n} i := i + 2 {n + 1 i i n + 2} Utilisation de la Logique de Hoare pour spécifier la correction de chaque transition du programme {i n + 2}i > n{n + 1 i i n + 2}

31 18 Méthode suivie d q 0 i := 0 {i n + 2} i > n q 1 q 3 i <= n q 2 {i n} i := i + 2 {n + 1 i i n + 2} Utilisation du calcul de plus faible pré-condition (wp) pour se ramener à des sous-buts de logique mathématique. i n + 2 wp((n + 1 i i n + 2), i > n) sem {i n + 2}i > n{n + 1 i i n + 2}

32 19 Méthode suivie d q 0 i := 0 {i n + 2} i > n q 1 q 3 i <= n q 2 {i n} i := i + 2 {n + 1 i i n + 2} Utilisation du calcul de plus faible pré-condition (wp) pour se ramener à des sous-buts de logique mathématique. i n + 2 (i > n n + 1 i i n + 2) sem {i n + 2}i > n{n + 1 i i n + 2}

33 20 Méthode suivie d q 0 i := 0 {i n + 2} i > n q 1 q 3 i <= n q 2 {i n} i := i + 2 {n + 1 i i n + 2} Utilisation de la déduction naturelle pour formaliser les s de ces sous-buts de logique mathématique.... i > n n + 1 i i n + 2 i i n + 2 (i > n n + 1 i i n + 2) sem {i n + 2}i > n{n + 1 i i n + 2}

34 21 d Prouver la correction de l analyse d une transition Analyze(Ψ, τ) {Ψ} q q {Ψ } τ {Ψ} τ {Ψ } Soit une propriété Ψ en q et une transition τ vers q

35 22 d Prouver la correction de l analyse d une transition Analyze(Ψ, τ) {Ψ} q q {Ψ } τ {Ψ} τ {Ψ } L analyseur calcule une propriété Ψ en q

36 23 d Prouver la correction de l analyse d une transition Analyze(Ψ, τ) {Ψ} q q {Ψ } τ {Ψ} τ {Ψ } Utilisation de la logique de Hoare pour spécifier τ

37 24 d {Ψ} Prouver la correction de l analyse d une transition q Analyze(Ψ, τ) τ Ψ = wp(ψ, τ) {Ψ} τ {Ψ } sem Utilisation du calcul de plus faible pré-condition q wp(ψ, τ) {Ψ }

38 25 d {Ψ} Prouver la correction de l analyse d une transition q Analyze(Ψ, τ) τ? Ψ = wp(ψ, τ) {Ψ} τ {Ψ } Comment prouver cette implication? sem q wp(ψ, τ) {Ψ }

39 26 Comment obtenir cette? d Utilisation d outils d aide à la Environnement de du système Coq Existence d heuristiques pour accélérer la construction de la Tout est possible mais tout est difficile car non entièrement automatique Exploitation de l intelligence des analyseurs statiques Se limiter aux programmes traités par l analyseur Se limiter aux propriétés calculées par l analyseur Exploiter les stratégies de l analyseur pour obtenir une stratégie de automatique et complète

40 26 Comment obtenir cette? d Utilisation d outils d aide à la Environnement de du système Coq Existence d heuristiques pour accélérer la construction de la Tout est possible mais tout est difficile car non entièrement automatique Exploitation de l intelligence des analyseurs statiques Se limiter aux programmes traités par l analyseur Se limiter aux propriétés calculées par l analyseur Exploiter les stratégies de l analyseur pour obtenir une stratégie de automatique et complète

41 27 d Intuition Les arguments pour justifier la correction d un calcul sont dans les étapes de ce calcul. Structurer les principes calculatoires sous forme d arbres de formelle Apporter des patrons de aux fonctions des programmes pour qu elles puissent justifier leurs résultats Définition Un patron de est une d ordre supérieur avec des sous-s variables, déterminées dynamiquement à l exécution.

42 27 d Intuition Les arguments pour justifier la correction d un calcul sont dans les étapes de ce calcul. Structurer les principes calculatoires sous forme d arbres de formelle Apporter des patrons de aux fonctions des programmes pour qu elles puissent justifier leurs résultats Définition Un patron de est une d ordre supérieur avec des sous-s variables, déterminées dynamiquement à l exécution.

43 28 Exemple d instrumentation d On considère la fonction Analyze() qui traite les transitions gardées des programmes : Analyze(Ψ, g) = def let r := conj(ψ, g) in r } {{ } Ψ Analyze π (Ψ, g) = def let r := conj(ψ, g) in (r, π(ψ, g)) H 1 {}}{ H 2 {}}{ Ψ g i Ψ g avec π(ψ, g) = g Ψ g i (H 2 ) φ (g Ψ g) i (H 1 ) {Ψ}g{Ψ g} } {{ } Ψ sem

44 28 Exemple d instrumentation d On considère la fonction Analyze() qui traite les transitions gardées des programmes : Analyze(Ψ, g) = def let r := conj(ψ, g) in r } {{ } Ψ Analyze π (Ψ, g) = def let r := conj(ψ, g) in (r, π(ψ, g)) H 1 {}}{ H 2 {}}{ Ψ g i Ψ g avec π(ψ, g) = g Ψ g i (H 2 ) φ (g Ψ g) i (H 1 ) {Ψ}g{Ψ g} } {{ } Ψ sem

45 28 Exemple d instrumentation d On considère la fonction Analyze() qui traite les transitions gardées des programmes : Analyze(Ψ, g) = def let r := conj(ψ, g) in r } {{ } Ψ Analyze π (Ψ, g) = def let r := conj(ψ, g) in (r, π(ψ, g)) H 1 {}}{ H 2 {}}{ Ψ g i Ψ g avec π(ψ, g) = g Ψ g i (H 2 ) φ (g Ψ g) i (H 1 ) {Ψ}g{Ψ g} } {{ } Ψ sem

46 29 d d une fonction Soit f un fonction qui pour une entrée x retourne r Soit Ψ la propriété exprimant la correction du résultat r Entrée x Fonction f Sortie r la fonction f consiste à lui fournir un patron de π(x) lui permettant de générer une π Ψ. Entrée x Fonction instrumentée f π Fonction f π(x) r, Sortie π Ψ Ψ

47 30 d let f = let f 1 =... let f 2 =.... let f n =... r = F (r 1,..., r n) Stratégies d instrumentation let f π = let f π 1 =... π1 let f π 2 =... π2. let f π n =... πn r = F (r 1, r 2,..., r n) π = C(π 1, π 2,..., π n) let f π = let f 1 =... let f 2 =.... let f n =... let t π =... π t r = F (r 1, r 2,...r 2) π = π t

48 30 d let f = let f 1 =... let f 2 =.... let f n =... r = F (r 1,..., r n) Stratégies d instrumentation let f π = let f π 1 =... π1 let f π 2 =... π2. let f π n =... πn r = F (r 1, r 2,..., r n) π = C(π 1, π 2,..., π n) let f π = let f 1 =... let f 2 =.... let f n =... let t π =... π t r = F (r 1, r 2,...r 2) π = π t

49 30 d let f = let f 1 =... let f 2 =.... let f n =... r = F (r 1,..., r n) Stratégies d instrumentation let f π = let f π 1 =... π1 let f π 2 =... π2. let f π n =... πn r = F (r 1, r 2,..., r n) π = C(π 1, π 2,..., π n) let f π = let f 1 =... let f 2 =.... let f n =... let t π =... π t r = F (r 1, r 2,...r 2) π = π t

50 31 Plan d

51 32 Interpréteurs d Les sont des analyseurs statiques de programmes s appuyant sur une abstraction (Cousot 77) Les propriétés satisfaites par les programmes analysés sont exprimées dans un domaine abstrait A (une syntaxe bien précise) : x = 3 x [3, 3] Ces propriétés sont d abord sur-approximées par une formule grossière de A : x [1, + [ La sur-approximation est ensuite améliorée jusqu à atteindre une propriété stable (non-améliorable) : x [2, 4] La stabilité est établie à l aide d un test d inclusion A qui décide l implication entre deux propriétés de A

52 32 Interpréteurs d Les sont des analyseurs statiques de programmes s appuyant sur une abstraction (Cousot 77) Les propriétés satisfaites par les programmes analysés sont exprimées dans un domaine abstrait A (une syntaxe bien précise) : x = 3 x [3, 3] Ces propriétés sont d abord sur-approximées par une formule grossière de A : x [1, + [ La sur-approximation est ensuite améliorée jusqu à atteindre une propriété stable (non-améliorable) : x [2, 4] La stabilité est établie à l aide d un test d inclusion A qui décide l implication entre deux propriétés de A

53 32 Interpréteurs d Les sont des analyseurs statiques de programmes s appuyant sur une abstraction (Cousot 77) Les propriétés satisfaites par les programmes analysés sont exprimées dans un domaine abstrait A (une syntaxe bien précise) : x = 3 x [3, 3] Ces propriétés sont d abord sur-approximées par une formule grossière de A : x [1, + [ La sur-approximation est ensuite améliorée jusqu à atteindre une propriété stable (non-améliorable) : x [2, 4] La stabilité est établie à l aide d un test d inclusion A qui décide l implication entre deux propriétés de A

54 32 Interpréteurs d Les sont des analyseurs statiques de programmes s appuyant sur une abstraction (Cousot 77) Les propriétés satisfaites par les programmes analysés sont exprimées dans un domaine abstrait A (une syntaxe bien précise) : x = 3 x [3, 3] Ces propriétés sont d abord sur-approximées par une formule grossière de A : x [1, + [ La sur-approximation est ensuite améliorée jusqu à atteindre une propriété stable (non-améliorable) : x [2, 4] La stabilité est établie à l aide d un test d inclusion A qui décide l implication entre deux propriétés de A

55 33 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 { } i > n q 1 q 3 i <= n q 2 { } i := i + 2 { }

56 33 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 { } i > n q 1 q 3 i <= n q 2 { } i := i + 2 { }

57 34 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 {[0, 0]} i > n q 1 q 3 i <= n q 2 {[0, 0]} i := i + 2 { }

58 35 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 {[0, 2]} i > n q 1 q 3 i <= n q 2 {[0, 0]} i := i + 2 { }

59 36 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 {[0, 2]} i > n q 1 q 3 i <= n q 2 {[0, 2]} i := i + 2 { }

60 37 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 {[0, + [} i > n q 1 q 3 i <= n { } q 2 {[0, 2]} i := i + 2 L analyse effectue un élargissement pour surapproximer l intervalle en q 1

61 38 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 {[0, + [} i > n q 1 q 3 i <= n q 2 {[0, n]} i := i + 2 { } Par la garde i<= n, entre q 1 et q 2, l intervalle calculé en q 1 est réduit à [0, n] en q 2

62 39 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 {[0, + [} i > n q 1 q 3 i <= n q 2 {[0, n]} i := i + 2 { } L intervalle calculé en q 1 satisfait désormais la garde entre q 1 et q 3

63 40 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 {[0, + [} i > n q 1 q 3 i <= n q 2 {[0, n]} i := i + 2 {[n + 1, + [} Par la garde i > n entre q 1 et q 3, l intervalle calculé en q 1 est réduit à [n + 1, + ] en q 3

64 41 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 {[0, n + 2]} i > n q 1 q 3 i <= n q 2 {[0, n]} i := i + 2 {[n + 1, + [} L intervalle obtenu en q 2 induit une amélioration de l intervalle calculé en q 1 L amélioration est détectée à l aide du test d inclusion I Par exemple, [0, n + 2] I [0, + ], car (0 i n + 2) (0 i)

65 42 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 {[0, n + 2]} i > n q 1 q 3 i <= n q 2 {[0, n]} i := i + 2 {[n + 1, n + 2]} L amélioration obtenue en q 1 est propagée en q 3 L analyse se stabilise et s arrête La stabilité est testée à l aide du test d inclusion I

66 42 d Exemple d interprétation Utilisation du domaine abstrait des intervalles : q 0 i := 0 {[0, n + 2]} i > n q 1 q 3 i <= n q 2 {[0, n]} i := i + 2 {[n + 1, n + 2]} L amélioration obtenue en q 1 est propagée en q 3 L analyse se stabilise et s arrête La stabilité est testée à l aide du test d inclusion I

67 43 d d Que faut-il instrumenter pour justifier les analyses? Notre objectif est de minimiser le nombre de fonctions à instrumenter 1 Seule la dernière étape est utile pour apporter des s de correction Les fonctions utiles pour découvrir les propriétés ne sont pas à instrumenter 2 Seuls les opérateurs du domaine abstrait sont à instrumenter pour générer les s! A décide la validité d une implication de deux formules de A Sa version instrumentée, ( π A ), prouve cette implication

68 43 d d Que faut-il instrumenter pour justifier les analyses? Notre objectif est de minimiser le nombre de fonctions à instrumenter 1 Seule la dernière étape est utile pour apporter des s de correction Les fonctions utiles pour découvrir les propriétés ne sont pas à instrumenter 2 Seuls les opérateurs du domaine abstrait sont à instrumenter pour générer les s! A décide la validité d une implication de deux formules de A Sa version instrumentée, ( π A ), prouve cette implication

69 43 d d Que faut-il instrumenter pour justifier les analyses? Notre objectif est de minimiser le nombre de fonctions à instrumenter 1 Seule la dernière étape est utile pour apporter des s de correction Les fonctions utiles pour découvrir les propriétés ne sont pas à instrumenter 2 Seuls les opérateurs du domaine abstrait sont à instrumenter pour générer les s! A décide la validité d une implication de deux formules de A Sa version instrumentée, ( π A ), prouve cette implication

70 44 d d par Ψ π A wp(ψ, τ) Ψ = wp(ψ, τ) {Ψ} τ {Ψ } sem Résultat Les fonctions d analyse ne sont pas à instrumenter : évite de définir des patrons de pour des heuristiques complexes (faisabilité) ne dépend pas de l analyse mais seulement du domaine abstrait (portabilité)

71 44 d d par Ψ π A wp(ψ, τ) Ψ = wp(ψ, τ) {Ψ} τ {Ψ } sem Résultat Les fonctions d analyse ne sont pas à instrumenter : évite de définir des patrons de pour des heuristiques complexes (faisabilité) ne dépend pas de l analyse mais seulement du domaine abstrait (portabilité)

72 45 d d par Ψ π A wp(ψ, τ) Ψ = wp(ψ, τ) {Ψ} τ {Ψ } Problème Si la formule wp(ψ, τ) n appartient pas au domaine abstrait A : sem développer un patron de pour justifier la normalisation de wp(ψ, τ) vers A ne dépend toujours pas de l analyse

73 46 d Méthodologie proposée d 1 Calculer les propriétés avec l analyseur statique 2 Rejouer la dernière itération avec la version instrumentée pour obtenir des s à partir des patrons de.

74 47 d Méthodologie proposée d 1 Calculer les propriétés avec l analyseur statique 2 Rejouer la dernière itération avec la version instrumentée pour obtenir des s à partir des patrons de. analyse stabilité A π A justification

75 48 d Méthodologie proposée d 1 Calculer les propriétés avec l analyseur statique 2 Rejouer la dernière itération avec la version instrumentée pour obtenir des s à partir des patrons de. analyse élargissement stabilité A π A justification

76 49 d Méthodologie proposée d 1 Calculer les propriétés avec l analyseur statique 2 Rejouer la dernière itération avec la version instrumentée pour obtenir des s à partir des patrons de. analyse élargissement amélioration stabilité A π A justification

77 50 d Méthodologie proposée d 1 Calculer les propriétés avec l analyseur statique 2 Rejouer la dernière itération avec la version instrumentée pour obtenir des s à partir des patrons de. analyse élargissement amélioration stabilité A π A justification

78 51 d Méthodologie proposée d 1 Calculer les propriétés avec l analyseur statique 2 Rejouer la dernière itération avec la version instrumentée pour obtenir des s à partir des patrons de. analyse élargissement amélioration stabilité A π A justification

79 52 d Résultats expérimentaux Étude de Cas : l interpréteur abstrait Enkidu Appliquer notre méthodologie générique sur le cas particulier Définition de patrons de pour instrumenter le test d inclusion (et deux autres opérateurs) du domaine abstrait utilisé par Enkidu Certifier automatiquement les propriétés de programmes calculées par Enkidu

80 53 d Enkidu est un analyseur statique de programmes manipulant des tableaux (Péron et Halbwachs 08) : Partitionne les tableaux selon un ensemble de tranches {ϕ 1, ϕ 2,..., ϕ n } Calcule et associe à chaque tranche une propriété logique sur leur contenu {ψ 1, ψ 2,..., ψ n } Associe à chaque point de contrôle du programme une propriété Ψ du contenu des tableaux par une conjonction des propriétés de tranche Ψ def = l, n k=1 ϕ k (l) ψ k (l) Les ϕ k et les ψ k sont des éléments du domaine des zones

81 53 d Enkidu est un analyseur statique de programmes manipulant des tableaux (Péron et Halbwachs 08) : Partitionne les tableaux selon un ensemble de tranches {ϕ 1, ϕ 2,..., ϕ n } Calcule et associe à chaque tranche une propriété logique sur leur contenu {ψ 1, ψ 2,..., ψ n } Associe à chaque point de contrôle du programme une propriété Ψ du contenu des tableaux par une conjonction des propriétés de tranche Ψ def = l, n k=1 ϕ k (l) ψ k (l) Les ϕ k et les ψ k sont des éléments du domaine des zones

82 54 Exemple d void exemple(int n){ int i = 0 ; while (i <= n) do { A[i] = 0 ; i = i + 1 ; } } On choisit la partition P : def ϕ 1 = l [0, i[ ψ 1 def ϕ 2 = l [i, i] ψ 2 def ϕ 3 = l [i +1, n] ψ 3 Représentation graphique des propriétés du tableau A[] : 0 i n ψ 1 ψ 2 ψ 3

83 55 d q 0 i := 0 i <= n i > n q 1 q 4 q 2 i := i + 1 A[i] := 0 q 3 Exemple On choisit la partition P : def ϕ 1 = l [0, i[ ψ 1 def ϕ 2 = l [i, i] ψ 2 def ϕ 3 = l [i +1, n] ψ 3 Représentation graphique de A[] aux points q 1 et q 3 : 0 ψ 1 i ψ 2 ψ 3 0 i n n i := i + 1 ψ 1 ψ 2 ψ 3

84 56 d q 0 i := 0 i <= n i > n q 1 q 4 q 2 i := i + 1 A[i] := 0 q 3 Exemple On choisit la partition P : def ϕ 1 = l [0, i[ ψ 1 def ϕ 2 = l [i, i] ψ 2 def ϕ 3 = l [i +1, n] ψ 3 La version instrumentée doit prouver le triplet : { l, l < i ψ 1 l = i ψ 2 }i := i+1{ l, l < i ψ 1 }

85 57 d q 0 i := 0 i <= n i > n q 1 q 4 q 2 i := i + 1 A[i] := 0 q 3 Exemple On choisit la partition P : def ϕ 1 = l [0, i[ ψ 1 def ϕ 2 = l [i, i] ψ 2 def ϕ 3 = l [i +1, n] ψ 3 Après application du calcul de plus faible pré-condition, il faut montrer l implication suivante : ( l, l < i ψ 1 ) ( l, l < i + 1 ψ l = i ψ 1 ) 2 sem { l, l < i ψ 1 }i := i+1{ l, l < i ψ l = i ψ 1 } 2

86 58 d Objectif Prouver l implication suivante : ( l, l < i ψ 1 l = i ψ 2 ) } {{ } Ψ Test d inclusion du domaine abstrait ( l, l < i + 1 ψ 1) } {{ } Ψ Utilisation du test d inclusion instrumenté Définition du test d inclusion Ψ = Ψ A Ψ ( q [1, n ], p [1, n], ϕ q I ϕ p ψ p I ψ q) avec P = def {ϕ 1..., ϕ n } et P = def {ϕ 1..., ϕ n }

87 58 d Objectif Prouver l implication suivante : ( l, l < i ψ 1 l = i ψ 2 ) } {{ } Ψ Test d inclusion du domaine abstrait ( l, l < i + 1 ψ 1) } {{ } Ψ Utilisation du test d inclusion instrumenté Définition du test d inclusion Ψ = Ψ A Ψ ( q [1, n ], p [1, n], ϕ q I ϕ p ψ p I ψ q) avec P = def {ϕ 1..., ϕ n } et P = def {ϕ 1..., ϕ n }

88 59 d du test d inclusion Patron de associé à A : H 2 z} { ϕ q par π I ϕ q ϕp ϕ p e H 9 1 z } { n^ φ l, ϕ p ψ p p=1 e nv l, ϕ p ψ p p=1 e [l/l ] >= pour nv tout ϕ p ψ p q [1, n ] p=1 e ϕ p ψ par π p I e ψ p ψ p ψ q ψ q e ϕ i (H 2 ) >; q ψ q... i Vn ϕ q ψ q q=1 n i [l /l] V l, ϕ q ψ q q=1 nv n i (H 1 ) V ( l, ϕ p ψ p) ( l, ϕ q ψ q ) p=1 q=1

89 60 d du test d inclusion Patron de associé à A : H 2 z} { ϕ q par π I ϕ q ϕp ϕ p e H 9 1 z } { n^ φ l, ϕ p ψ p p=1 e nv l, ϕ p ψ p p=1 e [l/l ] >= pour nv tout ϕ p ψ p q [1, n ] p=1 e ϕ p ψ par π p I e ψ p ψ p ψ q ψ q e ϕ i (H 2 ) >; q ψ q... i Vn ϕ q ψ q q=1 n i [l /l] V l, ϕ q ψ q q=1 nv n i (H 1 ) V ( l, ϕ p ψ p) ( l, ϕ q ψ q ) p=1 q=1

90 61 Implantation d Enkidu est codé en Ocaml et compte environ lignes. L implantation de comporte deux parties indépendantes : Librairies pour coder la logique et les s + traducteur de s vers le langage Coq (2000 lignes) Implantation des patrons de pour les domaine abstrait des zones et des propriétés de tableaux (500 lignes)

91 62 d Contributions et Perspectives Une méthodologie de certification par instrumentation : Automatise la construction de s Coq Nombre limité de fonctions à instrumenter Adaptée à des analyseurs statiques existants Expérimentation sur un analyseur complexe : Transformation d un l analyseur en un outil de certification automatique des opérateurs du domaine abstrait des propriétés de tableaux Application à une protocole de communication pour systèmes multi-tâches Perspectives : Appliquer notre méthodologie à des analyseurs de taille industrielle Appliquer notre méthodologie à des vérificateurs de propriétés de logique temporelle

92 63 d Merci de votre attention.

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

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

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

Resolution limit in community detection

Resolution limit in community detection Introduction Plan 2006 Introduction Plan Introduction Introduction Plan Introduction Point de départ : un graphe et des sous-graphes. But : quantifier le fait que les sous-graphes choisis sont des modules.

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

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

É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

Vérification formelle de la plate-forme Java Card

Vérification formelle de la plate-forme Java Card Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations

Plus en détail

Model checking temporisé

Model checking temporisé Model checking temporisé Béatrice Bérard LAMSADE Université Paris-Dauphine & CNRS berard@lamsade.dauphine.fr ETR 07, 5 septembre 2007 1/44 Nécessité de vérifier des systèmes... 2/44 Nécessité de vérifier

Plus en détail

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 1 de 46 Algorithmique Trouver et Trier Florent Hivert Mél : Florent.Hivert@lri.fr Page personnelle : http://www.lri.fr/ hivert 2 de 46 Algorithmes et structures de données La plupart des bons algorithmes

Plus en détail

Cours de Master Recherche

Cours de Master Recherche Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction

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

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit. Proposition de stage de BAC+4 ou BAC+5 Pro ou Recherche Etude comparative des outils de vérification d'algorithmes parallèles Logiciels (LSL), localisé à Palaiseau (Essonne), développe les outils d'aide

Plus en détail

Intelligence Artificielle Planification

Intelligence Artificielle Planification Intelligence Artificielle Planification Bruno Bouzy http://web.mi.parisdescartes.fr/~bouzy bruno.bouzy@parisdescartes.fr Licence 3 Informatique UFR Mathématiques et Informatique Université Paris Descartes

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

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs)

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs) (d après une idée du collège des Portes du Midi de Maurs) Table des matières Fiche professeur... 2 Fiche élève... 5 1 Fiche professeur Niveaux et objectifs pédagogiques 5 e : introduction ou utilisation

Plus en détail

Théorie de la Programmation

Théorie de la Programmation Théorie de la Programmation http://perso.ens-lyon.fr/daniel.hirschkoff/thpr hop Programmation, Théorie de la programmation Langages de programmation I il existe de nombreux langages de programmation I

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Analyse de sécurité de logiciels système par typage statique

Analyse de sécurité de logiciels système par typage statique Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction

Plus en détail

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH

Plus en détail

Processus d Informatisation

Processus d Informatisation Processus d Informatisation Cheminement de la naissance d un projet jusqu à son terme, deux grandes étapes : Recherche ou étude de faisabilité (en amont) L utilisateur a une idée (plus ou moins) floue

Plus en détail

Formula Negator, Outil de négation de formule.

Formula Negator, Outil de négation de formule. Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente

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

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

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

Certification de l assemblage de composants dans le développement de logiciels critiques

Certification de l assemblage de composants dans le développement de logiciels critiques Certification de l assemblage de composants dans le développement de logiciels critiques Philippe Baufreton 1, Emmanuel Chailloux 2, Jean-Louis Dufour 1, Grégoire Henry 3, Pascal Manoury 3, Etienne Millon

Plus en détail

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck)

Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck) Décision Markovienne appliquée à un jeu de stop ou encore : Pickomino (Heckmeck Am Bratwurmeck) Stéphane Cardon Nathalie Chetcuti-Sperandio Fabien Delorme Sylvain agrue CRI - Université d Artois {cardon,chetcuti,delorme,lagrue}@cril.univ-artois.fr

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

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

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

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

Comment réussir le déploiement de votre communauté B2B et réduire les coûts de votre chaîne logistique?

Comment réussir le déploiement de votre communauté B2B et réduire les coûts de votre chaîne logistique? Comment réussir le déploiement de votre communauté B2B et réduire les coûts de votre chaîne logistique? La chaîne d approvisionnement ne saurait plus fonctionner sans EDI. L enjeu est à présent d accélérer

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

Sujet de thèse CIFRE RESULIS / LGI2P

Sujet de thèse CIFRE RESULIS / LGI2P Ecole des Mines d Alès Laboratoire de Génie Informatique et d Ingénierie de Production LGI2P Nîmes Sujet de thèse CIFRE RESULIS / LGI2P Titre Domaine De l ingénierie des besoins à l ingénierie des exigences

Plus en détail

Utilisation des tableaux sémantiques dans les logiques de description

Utilisation des tableaux sémantiques dans les logiques de description Utilisation des tableaux sémantiques dans les logiques de description IFT6281 Web Sémantique Jacques Bergeron Département d informatique et de recherche opérationnelle Université de Montréal bergerja@iro.umontreal.ca

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription

Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription Vers l'orchestration de grilles de PC par les mécanismes de publicationsouscription Présentée par Leila Abidi Sous la direction de Mohamed Jemni & Christophe Cérin Plan Contexte Problématique Objectifs

Plus en détail

MABioVis. Bio-informatique et la

MABioVis. Bio-informatique et la MABioVis Modèles et Algorithmes pour la Bio-informatique et la Visualisation Visite ENS Cachan 5 janvier 2011 MABioVis G GUY MELANÇON (PR UFR Maths Info / EPI GRAVITE) (là, maintenant) - MABioVis DAVID

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

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion Vérification de logiciels par analyse statique Contexte et motivations Les techniques envisagées Evolution des processus Conclusion Contexte et motivations Specification Design architecture Revues and

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

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Jade. Projet Intelligence Artificielle «Devine à quoi je pense» Jade Projet Intelligence Artificielle «Devine à quoi je pense» Réalisé par Djénéba Djikiné, Alexandre Bernard et Julien Lafont EPSI CSII2-2011 TABLE DES MATIÈRES 1. Analyse du besoin a. Cahier des charges

Plus en détail

Cours Composant 2. Qualité logicielle et spécications algébriques

Cours Composant 2. Qualité logicielle et spécications algébriques UPMC Paris Universitas Master Informatique STL Cours Composant 2. Qualité logicielle et spécications algébriques c 2005-2008 Frédéric Peschanski UPMC Paris Universitas 24 février 2008 c 2005-2008 Frédéric

Plus en détail

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle

Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) IFT702 Planification en intelligence artificielle Francis BISSON (06 794 819) Kenny CÔTÉ (06 836 427) Pierre-Luc ROGER (06 801 883) PLANIFICATION DE TÂCHES DANS MS PROJECT IFT702 Planification en intelligence artificielle Présenté à M. Froduald KABANZA

Plus en détail

La gestion des contraintes pour modéliser les stratégies humaines d'ordonnancement et concevoir des interfaces homme-machine ergonomiques

La gestion des contraintes pour modéliser les stratégies humaines d'ordonnancement et concevoir des interfaces homme-machine ergonomiques La gestion des contraintes pour modéliser les stratégies humaines d'ordonnancement et concevoir des interfaces homme-machine ergonomiques Clément Guerin Sous la direction de J.M. Hoc et de N. Mebarki Réunion

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

Analyse,, Conception des Systèmes Informatiques

Analyse,, Conception des Systèmes Informatiques Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance

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

Apprentissage Automatique

Apprentissage Automatique Apprentissage Automatique Introduction-I jean-francois.bonastre@univ-avignon.fr www.lia.univ-avignon.fr Définition? (Wikipedia) L'apprentissage automatique (machine-learning en anglais) est un des champs

Plus en détail

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques

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

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Peut-on imiter le hasard?

Peut-on imiter le hasard? 168 Nicole Vogel Depuis que statistiques et probabilités ont pris une large place dans les programmes de mathématiques, on nous propose souvent de petites expériences pour tester notre perception du hasard

Plus en détail

L apprentissage automatique

L apprentissage automatique L apprentissage automatique L apprentissage automatique L'apprentissage automatique fait référence au développement, à l analyse et à l implémentation de méthodes qui permettent à une machine d évoluer

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

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe Karima Dhouib, Sylvie Després Faiez Gargouri ISET - Sfax Tunisie, BP : 88A Elbustan ; Sfax karima.dhouib@isets.rnu.tn,

Plus en détail

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de itemis France 2009 All rights reserved 1 Itemis en quelques mots Spécialisé dans l

Plus en détail

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Julien Jorge julien.jorge@univ-nantes.fr Laboratoire d Informatique de Nantes Atlantique,

Plus en détail

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation

Plus en détail

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language Unified Modeling Language UML Salima Hassas Version Cycle de vie du logiciel Client Besoins Déploiement Analyse Test Conception Cours sur la base des transparents de : Gioavanna Di Marzo Serugendo et Frédéric

Plus en détail

Modélisation multi-agents - Agents réactifs

Modélisation multi-agents - Agents réactifs Modélisation multi-agents - Agents réactifs Syma cursus CSI / SCIA Julien Saunier - julien.saunier@ifsttar.fr Sources www-lih.univlehavre.fr/~olivier/enseignement/masterrecherche/cours/ support/algofourmis.pdf

Plus en détail

Générer du code à partir d une description de haut niveau

Générer du code à partir d une description de haut niveau Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,

Plus en détail

Vérification formelle de la plate-forme Java Card

Vérification formelle de la plate-forme Java Card UNIVERSITÉ DE NICE - SOPHIA ANTIPOLIS École Doctorale STIC UFR Sciences THÈSE pour obtenir le titre de Docteur en Sciences de l Université de Nice - Sophia Antipolis Spécialité : Informatique présentée

Plus en détail

Étude de l'analyse statique de programmes synchrones par interprétation abstraite

Étude de l'analyse statique de programmes synchrones par interprétation abstraite Stage de fin de L3 École Normale Supérieure Département d'informatique Étude de l'analyse statique de programmes synchrones par interprétation abstraite Rapport de stage Alex AUVOLAT alex.auvolat@ens.fr

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur Université Paris-Sud Licence d Informatique Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur Adresse de l auteur : LIX École Polytechnique

Plus en détail

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle. Université Montpellier-II UFR des Sciences - Département Informatique - Licence Informatique UE GLIN302 - Programmation Applicative et Récursive Cours No 3 : Identificateurs, Fonctions, Premières Structures

Plus en détail

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

Problème : Calcul d'échéanciers de prêt bancaire (15 pt) Problème : Calcul d'échéanciers de prêt bancaire (15 pt) 1 Principe d'un prêt bancaire et dénitions Lorsque vous empruntez de l'argent dans une banque, cet argent (appelé capital) vous est loué. Chaque

Plus en détail

Notre modèle d engagement

Notre modèle d engagement Notre modèle d engagement 1. EVALUER L évaluation des compétences que vous souhaitez améliorer implique un vrai échange entre nos deux équipes, et une étude plus approfondie des écarts et des actions préalablement

Plus en détail

LES GENERATEURS DE NOMBRES ALEATOIRES

LES GENERATEURS DE NOMBRES ALEATOIRES LES GENERATEURS DE NOMBRES ALEATOIRES 1 Ce travail a deux objectifs : ====================================================================== 1. Comprendre ce que font les générateurs de nombres aléatoires

Plus en détail

Plan. Un modèle d organisation. Pour les Archives numériques. Présentation Groupe PIN. Claude HUC (CNES)

Plan. Un modèle d organisation. Pour les Archives numériques. Présentation Groupe PIN. Claude HUC (CNES) Un modèle d organisation Pour les Archives numériques Présentation Groupe PIN 1 septembre 2004 Claude HUC (CNES) 2004/09/01 1 Plan ½ Notre contexte : L archivage long terme des données spatiales l une

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

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Université Libre de Tunis

Université Libre de Tunis Ingénieur: Génie Informatique Code et Intitulé des Matières Enseignées Plan d'etudes : Semestre 1 S1-01 Algorithmique et Structures de Données 1 S1-02 Programmation C S1-03 Logiques Mathématiques S1-04

Plus en détail

DEMANDE D INFORMATION RFI (Request for information)

DEMANDE D INFORMATION RFI (Request for information) DOD SEICAM RFI Demande d information EVDEC Réf. : RFI_EVDEC- GT5_Outil_reporting_BI_v4.doc Page 1/11 DEMANDE D INFORMATION RFI (Request for information) OUTIL INTÉGRÉ DE REPORTING ET D ANALYSE DÉCISIONNELLE

Plus en détail

Les apports de l informatique. Aux autres disciplines

Les apports de l informatique. Aux autres disciplines Les apports de l informatique Aux autres disciplines Le statut de technologie ou de sous-discipline est celui de l importation l et de la vulgarisation Le statut de science à part entière est lorsqu il

Plus en détail

Programmation Par Contraintes

Programmation Par Contraintes Programmation Par Contraintes Cours 2 - Arc-Consistance et autres amusettes David Savourey CNRS, École Polytechnique Séance 2 inspiré des cours de Philippe Baptiste, Ruslan Sadykov et de la thèse d Hadrien

Plus en détail

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie 1 Présenté par: Yacine KESSACI Encadrement : N. MELAB E-G. TALBI 31/05/2011 Plan 2 Motivation

Plus en détail

MATH0062-1 ELEMENTS DU CALCUL DES PROBABILITES

MATH0062-1 ELEMENTS DU CALCUL DES PROBABILITES MATH0062-1 ELEMENTS DU CALCUL DES PROBABILITES REPETITIONS et PROJETS : INTRODUCTION F. Van Lishout (Février 2015) Pourquoi ce cours? Sciences appliquées Modélisation parfaite vs monde réel Comment réussir

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

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes. Promotion X 004 COURS D ANALYSE DES STRUCTURES MÉCANIQUES PAR LA MÉTHODE DES ELEMENTS FINIS (MEC 568) contrôle non classant (7 mars 007, heures) Documents autorisés : polycopié ; documents et notes de

Plus en détail

Sujet 1 : Diagnostique du Syndrome de l apnée du sommeil par des techniques d analyse discriminante.

Sujet 1 : Diagnostique du Syndrome de l apnée du sommeil par des techniques d analyse discriminante. Sujet 1 : Diagnostique du Syndrome de l apnée du sommeil par des techniques d analyse discriminante. Objectifs et formulation du sujet Le syndrome de l apnée du sommeil (SAS) est un problème de santé publique

Plus en détail

BACCALAURÉAT PROFESSIONNEL ÉPREUVE DE MATHEMATIQUES. EXEMPLE DE SUJET n 2

BACCALAURÉAT PROFESSIONNEL ÉPREUVE DE MATHEMATIQUES. EXEMPLE DE SUJET n 2 Exemple de sujet n 2 Page 1/7 BACCALAURÉAT PROFESSIONNEL ÉPREUVE DE MATHEMATIQUES EXEMPLE DE SUJET n 2 Ce document comprend : Pour l examinateur : - une fiche descriptive du sujet page 2/7 - une fiche

Plus en détail

Tout au long de votre cursus Quel métier futur? Dans quel secteur d activité? En fonction de vos goûts et aptitudes et du «niveau d emploi» dans ce

Tout au long de votre cursus Quel métier futur? Dans quel secteur d activité? En fonction de vos goûts et aptitudes et du «niveau d emploi» dans ce Tout au long de votre cursus Quel métier futur? Dans quel secteur d activité? En fonction de vos goûts et aptitudes et du «niveau d emploi» dans ce «profil» S orienter (éventuellement se réorienter) dans

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Diagramme de classes

Diagramme de classes Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :

Plus en détail

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht.

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht. Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS IDS2014, Nailloux 26-28/05/2014 pascal.dayre@enseeiht.fr 1 MVC et le web 27/05/14 2 L'évolution des systèmes informatiques

Plus en détail

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P EUROCOPTER SAS Groupe EADS Marignane Ecole des Mines d Alès Laboratoire de Génie Informatique et d Ingénierie de Production LGI2P Nîmes Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P Titre Domaine

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

Urbanisation de système d'information. PLM 6 (Product Lifecycle Management) Collaboration et partage d'informations

Urbanisation de système d'information. PLM 6 (Product Lifecycle Management) Collaboration et partage d'informations Urbanisation de système d'information PLM 6 (Product Lifecycle Management) Collaboration et partage d'informations Gestion de données techniques et Gestion électronique de documents Diversité des modalités

Plus en détail

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence É C O L E D I N G É N I E U R D E S T E C H N O L O G I E S D E L I N F O R M A T I O N E T D E L A C O M M U N I C A T I O N Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION Mentions

Plus en détail

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018

UFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018 UFR d Informatique FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018 Objectif L UFR d informatique propose au niveau du master, deux spécialités sous la mention informatique

Plus en détail

Introduction au datamining

Introduction au datamining Introduction au datamining Patrick Naïm janvier 2005 Définition Définition Historique Mot utilisé au départ par les statisticiens Le mot indiquait une utilisation intensive des données conduisant à des

Plus en détail

INGENIERIE DES SYSTEMES INFORMATIQUES - PARCOURS : MOBILITE ET CLOUD COMPUTING

INGENIERIE DES SYSTEMES INFORMATIQUES - PARCOURS : MOBILITE ET CLOUD COMPUTING INGENIERIE DES SYSTEMES INFORMATIQUES - PARCOURS : MOBILITE ET CLOUD COMPUTING Préparez ce diplôme à l école de d ingénierie de l IGA OBJECTIFS DE LA FORMATION Dans un contexte de mutation économique et

Plus en détail

Classification non supervisée

Classification non supervisée AgroParisTech Classification non supervisée E. Lebarbier, T. Mary-Huard Table des matières 1 Introduction 4 2 Méthodes de partitionnement 5 2.1 Mesures de similarité et de dissimilarité, distances.................

Plus en détail

Introduction à la sécurité Cours 8 Infrastructure de clés publiques. Catalin Dima

Introduction à la sécurité Cours 8 Infrastructure de clés publiques. Catalin Dima Introduction à la sécurité Cours 8 Infrastructure de clés publiques Catalin Dima 1 Gestion des clés La gestion des clés concerne : La distribution de clés cryptographiques, Les mécanismes utilisés pour

Plus en détail