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.

Analyse abstraite de missions sous PILOT

Analyse abstraite de missions sous PILOT Analyse abstraite de missions sous PILOT Damien Massé EA 3883, Université de Bretagne Occidentale, Brest damien.masse@univ-brest.fr Résumé Nous étudions la possibilité de réaliser un analyseur par interprétation

Plus en détail

Analyse statique de programmes et interprétation abstraite. Olivier Bouissou

Analyse statique de programmes et interprétation abstraite. Olivier Bouissou Analyse statique de programmes et interprétation abstraite Olivier Bouissou Organisation du cours. Intervenants : cours et TP assurés par Olivier Bouissou (olivier.bouissou@cea.fr) - CEA LIST. Déroulement

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

Analyse de programme

Analyse de programme Analyse de programme À quoi ça sert? Comment ça marche? Bertrand Jeannet et Alain Girault INRIA Rhône-Alpes 25 janvier 2012 A. Girault et B. Jeannet (INRIA) Analyse de programme 25 janvier 2012 1 / 41

Plus en détail

Analyse de programmes par interprétation abstraite

Analyse de programmes par interprétation abstraite Analyse de programmes par interprétation abstraite Marc PEGON marc.pegon@ensimag.imag.fr Ensimag - Grenoble INP Encadrants David MONNIAUX Matthieu MOY 1 / 21 Analyse statique : obtenir automatiquement

Plus en détail

ACI Sécurité ALIDECS:

ACI Sécurité ALIDECS: ACI Sécurité ALIDECS: Langages et Atelier Integrés pour le Développement de Composants Embarqués Sûrs Réunion de démarrage LIP6, 21 et 22 octobre 2004 Marc Pouzet 1 Page web http://www-verimag.imag.fr/synchrone/alidecs/

Plus en détail

Langages de programmation: approche scientifique

Langages de programmation: approche scientifique IGE 2004 - ENS 29 juin 2004 Présentation au CGTI 1 Informatique théorique 2 3 Une science? Informatique théorique Chaque science repose un dogme fondamental. Les mathématiques Les raisonnements formels

Plus en détail

Certifying an Automated Code Generator Using Formal Tools

Certifying an Automated Code Generator Using Formal Tools Certifying an Automated Code Generator Using Formal Tools Preliminary experiments in the GeneAuto Project N. Izerrouken, X. Thirioux, M. Pantel, M. Strecker IRIT-ACADIE Continental Automotive Toulouse,

Plus en détail

Les méthodes formelles dans le cycle de vie. Virginie Wiels ONERA/DTIM Virginie.Wiels@onera.fr

Les méthodes formelles dans le cycle de vie. Virginie Wiels ONERA/DTIM Virginie.Wiels@onera.fr Les méthodes formelles dans le cycle de vie Virginie Wiels ONERA/DTIM Virginie.Wiels@onera.fr Plan Introduction Différentes utilisations possibles Différentes techniques pour différentes propriétés à différents

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

Machine de Turing. Informatique II Algorithmique 1

Machine de Turing. Informatique II Algorithmique 1 Machine de Turing Nous avons vu qu un programme peut être considéré comme la décomposition de la tâche à réaliser en une séquence d instructions élémentaires (manipulant des données élémentaires) compréhensibles

Plus en détail

APRON: Analyse de PRogrammes Numérique

APRON: Analyse de PRogrammes Numérique Introduction APRON: Analyse de PRogrammes Numérique Projet 2004 François Irigoin École des Mines de Paris - Centre de Recherche en Informatique 17 novembre 2004 Introduction Pourquoi? Analyse statique

Plus en détail

Correction de programmes : Logique de Hoare

Correction de programmes : Logique de Hoare 16 juillet 2009 Logique et informatique Vis-à-vis de l informatique la logique a au moins 2 rôles : 1 Externe et théorique (fondements de l informatique - Électif en S4) : Logique comme méta-informatique

Plus en détail

Chap. 2. Langages et automates

