La bibliothèque BDDAPRON de domaines abstraits logico-numériques
|
|
|
- Jean-Bernard Chassé
- il y a 9 ans
- Total affichages :
Transcription
1 La bibliothèque BDDAPRON de domaines abstraits logico-numériques Bertrand Jeannet INRIA Rhône-Alpes 8 juin 20
2 Outline Structure d un analyseur statique Domaine abstrait Conception d un domaine abstrait L exemple d APRON Une extension : BDDAPRON
3 Structure d un analyseur statique Programme Prog. annoté Transformation & Coordination Équations sémantiques Solveur Domaine Abstrait
4 Modularité d un analyseur statique Objectif idéal Chaque composant : librairie indépendante API bien identifiée Pas de dépendances implicites = Composants substituables En pratique : Dans quelle mesure est-on robuste à Nouveau langage d entrée? Nouveau type de donnée? Nouveau domaine abstrait? Programme Transformation & Coordination Prog. annoté Équations sémantiques Solveur Domaine Abstrait Un composant est réutilisable quand il a été réutilisé au moins deux/trois fois Anonyme, XX ième siècle
5 Outline Structure d un analyseur statique Domaine abstrait Conception d un domaine abstrait L exemple d APRON Une extension : BDDAPRON
6 Plan Structure d un analyseur statique Domaine abstrait Conception d un domaine abstrait L exemple d APRON Une extension : BDDAPRON
7 Implantation d un treillis abstrait D Représentation des éléments abstraits Opérations logiques/ensemblistes : conjonction ( ), disjonction ( ) test du vide et de l inclusion introduction/élimination d une variable Définition d une sémantique concrète expr : D (D) cond : D D instr : D D Et abstraction dans D cond : D D instr : D D Élargissement, Projection, Extraction de propriétés,...
8 Plan Structure d un analyseur statique Domaine abstrait Conception d un domaine abstrait L exemple d APRON Une extension : BDDAPRON
9 Domaines abstraits numériques I Un cas important : variables numériques D abstrait (Env) avec Env = Var N Objectifs de la librairie APRON Z ou R Domaines abstraits sur la table, à travers une API commune et de haut niveau Faciliter la conception d analyseurs Faciliter la comparaison de domaines (argument de modularité) Une plateforme pour l intégration de nouveaux domaines Boite à outils pour les implémenteurs
10 Domaines abstraits numériques II Applications Découvrir des propriétés numériques sur des variables Prouver l absence d une large classe d erreur à l exécution Division par zéro, dépassement de capacité, accès incorrect à un tableau Paramétriser une nanalyse non-numérique Analyse de pointeur, de forme
11 Quelques domaines numériques existants Intervalles X i [a i, b i ] [Cousot-Cousot-76] Égalités linéaires i α i X i = β [Karr-76] Congruences simples X i a i [b i ] [Granger-89] Congruences Linéaires i α i X i β [γ] [Granger-91]
12 Quelques domaines numériques existants (cont.) Polyèdres i α ix i β [Cousot-Halbwachs-78] Ellipsoïdes αx 2 + βy 2 + γxy δ [Feret-04] Octagones ±X i ± X j β [Miné-] Variétés P( X) = 0, P R[Var] [Sankaranarayanan-Sipma-Manna-04
13 APRON : Une sémantique concrète générale I Types de données : entiers, réels, (types flottants) D = Z p R q / D = Var Z R Main concepts/datatypes Dimensions/Variables, Dimensionalité/Environnements Coefficients, Expressions, Contraintes, Valeurs Abstraites Coefficients scalar : := mpq float mpfr coeff : := scalar [ scalar, scalar ] Variables (niveau utilisateur) En C : type défini par l utilisateur (par défaut : string) En OCaml : string
14 APRON : Une sémantique concrète générale II Expressions Incluent les expressions non-linéaires et flottantes Par ex., affectation y := 2x 2 z + yz + f,+ e Incluent la norme IEEE754 (sauf NaN) expr : := coeff var ( - sqrt cast) typ,rmode expr expr ( + - * / % ) typ,rmode expr typ : := i nt f oat d ouble e xtended l ong double mode : := n ear 0 +
15 APRON : Une sémantique concrète générale III Contraintes cons : := expr ( > >= = ) 0 expr = scalar mod scalar
16 APRON : Une sémantique concrète générale IV Valeurs Abstraites
17 APRON : Une sémantique concrète générale V Typées par une dimensionalité p + q, ou un environnement normalisé de variables Opérations principales Opérations classiques de treillis : =,,, Opérations géométriques : projection/oubli de dimension(s) changement de dimensionalité/environnements fold/expand Opérations liées à la sémantique d un langage : Intersection avec des contraintes Affectation (parallèle) x = e (X) Substitution (parallèle) x/ e (X) Tests et extractions de propriétés Satisfaction d une contrainte par une valeur abstraite Extraction de la liste de contrainte,...
18 APRON : Généricité I API et types de données Modélisent la sémantique concrète, de manière complète Indépendants de l implantation du domaine abstrait Domaines abstraits échangeables concrète Object orientation = même sémantique Valeur abstraite = type de donnée abstrait Vrai domaine sous-jacent : défini par un manager Code dépendant du domaine localisé dans l allocation du manager Options contrôlant le compromis précision/efficacité
19 APRON : Généricité II Exemple # let man = Oct.manager_alloc ();; val man : Oct.t Apron.Manager.t = <abstr> # let val = Apron.Abstract1.top man env;; val val : Oct.t Apron.Abstract1.t = <abstr> # let val = Apron.Abstract1.assign_texpr man val var expr;;
20 La librairie APRON : structure Abstraction toolbox Underlying libraries & abstract domains box octagons - scalar & interval arithmetic - linearization of expressions - fall-back implementations intervals NewPolka convex polyhedra linear equalities octagons PPL + Wrapper convex polyhedra linear congruences Data-types Coefficients Expressions Constraints Generators Abs. values Developer interface Semantics : A γ (Z n R m ) dimensions and space dimensionality Variables and Environments Semantics : A γ (V Z R) User interface C API OCaml binding C++ binding
21 Bénéfice Avantages pour un programmeur client : Interface unifiée et de plus haut niveau Les variables ( x, y ) remplacent les dimensions ( 0, 1 ) Expressions non-linéaires Sémantique des opérations entières et flottantes Avantages pour l implanteur d un nouveau domaine : Possibilité de se concentrer sur les fonctionnalités de base, et de bas niveau Aide fournie par les fonctionnalités génériques La connexion d une bibliothèque existante est économique (pour les deux domaines de la PPL, 4200 LOC)
22 Limites de la généricité I Exemple de domaine ne posant pas problème Congruences linéaires de la PPL Polyèdres MaxPlus (thèse de X. Allamigeon) Exemple de domaine posant problème Les template constraints : à chaque point de contrôle k, on a un ens. fini d expressions e(k) l analyse : infère des bornes l(k) e(k) u(k) généralise les intervalles, zones, octogones, octaèdres,... Comment passer les e(k)? En fait le choix des e(k) définit l analyse
23 Limites de la généricité II Autre exemple de domaine posant problème Les formes affines (Goubault, Martel et Putot) ou zonotopes (Girard) Polyèdres centrés symmétriques x 1 = x ǫ 1 2ǫ 2 + ǫ 3 x 2 = x ǫ 1 + 3ǫ 2 + 2ǫ 3 1 ǫ 1, ǫ 2, ǫ 3 1 Les symboles de bruit ǫ i sont attachés à certains points du CFG Gestion fine de ces symboles (introduction, oubli, fusion,... ) liée au CFG (boucles) et expressions non linéaires Une solution acceptable (mais non optimale) bientôt livrée
24 Exploitation de la généricité Foncteurs génériques Produit réduit de domaines numériques Paramétré par une fonction de réduction Ex : combinaison polyèdres/congruences linéaires Exemple de réduction : x [1, 5] x 1 mod 3 = x [4, 4] x 4 mod 0 Unions finies de valeurs abstraites, paramétrée par Une fonction de fusion (pour borner le cardinal de l union) Un opérateur d élargissement adapté (Envisagé) Ajout de nouveaux types de donnée Combiner types finis et numériques : BDDAPRON
25 Plan Structure d un analyseur statique Domaine abstrait Conception d un domaine abstrait L exemple d APRON Une extension : BDDAPRON
26 BDDAPRON : Motivations Le moindre programme manipule des variables booléennes! On ne peut pas se contenter d analyses séparées : les variables booléennes et numériques interagissent : b := x>y ; x := 0 ;... if b then y := x+1 ; else z := y+x ; endif ; z := if b then y+1 else y ; Il faut distinguer : L abstraction des types de données (booléens,numériques) Leur couplage (indépendent du domaine numérique considéré)
27 BDDAPRON : Sémantique concrète : types de donnée Types finis Booléens Types énumérés Entiers (signés ou non) codés sur N bits Types numériques (APRON) Entiers Réels (permet d émuler les flottants) Sémantique d une valeur abstraite γ : A ( V (B E t I n ) (Z R) ) Valeurs abstraites typées par un environnement V Type
28 BDDAPRON : Sémantique concrète : expressions Booléennes bexpr : := true false bvar expr = expr iexpr ( < <= ) iexpr aexpr ( < <= ) aexpr not bexpr bexpr (and or... ) bexpr Énumérée eexpr : := label evar if bexpr then eexpr else eexpr Entier borné iexpr : := cst ivar - iexpr iexpr ( + - * ) iexpr iexpr ( << >> ) n if bexpr then iexpr else iexpr Arithmétique (APRON) aexpr : := coeff avar ( - sqrt cast) typ,rmode aexpr aexpr ( + - * / % ) typ,rmode aexpr if bexpr then aexpr else aexpr
29 BDDAPRON : Sémantique concrète (cont.) Contraintes Expressions booléennes Opérations sur les valeurs abstraites Les mêmes que pour APRON!
30 BDDAPRON : Sémantique abstraite On suppose γ N : A N (R n ) (domaine APRON) Choix effectué Pas d abstraction des types finis Couplage précis des types finis vers les numériques (B m R n ) B m (R n ) B m A N Autre choix possible (non implémenté) Pas d abstraction des types finis Couplage minimal entre types finis et numériques (B m R n ) (B m ) (R n ) (B m ) A N
31 Représentation des valeurs abstraites : choix 1 f B m A N représenté par Un MTBDD (ADD dans la librairie CUDD) (C) Représente des fonctions B m C double Généralise les BDDs (B m B) CUDD étendu pour remplacer double par des valeurs OCaml ( lignes de C) Implications Hachage de valeurs abstraites APRON Requiert une normalisation forte (cher!) Test d égalité (cher aussi!) Exemples B B P Conjonction B P x 1 b 0 + b1 + x 1
32 Représentation des valeurs abstraites : choix 2 f B m A N représenté par Une liste de paires i B i P i Normalisation : B i B j = ff, i B i = tt, et P i P j Sémantiquement équivalent au choix 1 Algorithmiquement Gain en mémoire : 2 listes isomorphes i B i P i et i B i P i Partage des gardes (si MTBDDs : graphes disjoints) Gain en complexité? Possibilité de manipuler des valeurs non normalisées Expérimentalement : bof pour l instant (25 %) Perte pour l implémenteur Recoder la mécanique des MTBDDs
33 Représentation des expressions Expressions Booléennes f : B m ACond B : BDDs avec décisions : conditions atomiques feuilles : constantes booléennes Condition atomique : variable booléenne ou contrainte arithmétique Expressions de type énuméré ou entier borné f : B m ACond B p tableau de BDDs Expressions de type arithmétique f : B m ACond AExpr : MTBDDs avec décisions : conditions atomiques feuilles : expressions arithmétiques atomiques Expression arithmétique atomique : expression sans if-then-else
34 BDDAPRON et modularité Programme Prog. annoté Extension générique d un domaine APRON avec des types finis 2 implémentations différentes de la même sém. abstraite Manipulation des valeurs abs. : isomorpohes à APRON Mais changement (extension) de la sémantique concrète = modification de Interproc! Transformation & Coordination (Interproc 2.0) Équations sémantiques Solveur Domaine Abstrait (BDDAPRON)
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
Qualité du logiciel: Méthodes de test
Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution
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
OCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon [email protected] Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
STAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Principes des langages de programmation INF 321. Eric Goubault
Principes des langages de programmation INF 321 Eric Goubault 24 mars 2014 2 Table des matières 1 Introduction 7 2 Programmation impérative 11 2.1 Variables et types........................... 11 2.2 Codage
Machines virtuelles fonctionnelles (suite) Compilation ML Java
Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles
Cours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Chapitre 10 Arithmétique réelle
Chapitre 10 Arithmétique réelle Jean Privat Université du Québec à Montréal INF2170 Organisation des ordinateurs et assembleur Automne 2013 Jean Privat (UQAM) 10 Arithmétique réelle INF2170 Automne 2013
Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e
P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement
Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes [email protected] 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.
Université Montpellier-II UFR des Sciences - Département Informatique - Licence Informatique UE GLIN302 - Programmation Applicative et Récursive Cours No 3 : Identificateurs, Fonctions, Premières Structures
Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
length : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2
1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle
Structure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Conventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert [email protected] Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Corrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
SSTIC 2009. Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...
Désobfuscation automatique de binaires Et autres idyles bucoliques... Alexandre Gazet Sogeti / ESEC R&D alexandre.gazet(at)sogeti.com Yoann Guillot Sogeti / ESEC R&D yoann.guillot(at)sogeti.com SSTIC 2009
Chapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Langage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne [email protected]
Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU
Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Gabriel Antoine Louis Paillard Ce travail a eu le soutien de la CAPES, agence brésilienne pour
modules & compilation
Programmation fonctionnelle avec OCaml 3ème séance, 19 mars 2015 modules & compilation [email protected] http ://www.loria.fr/ shornus/ocaml/ Modules Un module regroupe un ensemble de définitions
# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>
94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue
Logiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Classes et Objets en Ocaml.
Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.
Rappel sur les bases de données
Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant
Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL
Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions
Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Programmer en JAVA. par Tama ([email protected]( [email protected])
Programmer en JAVA par Tama ([email protected]( [email protected]) 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
Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère
L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la
Objets et Programmation. origine des langages orientés-objet
Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Cours d algorithmique pour la classe de 2nde
Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Algorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Présentation du PL/SQL
I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur
Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml
OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire
1. Structure d'un programme FORTRAN 95
FORTRAN se caractérise par la nécessité de compiler les scripts, c'est à dire transformer du texte en binaire.(transforme un fichier de texte en.f95 en un executable (non lisible par un éditeur) en.exe.)
IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Compilation (INF 564)
Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation
Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014
numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:[email protected] Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour
Programmation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
Cours de Génie Logiciel
Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes
Devenez un véritable développeur web en 3 mois!
Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web
Chapitre 2 : Abstraction et Virtualisation
Virtualisation et Cloud Computing Chapitre 2 : Abstraction et Virtualisation Objectifs Présenter la notion de niveaux d abstraction séparés par des interfaces bien définies Description des avantages et
Object Constraint Language (OCL)
Object Constraint Language (OCL) Eric Cariou Université de Pau et des Pays de l'adour UFR Sciences Pau Département Informatique [email protected] 1 Plan 1. Pourquoi OCL? Introduction par l'exemple
Logiciel Libre Cours 2 Fondements: Programmation
Logiciel Libre Cours 2 Fondements: Programmation Stefano Zacchiroli [email protected] Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
CM2 L architecture MIPS32
CM2 L architecture MIPS32 Olivier Marchetti (CM-TD-TP) Alexandre Brière (TD-TP) Laboratoire d informatique de Paris 6 Pôle SoC UPMC Année 2014-2015 Instructions MIPS Contrôle Données en MIPS E/S en MIPS
TP3 : Manipulation et implantation de systèmes de fichiers 1
École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande
3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes
PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason
Recherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Présentation du langage et premières fonctions
1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en
Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
ACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
UE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Université de Bangui. Modélisons en UML
Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et
Vérification de programmes et de preuves Première partie. décrire des algorithmes
Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
INTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Chapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Quatrième partie IV. Test. Test 15 février 2008 1 / 71
Quatrième partie IV Test Test 15 février 2008 1 / 71 Outline Introduction 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion
Introduction à JDBC. Accès aux bases de données en Java
Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique [email protected] 1 Introduction JDBC : Java Data Base Connectivity
Cours 1 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas [email protected] PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
Approche Contract First
Exemple HelpDesk Approche Contract First Développement d un premier web service en utilisant l approche contract first (ou WSDL First) Écriture du wsdl avant d écrire le code java Autre possibilité implementation
Java 1.5 : principales nouveautés
Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés
Analyse statique de code dans un cycle de développement Web Retour d'expérience
Analyse statique de code dans un cycle de développement Web Retour d'expérience Laurent Butti et Olivier Moretti Orange France [email protected] Agenda Introduction Notre contexte L (in)sécurité des
Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12
Probabilités. I - Rappel : trois exemples. Exemple 1 : Dans une classe de 25 élèves, il y a 16 filles. Tous les élèves sont blonds ou bruns. Parmi les filles, 6 sont blondes. Parmi les garçons, 3 sont
Arithmétique réelle. Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations. Valérie Ménissier-Morain
Arithmétique réelle Introduction à l arithmétique flottante La précision des calculs: analyse et améliorations Valérie Ménissier-Morain Université Pierre et Marie Curie - Paris 6 LIP6 - Département CALSCI
MIS 102 Initiation à l Informatique
MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles [email protected]
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles [email protected] Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
UML (Diagramme de classes) Unified Modeling Language
UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association
MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15
MapReduce Malo Jaffré, Pablo Rauzy ENS 16 avril 2010 Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril 2010 1 / 15 Qu est ce que c est? Conceptuellement Données MapReduce est un framework de calcul distribué
Orchestrer son cloud OpenStack avec Heat
Orchestrer son cloud OpenStack avec Heat Adrien Cunin [email protected] Osones 7 juillet 2014 Adrien Cunin (Osones) Orchestrer son cloud OpenStack avec Heat 7 juillet 2014 1 / 43 Adrien Cunin (Osones)
Analyse de sécurité de logiciels système par typage statique
Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction
INF 321 : mémento de la syntaxe de Java
INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2
Installer Joomla. 2013 Pearson France Joomla! Le guide officiel Jennifer Marriott, Elin Waring
3 Installer Joomla Dans ce chapitre, nous procéderons au téléchargement et à l installation manuelle de Joomla, et nous expliquerons la configuration de base. Les captures d écran et les instructions font
Gestion mémoire et Représentation intermédiaire
Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,
Programmation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
ARBRES BINAIRES DE RECHERCHE
ARBRES BINAIRES DE RECHERCHE Table de symboles Recherche : opération fondamentale données : éléments avec clés Type abstrait d une table de symboles (symbol table) ou dictionnaire Objets : ensembles d
Information utiles. [email protected]. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/
Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : [email protected] webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/
Machines virtuelles Cours 1 : Introduction
Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 [email protected] PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une
Organigramme / Algorigramme Dossier élève 1 SI
Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué
2 Comment fonctionne un ordinateur, dans les grandes lignes
Programmation 1 Cours n 1 GB3, 2 nd semestre 2014-2015 Cours de Python Gilles Bernot Les notes de cours et les feuilles de TD sont disponibles (avec un peu de retard par rapport au déroulement du cours)
Enseignement secondaire technique
Enseignement secondaire technique Régime technique Division technique générale Cycle moyen Informatique 11TG Nombre de leçons: 2.0 Nombre minimal de devoirs: - Langue véhiculaire: / Remarque générale:
DG-ADAJ: Une plateforme Desktop Grid
DG-ADAJ: Une plateforme pour Desktop Grid Olejnik Richard, Bernard Toursel Université des Sciences et Technologies de Lille Laboratoire d Informatique Fondamentale de Lille (LIFL UMR CNRS 8022) Bât M3
Aide mémoire UML & Java 1ère partie : Introduction. [email protected]
Aide mémoire UML & Java 1ère partie : Introduction [email protected] 9 septembre 2014 1 2014 v1.11 Table des matières 1 Généralités 6 1.1 Notations utilisées.....................................
É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
Licence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Programmation Orientée Objet Java
Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 12 novembre 2014 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 12 novembre
Chapitre 2. Eléments pour comprendre un énoncé
Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Débuter avec EXPRESS. Alain Plantec. 1 Schema 2
Débuter avec EXPRESS Alain Plantec Table des matières 1 Schema 2 2 Entité 2 2.1 Attributs simples................................................ 2 2.2 Attributs collection...............................................
Premiers pas avec Mathematica
Premiers pas avec Mathematica LP206 : Mathématiques pour physiciens I Année 2010/2011 1 Introduction Mathematica est un logiciel de calcul formel qui permet de manipuler des expressions mathématiques symboliques.
UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )
P r ob lé m a t iq u e d e la g é n é r icit é les versions de Java antérieures à 1.5 permettaient de créer des classes de structures contenant n'importe quels types d'objet : les collections (classes
