Librairie BDD+APRON pour domaines logico-numériques
|
|
|
- Josselin Bossé
- il y a 10 ans
- Total affichages :
Transcription
1 Librairie BDD+APRON pour domaines logico-numériques Bertrand Jeannet INRIA Rhône-Alpes January 26, 2009
2 Architecture typique d un analyseur statique Programme Transformation Équations sémantiques Solveur Domaine Abstrait
3 Implantation d un treillis abstrait A Représentation des éléments de A, avec γ : A Opérations logiques/ensemblistes: conjonction (borne inf), disjonction (borne sup) test du vide et de l inclusion introduction/élimination d une variable Définition d une sémantique concrète expr : C (D) cond : C C instr : C C Et abstraction dans A cond : A A instr : A A... C { }} { (V D)
4 Outline La bibliothèque APRON Contexte et Motivations Conception Implantation Résultats La bibliothèque BDD+APRON Sémantique concrète Domaine abstrait BDD+APRON: types de donnée Domaine abstrait BDD+APRON: quelques opérations Démo
5 Outline La bibliothèque APRON Contexte et Motivations Conception Implantation Résultats La bibliothèque BDD+APRON Sémantique concrète Domaine abstrait BDD+APRON: types de donnée Domaine abstrait BDD+APRON: quelques opérations Démo
6 Analyse des variables numériques d un programme Nombreux treillis abstraits implémentés Intervalles (... ) Egalités linéaires (Müller-Olm & Seidl) Combinaison des intervalles et égalités (Venet, Feret) Zones et Octogones (Miné, Bagnara & al) Octaèdres (Cortadella) Polyèdres convexes (NewPolka, Parma, PolyLib, CRI) Égalités polynomiales (Müller-Olms & Seidl) Inégalités polynomiales (Bagnara & al, SAS 05) Ellipsoïdes (Feret) Inégalités entre variables (Peron, VMCAI 07)
7 Fonctionalités et API Fonctionalités Noyau standard de fonctions offertes (union, intersection) Fonctions liées à la sémantique des instructions (affectation par une expression linéaire,... ) + Fonctions plus spécifiques pour des applications particulières (parallélisation automatique) Mais API très diverses! Certaines fonctionnalités de base peuvent manquer Sémantiques concrètes différentes Types de données différents, et trop bas-niveau Complique la diffusion de ces implémentations Difficile de comparer l efficacité de 2 implémentations du même treillis la précision de deux treillis différents
8 Démarche pour une interface commune Identifier les fonctionnalités de base et une sémantique concrète suffisamment générale Élaborer une interface détaillée (types de données, signatures des fonctions) Implanter une telle interface pour les bibliothèques maintenues par les membres du projet Sous les contraintes suivantes: Satisfaire différents besoins tout en restant générique Souci de minimalité, sans trop pénaliser les performances Minimiser le travail d adaptation d une bibliothèque existante
9 Outline La bibliothèque APRON Contexte et Motivations Conception Implantation Résultats La bibliothèque BDD+APRON Sémantique concrète Domaine abstrait BDD+APRON: types de donnée Domaine abstrait BDD+APRON: quelques opérations Démo
10 Choix généraux Choix d architecture: Langage de référence: C Compatibilité avec les threads Mécanisme d exceptions Mécanisme d options: choix d algorithmes,... Signatures fonctionnelles et impératives... Définition d une sémantique concrète Définition des types de donnée de l API (nombres et coefficients, expressions, contraintes,... )
11 Identification des fonctionnalités Objectifs antagonistes: performance et précision des implantations; confort de l utilisateur et non-duplication de code entre bibliothèques Distinction entre deux niveaux d interface: Niveau 0: on se préoccupe des performances et de la précision; En prise directe avec la bibliothèque sous-jacente Interface minimale, sauf si avantage algorithmique fort à y inclure une combinaison Niveau 1: on se préoccupe du confort, et des fonctionnalités factorisables entre les domaines abstraits.
12 Outline La bibliothèque APRON Contexte et Motivations Conception Implantation Résultats La bibliothèque BDD+APRON Sémantique concrète Domaine abstrait BDD+APRON: types de donnée Domaine abstrait BDD+APRON: quelques opérations Démo
13 Vue générale Underlying libraries & abstract domains box intervals octagons octagons NewPolka convex polyhedra linear equalities PPL Wrapper convex polyhedra linear congruences Abstraction toolbox scalar & interval arithmetic linearization of expressions fall-back implementations C API OCaml binding C++ binding 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
14 Domaines disponibles ( Z p IR q ) inégalités polynômiales égalités polynômiales inégalités linéaires congruences (NewPolka + PPL) inégalités linéaires (NewPolka, PPL) (polyèdres convexes) congruences linéaires (PPL) octaèdres inégalités sur 2 variables octogones (octagon) intervalles (box) égalités linéaires (NewPolka) congruences simples
15 Outline La bibliothèque APRON Contexte et Motivations Conception Implantation Résultats La bibliothèque BDD+APRON Sémantique concrète Domaine abstrait BDD+APRON: types de donnée Domaine abstrait BDD+APRON: quelques opérations Démo
16 Une meilleure API 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 Et relativement stable: ajout récent des expressions non-linéaires sans remise en cause de choix antérieurs Une seule ligne dans un analyseur pour le choix d un domaine La connexion d une bibliothèque existante est économique (pour les deux domaines de la PPL, 4200 LOC)
17 Bénéfice Avantages pour un programmeur client: Interface unifiée et de plus haut niveau pour expérimenter, comparer, combiner des domaines abstraits 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 Diffusion et expérimentation de son travail facilitées
18 Diffusion Base d utilisateurs externes encourageante: réclamations, signalement de bugs,... ProVal/Démons, LRI Orsay, France; Analysis of Computer Systems Group, New-York University, USA; Sierum software analysis platform, Kansas State University, USA; NEC Labs, Princeton, USA; EADS CCR, Paris, France; IRIT, Toulouse, France. Plusieurs contributeurs externes déclarés
19 Outline La bibliothèque APRON Contexte et Motivations Conception Implantation Résultats La bibliothèque BDD+APRON Sémantique concrète Domaine abstrait BDD+APRON: types de donnée Domaine abstrait BDD+APRON: quelques opérations Démo
20 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 Cette distinction permet de définir un couplage indépendent du domaine numérique considéré (interfacé à APRON)
21 Outline La bibliothèque APRON Contexte et Motivations Conception Implantation Résultats La bibliothèque BDD+APRON Sémantique concrète Domaine abstrait BDD+APRON: types de donnée Domaine abstrait BDD+APRON: quelques opérations Démo
22 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
23 Expressions typées 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
24 Opérations sur les valeurs abstraites Opérations ensemblistes Intersection avec une expression booléenne (contrainte) Affectation/Substitution d une variable par une expression parallèle de variables par des expressions Oubli d une variable (quantification existentielle) Changement d environnements (introduction de variables/projections)
25 Outline La bibliothèque APRON Contexte et Motivations Conception Implantation Résultats La bibliothèque BDD+APRON Sémantique concrète Domaine abstrait BDD+APRON: types de donnée Domaine abstrait BDD+APRON: quelques opérations Démo
26 Domaine abstrait On suppose (R n ) A 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
27 Représentation des valeurs abstraites f B m A N représenté par Un MTBDD (ADD dans la librairie CUDD) (C) Représente des fonctions B m N Généralise les BDDs (B m B) Table de correspondance globale N A N (OCAml) Implications Hachage de valeurs abstraites APRON Test d égalité (cher!) Comptage de référence pour gérer la table globale. Exemples B B P Conjonction B P x 1 b 0 + b1 + x 1
28 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
29 Outline La bibliothèque APRON Contexte et Motivations Conception Implantation Résultats La bibliothèque BDD+APRON Sémantique concrète Domaine abstrait BDD+APRON: types de donnée Domaine abstrait BDD+APRON: quelques opérations Démo
30 Opérations ensemblistes borne inf ou borne sup f g = mapop2(, f, g) défini ainsi b i b i = f f + g g + b i f g f + g + b i b j = f f + g g + f g b i f + g si i < j f t g t = hash(lookup(f t ) lookup(g t )) mapop2 : ( abs * abs -> abs) -> abs mtbdd * abs mtbdd -> abs mtbdd
31 Opérations ensemblistes Oubli (projection) d une variable de type fini (booléenne) si i < j b i b j : f b j : f + b j : = f f + f f + si i = j f si i > j Autre technique On met f sous la forme k f k t k On calcule f = k ( b i : f k ) t k On reconstruit k ite(f k, t k, ) b i
32 Opérations ensemblistes Oubli (projection) d une variable numérique x k : f = mapop1( x k, f ) défini ainsi x k : b i f f + = b i x k : f x k : f + x k : f t = hash( x k : lookup(f t )) mapop1 : ( abs -> abs) -> abs mtbdd -> abs mtbdd
33 Intersection avec une formule booléenne Formule sans contrainte arithmétique f c c = f ite(c,, ) Condition numérique élémentaire f c acond = mapop1( c acond, f )
34 Intersection avec une formule booléenne Formule générale b i b i = f f + c c + b i f c c f + c c + f c acond c c + (f c acond) c c + = (f c acond) c c f c 1 = f f c 0 =
35 Outline La bibliothèque APRON Contexte et Motivations Conception Implantation Résultats La bibliothèque BDD+APRON Sémantique concrète Domaine abstrait BDD+APRON: types de donnée Domaine abstrait BDD+APRON: quelques opérations Démo
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
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
Programmation linéaire
1 Programmation linéaire 1. Le problème, un exemple. 2. Le cas b = 0 3. Théorème de dualité 4. L algorithme du simplexe 5. Problèmes équivalents 6. Complexité de l Algorithme 2 Position du problème Soit
Cours de Master Recherche
Cours de Master Recherche Spécialité CODE : Résolution de problèmes combinatoires Christine Solnon LIRIS, UMR 5205 CNRS / Université Lyon 1 2007 Rappel du plan du cours 16 heures de cours 1 - Introduction
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
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
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
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
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/
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à
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
Optimisation et programmation mathématique. Professeur Michel de Mathelin. Cours intégré : 20 h
Télécom Physique Strasbourg Master IRIV Optimisation et programmation mathématique Professeur Michel de Mathelin Cours intégré : 20 h Programme du cours d optimisation Introduction Chapitre I: Rappels
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
La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1
La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1 La licence Mathématiques et Economie-MASS de l Université des Sciences Sociales de Toulouse propose sur les trois
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
Programmation Linéaire - Cours 1
Programmation Linéaire - Cours 1 P. Pesneau [email protected] Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence V. Chvátal - Linear Programming, W.H.Freeman, New York, 1983.
Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov
Des réels aux flottants : préservation automatique de preuves de stabilité de Lyapunov Olivier Hermant et Vivien Maisonneuve CRI, MINES ParisTech, PSL Research University [email protected]
É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
Analyse,, Conception des Systèmes Informatiques
Analyse,, Conception des Systèmes Informatiques Méthode Analyse Conception Introduction à UML Génie logiciel Définition «Ensemble de méthodes, techniques et outils pour la production et la maintenance
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/
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
La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique
La programmation linéaire : une introduction Qu est-ce qu un programme linéaire? Qu est-ce qu un programme linéaire? Exemples : allocation de ressources problème de recouvrement Hypothèses de la programmation
Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/
Recherche opérationnelle Les démonstrations et les exemples seront traités en cours Souad EL Bernoussi Groupe d Analyse Numérique et Optimisation Rabat http ://www.fsr.ac.ma/ano/ Table des matières 1 Programmation
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
Comment gérer toutes mes tâches logicielles d automatisation dans un seul environnement?
Comment gérer toutes mes tâches logicielles d automatisation dans un seul environnement? Avec Totally Integrated Automation Portal : un seul environnement de développement intégré pour toutes vos tâches
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
É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 [email protected]
TP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Programmation linéaire
Programmation linéaire DIDIER MAQUIN Ecole Nationale Supérieure d Electricité et de Mécanique Institut National Polytechnique de Lorraine Mathématiques discrètes cours de 2ème année Programmation linéaire
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
4.2 Unités d enseignement du M1
88 CHAPITRE 4. DESCRIPTION DES UNITÉS D ENSEIGNEMENT 4.2 Unités d enseignement du M1 Tous les cours sont de 6 ECTS. Modélisation, optimisation et complexité des algorithmes (code RCP106) Objectif : Présenter
LES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
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
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
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:
Bases Java - Eclipse / Netbeans
Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement
Théorie de la Programmation
Théorie de la Programmation http://perso.ens-lyon.fr/daniel.hirschkoff/thpr hop Programmation, Théorie de la programmation Langages de programmation I il existe de nombreux langages de programmation I
É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
Représentation des Nombres
Chapitre 5 Représentation des Nombres 5. Representation des entiers 5.. Principe des représentations en base b Base L entier écrit 344 correspond a 3 mille + 4 cent + dix + 4. Plus généralement a n a n...
as Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Continuité d une fonction de plusieurs variables
Chapitre 2 Continuité d une fonction de plusieurs variables Maintenant qu on a défini la notion de limite pour des suites dans R n, la notion de continuité s étend sans problème à des fonctions de plusieurs
27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)
Propriétés du Document Source du Document SDK_accords.odt Titre du Document SDK Python et Java pour le développement de services ACCORD Module(s) PyaccordsSDK, JaccordsSDK Responsable Prologue Auteur(s)
Exclusion Mutuelle. Arnaud Labourel Courriel : [email protected]. Université de Provence. 9 février 2011
Arnaud Labourel Courriel : [email protected] Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique
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
Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1
Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-
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
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
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
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
ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab
ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab notre compétence d'éditeur à votre service créée en juin 2010, Scilab enterprises propose services et support autour
Résolution de systèmes linéaires par des méthodes directes
Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.
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
Conversion d un entier. Méthode par soustraction
Conversion entre bases Pour passer d un nombre en base b à un nombre en base 10, on utilise l écriture polynomiale décrite précédemment. Pour passer d un nombre en base 10 à un nombre en base b, on peut
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
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
Projet Active Object
Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques
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
pythonocc: une plateforme de développement agile d applications CAO.
pythonocc: une plateforme de développement agile d applications CAO. PyConFR 2009 Cité des Sciences et de l Industrie, Paris Thomas Paviot*, Jelle Feringa* *pythonocc project: [email protected]; [email protected]
Architecture distribuée
Architecture distribuée Conception et développement d algorithmes distribués pour le moteur Baboukweb Jean-Christophe DALLEAU Département de Mathématiques et Informatique Université de La Réunion 26 juin
Les nouveautés de Femap 11.1
Siemens PLM Software Les nouveautés de Femap 11.1 Amélioration de la productivité des Ingénieurs calcul Avantages Manipulation plus rapide des modèles grâce à des performances graphiques améliorées Flexibilité
Cours Composant 2. Qualité logicielle et spécications algébriques
UPMC Paris Universitas Master Informatique STL Cours Composant 2. Qualité logicielle et spécications algébriques c 2005-2008 Frédéric Peschanski UPMC Paris Universitas 24 février 2008 c 2005-2008 Frédéric
Outils logiciels pour la combinaison de vérification fonctionnelle et d évaluation de performances au sein de CADP
Outils logiciels pour la combinaison de vérification fonctionnelle et d évaluation de performances au sein de CADP Christophe Joubert Séminaire VASY 2002 30 Octobre 2002 Aix les Bains Contexte du projet
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
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
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets
modèles génériques applicables à la synthèse de contrôleurs discrets pour l Internet des Objets Mengxuan Zhao, Gilles Privat, Orange Labs, Grenoble, France Eric Rutten, INRIA, Grenoble, France Hassane
Informatique Générale
Informatique Générale Guillaume Hutzler Laboratoire IBISC (Informatique Biologie Intégrative et Systèmes Complexes) [email protected] Cours Dokeos 625 http://www.ens.univ-evry.fr/modx/dokeos.html
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
Entraînement au concours ACM-ICPC
Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming
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
1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux
Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux Damien Stehlé LIP CNRS/ENSL/INRIA/UCBL/U. Lyon Perpignan, Février 2011 Damien Stehlé Problèmes arithmétiques issus de la cryptographie
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
Model checking temporisé
Model checking temporisé Béatrice Bérard LAMSADE Université Paris-Dauphine & CNRS [email protected] ETR 07, 5 septembre 2007 1/44 Nécessité de vérifier des systèmes... 2/44 Nécessité de vérifier
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
TangibleData. Manipulation tangible et multitouch de bases de données
TangibleData Manipulation tangible et multitouch de bases de données Tangible Data est un environnement de manipulation et d exploration tangible de base de données pour extraire efficacement des informations
Introduction aux Machines Virtuelles avec VMKit
Introduction aux Machines Virtuelles avec Ingénieur :, Responsables : Gaël Thomas, Gilles Müller EQUIPE REGAL LIP6 INRIA (Paris/France) un substrat de machine virtuelle : a substrate for Managed Runtime
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
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
2. Comprendre les définitions de classes
Conception objet en Java avec BlueJ une approche interactive 2. Comprendre les définitions de classes Analyser le contenu des classes David J. Barnes, Michael Kölling version française: Patrice Moreaux
Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - [email protected]
Cours Plugin Eclipse Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - [email protected] 1 Qui suis-je? Ancien étudiant de Jussieu - Paris VI Diplomé du Master Technologies
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
Génie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
INITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
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
Maple: premiers calculs et premières applications
TP Maple: premiers calculs et premières applications Maple: un logiciel de calcul formel Le logiciel Maple est un système de calcul formel. Alors que la plupart des logiciels de mathématiques utilisent
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
Contexte et motivations Les techniques envisagées Evolution des processus Conclusion
Vérification de logiciels par analyse statique Contexte et motivations Les techniques envisagées Evolution des processus Conclusion Contexte et motivations Specification Design architecture Revues and
Vérification formelle de la plate-forme Java Card
Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations
Fonctions de plusieurs variables
Module : Analyse 03 Chapitre 00 : Fonctions de plusieurs variables Généralités et Rappels des notions topologiques dans : Qu est- ce que?: Mathématiquement, n étant un entier non nul, on définit comme
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.
Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un
RTDS G3. Emmanuel Gaudin [email protected]
RTDS G3 Emmanuel Gaudin [email protected] PragmaDev Dédiée au développement d un AGL pour le développement des applications temps réel et embarquées. Réseau de partenaires: Formations, Service,
Introduction à MATLAB R
Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d
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)
RÉALISATION D UN SITE DE RENCONTRE
RÉALISATION D UN SITE DE RENCONTRE Par Mathieu COUPE, Charlène DOUDOU et Stéphanie RANDRIANARIMANA Sous la coordination des professeurs d ISN du lycée Aristide Briand : Jérôme CANTALOUBE, Laurent BERNARD
Programmation avec des objets : Cours 7. Menu du jour
1 Programmation avec des objets : Cours 7 Menu du jour 1. Retour sur la classe Liste 2. Précisions sur l interface 3. Difficultés dans le cas d erreurs 4. Soulever des exceptions 5. Utilisation des Listes