Chap. 2. Langages et automates Chapitre 2. Langages et automates 1. Quelques définitions et description d un langage. 2. Les expressions régulières. 3. Les automates fini déterministes et non-déterministes. 4. Construction automatique

Plus en détail

BRILLANT modèle de développement libre et recherche scientifique : une dynamique autour de B?

BRILLANT modèle de développement libre et recherche scientifique : une dynamique autour de B? BRILLANT modèle de développement libre et recherche scientifique : une dynamique autour de B? Georges Mariano and Jean-Louis Boulanger georges.mariano@inrets.fr -Jean-Louis.Boulanger@hds.utc.fr INRETS

Plus en détail

Algorithmique et Analyse d Algorithmes

Algorithmique et Analyse d Algorithmes Algorithmique et Analyse d Algorithmes L3 Info Cours 5 : Structures de données linéaires Benjamin Wack 2015-2016 1 / 37 La dernière fois Logique de Hoare Dichotomie Aujourd hui Type Abstrait de Données

Plus en détail

FOCAL. Un atelier de construction modulaire de logiciels Tentant de répondre aux besoins de la Sûreté de Fonctionnement et de la Sécurité

FOCAL. Un atelier de construction modulaire de logiciels Tentant de répondre aux besoins de la Sûreté de Fonctionnement et de la Sécurité FOCAL Un atelier de construction modulaire de logiciels Tentant de répondre aux besoins de la Sûreté de Fonctionnement et de la Sécurité 1 Groupe FOCAL M. Jaume, T. Hardin, R. Rioboo - SPI, LIP6 D. Delahaye,

Plus en détail

Vers une implantation générique validée expérimentalement des domaines abstraits?

Vers une implantation générique validée expérimentalement des domaines abstraits? Vers une implantation générique validée expérimentalement des domaines abstraits? Duong NGUYEN, CRI/ENSMP APRON - Kickoff Meeting Paris 28 Octobre 2004 Partie 1 Introduction 1 Contexte Analyse statique

Plus en détail

Les limites théoriques de l informatique Les problèmes indécidables

Les limites théoriques de l informatique Les problèmes indécidables Les limites théoriques de l informatique Les problèmes indécidables Samuel Fiorini - Gilles Geeraerts - Jean-François Raskin Université Libre de Bruxelles Académie Royale des Sciences Bruxelles 3/3/2010

Plus en détail

Gene-Auto, Projet ITEA 05018 IDM pour la génération de code critique certifié Validation et Vérification de transformations

Gene-Auto, Projet ITEA 05018 IDM pour la génération de code critique certifié Validation et Vérification de transformations Gene-Auto, Projet ITEA 05018 IDM pour la génération de code critique certifié Validation et Vérification de transformations Journées GDR GPL Transformations de modèles et de programmes 18 janvier 2008

Plus en détail

Analyse statique de SCADE par interprétation abstraite

Analyse statique de SCADE par interprétation abstraite Analyse statique de SCADE par interprétation abstraite soutenance de stage Alex AUVOLAT ANSYS-Esterel Technologies sous l encadrement de Jean-Louis Colaço Juin-Juillet 2014 1/33 Introduction SCADE : programmation

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

B : Une méthode de développement de logiciels sûrs

B : Une méthode de développement de logiciels sûrs B : Une méthode de développement de logiciels sûrs Loïc PELHATE, Responsable de l Atelier des Logiciels de Sécurité de l Ingénierie du Transport Ferroviaire loic.pelhate@ratp.fr 9/11/01 1 1 Plan Contexte

Plus en détail

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d

Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Configuration et Déploiement d Applications Réparties par Intégration de l Hétérogénéité des Implémentations dans un Langage de Description d Architecture Doctorant: Directeurs de thèse: Bechir ZALILA

Plus en détail

Méthodes de test. Mihaela Sighireanu

Méthodes de test. Mihaela Sighireanu UFR d Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/ sighirea/cours/methtest/ Partie I 1 Propriétés 2 Un peu de génie logiciel de test 3 Eléments Problèmes Point

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

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

