Automatisation de la certification formelle de systèmes critiques par instrumentation d interpréteurs abstraits
|
|
- Edith Clément
- il y a 8 ans
- Total affichages :
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 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étailDes 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étailSuivant 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étailResolution 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étailCours 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étailExclusion 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 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étailVé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étailModel 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étail1 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étailCours 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étailSOCLE 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étailConditions : 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étailIntelligence 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étailINITIATION 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étailTâ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étailThé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étailLES 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étailAnalyse 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étailINF 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étailProcessus 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étailFormula 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étailIntroduction 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étail1/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étailConception 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étailCertification 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étailDé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étailCours 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étail4.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étailInitiation à 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étailIntelligence 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étailComment 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étailStructure 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étailSujet 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étailUtilisation 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étailTP3 : 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étailVers 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étailMABioVis. 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étailRappel. 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étailContexte 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étailLogiciel 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étailUniversité 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étailProgrammation 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étailJade. 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étailCours 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étailFrancis 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étailLa 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étailLa 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étailAnalyse,, 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étailMachines 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étailApprentissage 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étailintroduction 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étailTP 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étailLe 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étailCours 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étailPeut-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étailL 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étailCalculabilité 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étailStructuration 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étailopenarchitectureware & 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étailNouvelles 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étailSouad 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étailCycle 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étailModé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étailGé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étailVé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
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étailJava 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étailInformatique 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étailCours 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étailProblè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étailNotre 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étailLES 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étailPlan. 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étailCours 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étailProgrammer 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étailUniversité 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étailDEMANDE 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étailLes 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étailProgrammation 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étail3. 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étailOptimisation 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étailMATH0062-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étailLa 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étailSujet 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étailSujet 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étailBACCALAURÉ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étailTout 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étailPlan. 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étailDiagramme 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étailEvolution 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étailProposition 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étailOCL - 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étailUrbanisation 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étailProgramme 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étailUFR 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étailIntroduction 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étailINGENIERIE 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étailClassification 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étailIntroduction à 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