Introduction au model-checking et application à la vérification des protocoles cryptographiques

Introduction au model-checking et application à la vérification des protocoles cryptographiques Introduction au model-checking et application à la vérification des protocoles cryptographiques Prof. John MULLINS École Polytechnique de Montréal Prof. John MULLINS (École Polytechnique) Introduction

Plus en détail

I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel

I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel Introduction Notre contexte : pas possible d exprimer toutes les combinaisons de DT. Le test fonctionnel est basé sur la spécification/interface

Plus en détail

Introduction à la programmation en variables entières Cours 3

Introduction à la programmation en variables entières Cours 3 Introduction à la programmation en variables entières Cours 3 F. Clautiaux francois.clautiaux@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 272 Sommaire Notion d heuristique Les algorithmes gloutons

Plus en détail

Sécurité des logiciels et analyse statique

Sécurité des logiciels et analyse statique Sécurité des logiciels et analyse statique David Pichardie Projet Lande, INRIA Rennes - Bretagne Atlantique Introduction générale à l analyse statique Analyse de programme Objet : déduire mécaniquement

Plus en détail

Le Répertoire National des Certifications Professionnelles (RNCP) Résumé descriptif de la certification

Le Répertoire National des Certifications Professionnelles (RNCP) Résumé descriptif de la certification 1 sur 8 26/09/2013 16:49 Le Répertoire National des Certifications Professionnelles (RNCP) Résumé descriptif de la certification Intitulé Licence : Licence Sciences, technologies, santé mention Informatique

Plus en détail

Points fixes de fonctions à domaine fini

Points fixes de fonctions à domaine fini ÉCOLE POLYTECHNIQUE ÉCOLE NORMALE SUPÉRIEURE DE CACHAN ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION 2013 FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE

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

Objectifs du cours d aujourd hui. Informatique I : Cours d introduction à l informatique et à la programmation Structures de Données Abstraites & Tris

Objectifs du cours d aujourd hui. Informatique I : Cours d introduction à l informatique et à la programmation Structures de Données Abstraites & Tris Objectifs du cours d aujourd hui Informatique I : Cours d introduction à l informatique et à la programmation Structures de Données Abstraites & Tris Continuer l approfondissement de la programmation de

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 5 : Les Tableaux PLAN DE LA SÉANCE Comprendre l utilité des tableaux Apprendre à manipuler

Plus en détail

Avec vous, pour vos projets, à chaque instant. Utilisation des réseaux de Pétri avec GRIF

Avec vous, pour vos projets, à chaque instant. Utilisation des réseaux de Pétri avec GRIF Avec vous, pour vos projets, à chaque instant Utilisation des réseaux de Pétri avec GRIF 2010 Projets pour le grand accélérateur de particules GANIL CEA/CNRS Vérification des automatismes de gestion du

Plus en détail

Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013»

Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013» Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013» I Objectifs Niveau fondamental : «on se fixe pour objectif la

Plus en détail

Analyse statique de programmes manipulant des tableaux

Analyse statique de programmes manipulant des tableaux Analyse statique de programmes manipulant des tableaux Valentin Perrelle To cite this version: Valentin Perrelle. Analyse statique de programmes manipulant des tableaux. Other [cs.oh]. Université de Grenoble,

Plus en détail

Heuristique et métaheuristique. 8. Optimisation combinatoire et métaheuristiques. Optimisation combinatoire. Problème du voyageur de commerce

Heuristique et métaheuristique. 8. Optimisation combinatoire et métaheuristiques. Optimisation combinatoire. Problème du voyageur de commerce Heuristique et métaheuristique IFT1575 Modèles de recherche opérationnelle (RO) 8. Optimisation combinatoire et métaheuristiques Un algorithme heuristique permet d identifier au moins une solution réalisable

Plus en détail

Techniques et outils de test pour les logiciels réactifs synchrones

Techniques et outils de test pour les logiciels réactifs synchrones Journées Systèmes et Logiciels Critiques Institut IMAG ; 14-16 nombre 2000 Techniques et outils de test pour les logiciels réactifs synchrones Farid Ouabdesselam 1 Méthodes de test : classification générale

Plus en détail

ACADiE : Assistance à la Certification d Applications Distribuées et Embarquées

ACADiE : Assistance à la Certification d Applications Distribuées et Embarquées ACADiE : Assistance à la Certification d Applications Distribuées et Embarquées Permanents (11) Doctorants (10) Permanents Doctorants Jean-Paul Bodeveix Julien Brunel Xavier Crégut Benoît Combemale Mamoun

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

Conclusions et Perspectives

Conclusions et Perspectives 8 Conclusions et Perspectives Ce chapitre conclut la thèse en donnant un bilan du travail effectué et les perspectives envisageables au terme de cette recherche. Nous rappelons tout d abord les principales

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

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

Programme Luminy 2014!

Programme Luminy 2014! Programme Luminy 2014 Lundi 21 Avril Lundi 10h45 Richard Lassaigne Université Paris Diderot Introduction à la théorie de la complexité. Lundi 14h Thierry Dumont Math-Info Paris 10 Utilisation de logiciels

Plus en détail

Analyse Statique de Programmes

Analyse Statique de Programmes Analyse statique et application. Typage. Analyse de flots de données. Exemples de transformations simples de programmes au niveau source. Prépa Agreg de Maths, option Info - ENS Cachan-Bretagne Thomas

Plus en détail

Raisonnement symbolique et géométrique pour la robotique mobile

Raisonnement symbolique et géométrique pour la robotique mobile Introduction à la réunion finale Raisonnement symbolique et géométrique pour la robotique mobile J. Guitton, J.L. Farges Control Architectures of Robots - Bourges - 30 mai 2008 1 Plan Introduction Vers

Plus en détail

La programmation Impérative par le Langage C

La programmation Impérative par le Langage C La programmation Impérative par le Langage C 1. Introduction 1.1 Qu est-ce que la programmation impérative? Un programme est constitué de plusieurs lignes d instructions. Chaque instruction permet d effectuer

Plus en détail

Présentation du laboratoire Verimag Vérification et langages synchrones

Présentation du laboratoire Verimag Vérification et langages synchrones Présentation du laboratoire Verimag Vérification et langages synchrones Mathias Péron journée des doctorants de MSTII Le laboratoire Verimag domaine logiciels et systèmes temps réel critiques. tutelles

Plus en détail

Algorithmes et méthodes pour la fiabilité numérique : Partie 3 : transformation de programmes

Algorithmes et méthodes pour la fiabilité numérique : Partie 3 : transformation de programmes Algorithmes et méthodes pour la fiabilité numérique : Partie 3 : transformation de programmes Matthieu Martel Laboratoire ELIAUS-DALI Université de Perpignan Via Domitia matthieu.martel@univ-perp.fr 1

Plus en détail

Exercice 1 : Questions diverses (5 points)

Exercice 1 : Questions diverses (5 points) Université Claude Bernard Lyon 1 Licence Sciences, Technologies, Santé L2 Année 2010-2011, 2ème semestre LIF5 Algorithmique & Programmation procédurale Contrôle final du 20 juin 2011 Durée : 1h30 Note

Plus en détail

Application industrielle de la Méthode formelle B

Application industrielle de la Méthode formelle B Application industrielle de la Méthode formelle B Guilhem Pouzancre Thierry Servat C novembre l e a r S 2005 y Contact@Clearsy.com EUROPARC de Pichaury Bâtiment C1 1330, av. Guillibert de la Lauzière 13

Plus en détail

Patrons de conception prouvés

Patrons de conception prouvés Patrons de conception prouvés Thierry Lecomte 1 Dominique Méry 2 Dominique Cansell 2 (1) ClearSy, 320, avenue Archimède, Les Pléiades 3 Bât A 13857 Aix en Provence, France. (2) Loria, Université Henri

Plus en détail

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème.

- Mobiliser les résultats sur le second degré dans le cadre de la résolution d un problème. Mathématiques - classe de 1ère des séries STI2D et STL. 1. Analyse On dote les élèves d outils mathématiques permettant de traiter des problèmes relevant de la modélisation de phénomènes continus ou discrets.

Plus en détail

Contributions à l analyse statique de programmes manipulant des tableaux

Contributions à l analyse statique de programmes manipulant des tableaux THÈSE pour obtenir le grade de DOCTEUR DE L UNIVERSITÉ DE GRENOBLE Spécialité : Informatique selon l arrêté ministériel du 7 août 2006 préparée au laboratoire Vérimag sous la direction de Nicolas Halbwachs

Plus en détail

6. Des objets bien conçus

6. Des objets bien conçus Conception objet en Java avec BlueJ une approche interactive 6. Des objets bien conçus David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Conception objet en Java avec

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

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

Vers la certification des applications Java Card TM

Vers la certification des applications Java Card TM AS CNRS Sécurité logicielle : modèles et vérification Vers la certification des applications Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 20-21 février 2003

Plus en détail

Analyse de programme et analyse d automate

Analyse de programme et analyse d automate Introduction Analyse de programme et analyse d automate Projet 2004 François Irigoin École des Mines de Paris - Centre de Recherche en Informatique 20 septembre 2005 Introduction Les questions posées Pas

Plus en détail

nulles dans un langage à objets

nulles dans un langage à objets Prévention de déréférencement de références nulles dans un langage à objets Jean-Sébastien Gélinas, Étienne M. Gagnon, Jean Privat Université du Québec à Montréal Langages et Modèles à Objets Nancy 27

Plus en détail

Sémantique des Langages de Programmation

Sémantique des Langages de Programmation Sémantique des Langages de Programmation Introduction Stefano Guerrini stefano.guerrini@univ-paris13.fr LIPN - Institut Galilée, Université Paris Nord 13 Sup Galillée Informatique, 1ère année 2009 2010

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

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

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

Rapport de TER: Analyse de pointeur dans LLVM

Rapport de TER: Analyse de pointeur dans LLVM Rapport de TER: Analyse de pointeur dans LLVM Aurélien CHEMIER Janvier-Février 2014 Résumé Les optimisations réalisées à l intérieur d un compilateur, pour améliorer l efficacité du code généré, ont besoin

Plus en détail

MODELISATION ET VERIFICATION DE POLITIQUES DE SECURITE A L AIDE DE LA METHODE B

MODELISATION ET VERIFICATION DE POLITIQUES DE SECURITE A L AIDE DE LA METHODE B MODELISATION ET VERIFICATION DE POLITIQUES DE SECURITE A L AIDE DE LA METHODE B Amal HADDAD 1 ère année de thèse INPG LSR VASCO Directeurs : Mme. Marie Laure POTET M. Yves LEDRU Cadre du travail Problématique

Plus en détail

Plan. 1 Invariants, pré et post conditions. 2 Des formules logiques pour exprimer des propriétés

Plan. 1 Invariants, pré et post conditions. 2 Des formules logiques pour exprimer des propriétés Initiation au Génie Logiciel Cours 6 Propriétés logiques et programmation par contrats T. Genet (genet@irisa.fr) (ISTIC/IRISA) GEN-6 1/ 22 T. Genet (genet@irisa.fr) (ISTIC/IRISA) GEN-6 2/ 22 Invariants,

Plus en détail

Système. Introduction aux systèmes informatiques

Système. Introduction aux systèmes informatiques Introduction aux systèmes informatiques Système Un système est une collection organisée d'objets qui interagissent pour former un tout Objets = composants du système Des interconnexions (liens) entre les

Plus en détail

Rapprocher les méthodes formelles, l analyse statique et les tests. 29 mai 2013

Rapprocher les méthodes formelles, l analyse statique et les tests. 29 mai 2013 Rapprocher les méthodes formelles, l analyse statique et les tests 29 mai 2013 Présentation du projet Déroulement du projet Réalisations Démonstrations Perspectives Présentation du projet Déroulement du

Plus en détail

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce

Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce Année 2007-2008 Projet informatique «Voyageur de commerce» Résolution approchée par algorithme génétique du problème du voyageur de commerce B. Monsuez Projet informatique «Voyageur de commerce» Résolution

Plus en détail

Evaluation de la Sûreté de Fonctionnement des logiciels du SAET Météor : Bilan et perspectives

Evaluation de la Sûreté de Fonctionnement des logiciels du SAET Météor : Bilan et perspectives Evaluation de la Sûreté de Fonctionnement des logiciels du SAET Météor : Bilan et perspectives Loïc PELHATE Responsable de l Atelier de Qualification des Logiciels de la RATP (AQL) PLAN La sécurité du

Plus en détail

Comment gagner confiance en C?

Comment gagner confiance en C? CHRONIQUE DOI:10.3166/TSI.26.1195-1200 c 2007 Lavoisier, Paris Comment gagner confiance en C? Le langage C est très utilisé dans l industrie, en particulier pour développer du logiciel embarqué. Un des

Plus en détail

Analyse de l introduction d anti-patrons de testabilité au cours de développement

Analyse de l introduction d anti-patrons de testabilité au cours de développement Analyse de l introduction d anti-patrons de testabilité au cours de développement Equipe VASCO MUHAMMAD RABEE SHAHEEN LYDIE DU BOUSQUET 22 Octobre 2009 Journée SEmba 1/ 26 Analyse de l introduction d anti-patrons

Plus en détail

Introduction aux Composants Logiciels

Introduction aux Composants Logiciels Introduction aux Composants Logiciels Christian Pérez LIP/INRIA Année 2010-11 Plan Introduction aux composants logiciels Pourquoi des composants logiciels Notions de composants logiciels Conclusion Survol

Plus en détail

Un outil de modélisation des systèmes

Un outil de modélisation des systèmes Un outil de modélisation des systèmes Florent Patin Le 17 mars 2006 Présentation AFADL 06 C L E A R S Y EUROPARC de Pichaury Bâtiment C2 1330, av. Guillibert de la Lauzière 13 856 Aix en Provence Cedex

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

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

Baccalauréat ES Polynésie 7 juin 2013

Baccalauréat ES Polynésie 7 juin 2013 Baccalauréat ES Polnésie 7 juin 2013 EXERCICE 1 Cet exercice est un questionnaire à choix multiples. Pour chaque question, une seule des quatre réponses proposées est correcte. Une réponse juste rapporte

Plus en détail

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/ données pr ogramme 11111101 11001101 01000101 b us disque ma gnétique processeur écran Structures de données et algorithmes Ordinateurs Gilles Falquet, printemps-été 2002 Machines composées de (depuis

Plus en détail

Texte Agrégation limitée par diffusion interne

Texte Agrégation limitée par diffusion interne Page n 1. Texte Agrégation limitée par diffusion interne 1 Le phénomène observé Un fût de déchets radioactifs est enterré secrètement dans le Cantal. Au bout de quelques années, il devient poreux et laisse

Plus en détail

Le test de logiciel : pourquoi et comment Marie-Claude Gaudel, Professeur émérite, LRI UMR n 8623 Université Paris Sud 11

Le test de logiciel : pourquoi et comment Marie-Claude Gaudel, Professeur émérite, LRI UMR n 8623 Université Paris Sud 11 1/6 Gaudel Le test de logiciel : pourquoi et comment Marie-Claude Gaudel, Professeur émérite, LRI UMR n 8623 Université Paris Sud 11 Introduction Le logiciel est un élément inévitable de notre environnement

Plus en détail

Résolution générique à la volée de systèmes d équations booléennes et applications

Résolution générique à la volée de systèmes d équations booléennes et applications Résolution générique à la volée de systèmes d équations booléennes et applications Radu Mateescu INRIA Rhône-Alpes / VASY Plan Introduction Systèmes d équations booléennes d alternance 1 Algorithmes de

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

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

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415

Projet Informatique. Philippe Collet. Licence 3 Informatique S5 2014-2015. http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Projet Informatique Philippe Collet Licence 3 Informatique S5 2014-2015 http://deptinfo.unice.fr/twiki/bin/view/linfo/projetinfo201415 Réalisation d'un développement de taille conséquente? r Firefox? Ph.

Plus en détail

développement de serveurs Internet

développement de serveurs Internet Un modèle génératif pour le développement de serveurs Internet Soutenance de thèse de l Université Paris-Est Gautier LOYAUTÉ Gautier.Loyaute@univ-mlv.fr 5 Septembre 2008 Laboratoire d Informatique Institut

Plus en détail

Assembleur, Compilateur et Éditeur de Liens

Assembleur, Compilateur et Éditeur de Liens Assembleur, Compilateur et Éditeur de Liens Pierre de rosette GIF-1001 Ordinateurs: Structure et Applications, Hiver 2015 Jean-François Lalonde Assembleur et compilateur Langage assembleur Langage compilé

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

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

L approche Bases de données

L approche Bases de données L approche Bases de données Cours: BD. Avancées Année: 2005/2006 Par: Dr B. Belattar (Univ. Batna Algérie) I- : Mise à niveau 1 Cours: BDD. Année: 2013/2014 Ens. S. MEDILEH (Univ. El-Oued) L approche Base

Plus en détail

Objectifs. Maîtriser. Pratiquer

Objectifs. Maîtriser. Pratiquer 1 Bases de Données Objectifs Maîtriser les concepts d un SGBD relationnel Les modèles de représentations de données Les modèles de représentations de données La conception d une base de données Pratiquer

Plus en détail

Modélisation et Vérification des Réseaux de Régulations entre Gènes

Modélisation et Vérification des Réseaux de Régulations entre Gènes Modélisation et Vérification des Réseaux de Régulations entre Gènes Loïc Paulevé JDOC 2010-29 avril 2010 Directeur : Co-encadrant : Olivier Roux Morgan Magnin Laboratoire : IRCCyN, UMR CNRS 6597 Équipe

Plus en détail

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.com Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines

Plus en détail

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget

Chargement de processus Allocation contigüe Allocation fragmentée Gestion de pages. Gestion mémoire. Julien Forget Julien Forget Université Lille 1 École Polytechnique Universitaire de Lille Cité Scientifique 59655 Villeneuve d Ascq GIS 3 2011-2012 1 / 46 Rôle du gestionnaire de mémoire Le gestionnaire de mémoire a

Plus en détail

M3301-2: Méthodologie de la production de logiciels Modélisation et construction des logiciels (C. Attiogbé) Travaux dirigés/pratiques - 2015/2016

M3301-2: Méthodologie de la production de logiciels Modélisation et construction des logiciels (C. Attiogbé) Travaux dirigés/pratiques - 2015/2016 M3301-2: Méthodologie de la production de logiciels Modélisation et construction des logiciels (C. Attiogbé) Travaux dirigés/pratiques - 2015/2016 encadrés par Christian Attiogbé, Amine Aouadhi Cahier

Plus en détail

Programme de la licence informatique, université de Caen http://www.info.unicaen.fr

Programme de la licence informatique, université de Caen http://www.info.unicaen.fr Programme de la licence informatique, université de Caen http://www.info.unicaen.fr Unité Systèmes d'information CM : 45h - TD : 60h - TP : 12h - Coeff 2 Systèmes de Gestion de Bases de Données Modéliser

Plus en détail

Les ordinateurs dispositifs électroniques fonctionnant sur la principe de création, transmission et conversion d impulses électriques

Les ordinateurs dispositifs électroniques fonctionnant sur la principe de création, transmission et conversion d impulses électriques Les ordinateurs dispositifs électroniques fonctionnant sur la principe de création, transmission et conversion d impulses électriques Les informations traitées par l ordinateur (nombres, instructions,

Plus en détail