Spécification et Implémentation des Langages à Objets
|
|
- Adeline Déry
- il y a 6 ans
- Total affichages :
Transcription
1 Spécification et Implémentation des Langages à Objets Roland Ducournau LIRMM / INFO / DOC CNRS Université Montpellier II Journée LIRMM/INFO Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
2 Plan Plan 1 Contexte et Motivation 2 Deuxième Millénaire 3 Troisième Millénaire Problématique de l implémentation des objets Etude de quelques techniques particulières Schéma de compilation séparée avec optimisations globales Le langage PRM Perspectives sur le millénaire Bilan 4 Quatrième millénaire Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
3 Plan Contexte et Motivation 1 Contexte et Motivation 2 Deuxième Millénaire 3 Troisième Millénaire Problématique de l implémentation des objets Etude de quelques techniques particulières Schéma de compilation séparée avec optimisations globales Le langage PRM Perspectives sur le millénaire Bilan 4 Quatrième millénaire Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
4 Motivation Contexte et Motivation La plus grande réussite du dernier millénaire? Les objets (programmation, modélisation, etc.) Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
5 Motivation Contexte et Motivation La plus grande réussite du dernier millénaire? Les objets (programmation, modélisation, etc.) Le plus grand échec du dernier millénaire? C++! Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
6 Contexte et Motivation TRENTE Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
7 Plan Deuxième Millénaire 1 Contexte et Motivation 2 Deuxième Millénaire 3 Troisième Millénaire Problématique de l implémentation des objets Etude de quelques techniques particulières Schéma de compilation séparée avec optimisations globales Le langage PRM Perspectives sur le millénaire Bilan 4 Quatrième millénaire Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
8 Deuxième Millénaire Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
9 Deuxième Millénaire Les trois mousquetaires ( c A. Dumas) Michel Habib Marianne Huchard Marie-Laure Mugnier Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
10 Deuxième Millénaire Les trois mousquetaires ( c A. Dumas) Michel Habib Marianne Huchard Marie-Laure Mugnier Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
11 Deuxième Millénaire Spécification et implémentation... Héritage multiple Formalisation des techniques de linéarisation Utilisées par Clos, Dylan, Python, C++,... YAFOOL le plus beau langage objet du monde passé dans les poubelles de l histoire Contexte de typage dynamique LISP, CLOS, YAFOOL,... Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
12 Deuxième Millénaire avec Joël Quinqueton (le barde) Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
13 Plan Troisième Millénaire 1 Contexte et Motivation 2 Deuxième Millénaire 3 Troisième Millénaire Problématique de l implémentation des objets Etude de quelques techniques particulières Schéma de compilation séparée avec optimisations globales Le langage PRM Perspectives sur le millénaire Bilan 4 Quatrième millénaire Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
14 Troisième Millénaire Vingt ans après ( c A. Dumas) Jean Privat (soutenance en juillet 2006, post-doc Purdue U.) Floréal Morandat (thèse commencée en septembre 2006) stagiaires de DEA/M2R (JP, P. Takhedmit, N. Desnos, FM,...) étudiants (IUP2, maîtrise/m1) Implémentation efficace de l héritage multiple étude de techniques particulières simulation sur gros benchmarks schéma de compilation global/séparé spécification du langage Prm compilateur Prm autogène Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
15 Troisième Millénaire Passage au typage statique Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
16 Troisième Millénaire Implémentation des objets Problématique de l implémentation des objets 3 mécanismes originaux envoi de message (ou liaison tardive) le polymorphisme ne permet pas l appel statique accès aux attributs le polymorphisme ne garantit pas la position de l attribut test de sous-typage le typage n est pas si sûr que ça! (vieille spécialité du LIRMM : M. Habib, L. Nourine, E. Thierry, O. Raynaud) Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
17 Troisième Millénaire Problématique de l implémentation des objets Héritage simple, typage statique A A Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
18 Troisième Millénaire Problématique de l implémentation des objets Héritage simple, typage statique A A B A B Problème : héritage multiple impossible Invariants de référence et de position Espace linéaire dans la taille de la relation de spécialisation Implémentation idéale Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
19 Troisième Millénaire Problématique de l implémentation des objets Héritage simple, typage statique A A B A B C A B C Problème : héritage multiple impossible Invariants de référence et de position Espace linéaire dans la taille de la relation de spécialisation Implémentation idéale Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
20 Troisième Millénaire Etude de quelques techniques particulières Alternatives pour l héritage multiple Coloration ( ) idéale mais incompatible avec le chargement dynamique Hachage parfait ( ) parfaitement incrémental mais efficacité moindre Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
21 Coloration A Troisième Millénaire Etude de quelques techniques particulières A B C A B A C D A B C D Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
22 Troisième Millénaire Etude de quelques techniques particulières Coloration A A B C A B A C D A B C D Problème : chargement dynamique impossible La coloration est une optimisation globale Invariants maintenus au prix de quelques trous Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
23 Troisième Millénaire Etude de quelques techniques particulières Coloration A A B C A B A C D A B C D Problème : chargement dynamique impossible La coloration est une optimisation globale Invariants maintenus au prix de quelques trous Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
24 Troisième Millénaire Etude de quelques techniques particulières Coloration A A B C A B A C D A B C D Problème : chargement dynamique impossible La coloration est une optimisation globale Invariants maintenus au prix de quelques trous Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
25 Troisième Millénaire Etude de quelques techniques particulières Coloration Quelques résultats Complexité (P. Takhedmit, Ch. Paul) problème de coloration de graphe, mais pas minimum NP-difficile dans la plupart des cas Heuristiques efficaces Simulation sur les benchmarks précités Schéma d utilisation en compilation séparée Synthèse sur la technique 3 inventeurs indépendants et complémentaires : Dixon 89, Pugh & Weddell 90, Ducournau 91, Vitek 97 Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
26 Hachage Parfait Troisième Millénaire Etude de quelques techniques particulières Sous-typage par table de hachage Soit une classe C et un objet o instance de D : o C id C est trouvé dans la table de o Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
27 Hachage Parfait Troisième Millénaire Etude de quelques techniques particulières Sous-typage par table de hachage Soit une classe C et un objet o instance de D : o C id C est trouvé dans la table de o Particularité Au chargement de la classe D, toutes ses super-classes sont connues. plus besoin d ajout, ni de retrait La table de D peut être optimisée statiquement Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
28 Hachage Parfait Troisième Millénaire Etude de quelques techniques particulières Sous-typage par table de hachage Soit une classe C et un objet o instance de D : o C id C est trouvé dans la table de o Particularité Au chargement de la classe D, toutes ses super-classes sont connues. plus besoin d ajout, ni de retrait La table de D peut être optimisée statiquement Solution : le hachage parfait [Sprugnoli 77] hachage sans collision temps constant, espace à déterminer par l expérience Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
29 Troisième Millénaire Etude de quelques techniques particulières Application à JAVA (1 pierre, 2 coups) table de hachage méthodes attributs de l instance Table bidirectionnelle de la classe C Partie positive pour les classes, comme en héritage simple Partie négative pour les interfaces, avec hachage parfait Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
30 Troisième Millénaire Etude de quelques techniques particulières Application à JAVA (1 pierre, 2 coups) H_C table de hachage méthodes h(d)=hash(id_d,h_c) attributs de l instance Table bidirectionnelle de la classe C Partie positive pour les classes, comme en héritage simple Partie négative pour les interfaces, avec hachage parfait Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
31 Troisième Millénaire Etude de quelques techniques particulières Application à JAVA (1 pierre, 2 coups) H_C id_d? méthodes h(d) h(d)=hash(id_d,h_c) attributs de l instance Table bidirectionnelle de la classe C Test de sous-typage pour interfaces D est une interface : o D? Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
32 Troisième Millénaire Etude de quelques techniques particulières Application à JAVA (1 pierre, 2 coups) H_C id_d? #foo méthodes de D h(d) h(d)=hash(id_d,h_c) attributs de l instance Table bidirectionnelle de la classe C Appel de méthode pour interfaces (invokeinterface) D x ; x.foo(arg) Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
33 Hachage Parfait Troisième Millénaire Etude de quelques techniques particulières Expérimentation avec des fonctions de hachage simples and et modulo complexité faible et algorithmes exacts simples Simulation sur les benchmarks précités Intrinsèquement incrémental Conclusions mitigées trop grande tables avec and la division entière est trop lente! Cherche fonction de hachage... 2 opérations à 1 cycle, garantissant des tables compactes. Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
34 Troisième Millénaire Schéma de compilation séparée avec optimisations globales Compilation séparée et optimisation globale Quadrature du cercle Compilation séparée : génération de code C, compilé séparément Optimisations globales à l édition de liens Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
35 Troisième Millénaire Schéma de compilation séparée avec optimisations globales Compilation séparée et optimisation globale Quadrature du cercle Compilation séparée : génération de code C, compilé séparément Optimisations globales à l édition de liens Optimisations Analyse de types Invocation de méthodes : Coloration pour les appels mégamorphes Arbres de décision binaires pour les appels oligomorphes Appel statique dans les cas monomorphes Elimination du code mort. Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
36 Troisième Millénaire Schéma de Compilation Schéma de compilation séparée avec optimisations globales phase locale Module source A compilation séparée schéma A externe schéma interne A code A analyse inter classes schéma global vivant phase globale phase locale Module source B compilation séparée schéma externe B schéma B interne code B coloration substitution de code édition de liens Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
37 Le langage PRM Troisième Millénaire Le langage PRM Un langage objet normal (donc unique!) statiquement typé avec héritage multiple basé sur un méta-modèle simple. Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
38 Le langage PRM Troisième Millénaire Le langage PRM Un langage objet normal (donc unique!) statiquement typé avec héritage multiple basé sur un méta-modèle simple. Une innovation majeure des modules avec du raffinement de classes Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
39 Le langage PRM Troisième Millénaire Le langage PRM Un langage objet normal (donc unique!) statiquement typé avec héritage multiple basé sur un méta-modèle simple. Une innovation majeure des modules avec du raffinement de classes Un compilateur modulaire, PRMc architecture basée sur les modules et le raffinement de classes Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
40 Benchmarks Troisième Millénaire Le langage PRM Size of the Exec. (kb) g++ SmartEiffel prmc w/ btd prmc w/ vft Number of Classes Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
41 Benchmarks Troisième Millénaire Le langage PRM Time (s) g++ SmartEiffel prmc w/ btd prmc w/ vft Size of the Concrete Type of the Reicever Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
42 Benchmarks Troisième Millénaire Le langage PRM Time (s) g++ SmartEiffel prmc Size of the Concrete Type of the Casted Expression Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
43 Benchmarks Troisième Millénaire Le langage PRM Time (s) g++ SmartEiffel prmc Size of the Concrete Type of Receiver Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
44 Perspectives Troisième Millénaire Perspectives sur le millénaire A court terme : Benchmarks sur PRMc autant de versions du compilateur que de techniques à tester ; autant de versions du compilateur que de versions du compilateur pour le compiler ; le vertige! Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
45 Perspectives Troisième Millénaire Perspectives sur le millénaire A court terme : Benchmarks sur PRMc autant de versions du compilateur que de techniques à tester ; autant de versions du compilateur que de versions du compilateur pour le compiler ; le vertige! A moyen terme : Machine virtuelle PRM la coloration n est pas incrémentale, le raffinement de classes non plus. Enfin un problème intéressant! Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
46 Troisième Millénaire Bilan Ne pas céder aux sirènes de la spécialisation! Besoin d étudiants très polyvalents programmation, de C à YAFOOL et PRM, impérative, fonctionnelle, objet algorithmique pointue analyse syntaxique, compilation, interprétation architecture des machines proba-stats un zest d Aristote et de Spinoza Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
47 Troisième Millénaire Bilan Ne pas céder aux sirènes de la spécialisation! Besoin d étudiants très polyvalents programmation, de C à YAFOOL et PRM, impérative, fonctionnelle, objet algorithmique pointue analyse syntaxique, compilation, interprétation architecture des machines proba-stats un zest d Aristote et de Spinoza Durée de thèse Sur un tel sujet, en partant de rien, 4 ans c est extrêmement court! Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
48 Troisième Millénaire Bilan Publications Difficile et long! 180 pages actuellement soumises : ACM Computing Surveys (soumis 2002, révisé 2005,...) ACM Trans. on Progr. Lang. Syst. (soumis 2005, révisé 2006) 4 refus successifs à ECOOP et OOPSLA! 1 workshop (conférence) ACM PASTE 1 workshop (workshop) à ECOOP 4 LMO (francophone) Commentaires revues : liberté de soumission mais délais et longueurs papier jamais assez autosuffisant ECOOP/OOPSLA : trop de sélection tue Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
49 Plan Quatrième millénaire 1 Contexte et Motivation 2 Deuxième Millénaire 3 Troisième Millénaire Problématique de l implémentation des objets Etude de quelques techniques particulières Schéma de compilation séparée avec optimisations globales Le langage PRM Perspectives sur le millénaire Bilan 4 Quatrième millénaire Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
50 Quatrième millénaire Le vicomte de Bragelonne ( c A. Dumas) Le règne de PRM tout le monde programme en Prm la hot-line sonne sans arrêt l âge de la retraite est repoussé tous les siècles on s ennuie... Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
51 Quatrième millénaire import string import file println("that s all folks") d après A. Dumas, dessins F murr. Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
52 Quatrième millénaire import string import file println("that s all folks") d après A. Dumas, dessins F murr. Roland Ducournau (lirmm/info/doc) Implémentation des Langages Objets 16 novembre / 34
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.
Plus en détailMémoire de stage de Master 2
Académie de Montpellier Sciences et Techniques du Languedoc Mémoire de stage de Master 2 effectué au Laboratoire d Informatique de Robotique et de Micro-électronique de Montpellier Spécialité : AIGLE Étude
Plus en détailTraduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
Plus en détailChapitre 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
Plus en détailCours 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
Plus en détailObjets 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
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é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é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étailEntraî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
Plus en détailLangage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2
Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD
Plus en détailMesure et modélisation de l énergie logicielle
Mesure et modélisation de l énergie logicielle Adel Noureddine, Romain Rouvoy, Lionel Seinturier Green Days @ Lille 29 novembre 2013 Plan Contexte! Problèmes et limitations! Mesure énergétique des logiciels
Plus en détailEfficient Object Versioning for Object- Oriented Languages From Model to Language Integration
Efficient Object Versioning for Object- Oriented Languages From Model to Language Integration Pluquet Frédéric July, 3rd 2012 Etude de techniques efficaces de versionnement d objets pour les langages orientés
Plus en détailBases 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
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étailIntroduction à 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
Plus en détailPré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)
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étailSolution A La Gestion Des Objets Java Pour Des Systèmes Embarqués
International Journal of Engineering Research and Development e-issn: 2278-067X, p-issn: 2278-800X, www.ijerd.com Volume 7, Issue 5 (June 2013), PP.99-103 Solution A La Gestion Des Objets Java Pour Des
Plus en détailLambda! Rémi Forax Univ Paris-Est Marne-la-Vallée
Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée forax at univ-mlv dot fr - ParisJUG Java.next() - Mars 2012 What Else? Lambda == Inner class? Java a des lambdas depuis la version 1.1 Exemple utilisant
Plus en détailPrincipes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Plus en détailLa NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.
La NP-complétude Johanne Cohen PRISM/CNRS, Versailles, France. Références 1. Algorithm Design, Jon Kleinberg, Eva Tardos, Addison-Wesley, 2006. 2. Computers and Intractability : A Guide to the Theory of
Plus en détailEnvironnements de développement (intégrés)
Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Plus en détailLangage 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 gauthier.picard@emse.fr
Plus en détailGestion hybride de la mémoire dynamique dans les systèmes Java temps-réel
Gestion hybride de la mémoire dynamique dans les systèmes Java temps-réel Nicolas Berthier Stage de Magistère M encadré par Christophe Rippert et Guillaume Salagnac Laboratoire Vérimag Septembre 007 Résumé
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étailPerspectives pour l entreprise. Desktop Cloud. JC Devos IBM IT Architect jdevos@fr.ibm.com. 2010 IBM Corporation
Perspectives pour l entreprise Desktop Cloud JC Devos IBM IT Architect jdevos@fr.ibm.com Principe technique Disposer d un poste de travail virtuel accessible par la plupart des terminaux disponibles Ce
Plus en détailTP1 : 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
Plus en détailEnseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing
Enseignant: Lamouchi Bassem Cours : Système à large échelle et Cloud Computing Les Clusters Les Mainframes Les Terminal Services Server La virtualisation De point de vue naturelle, c est le fait de regrouper
Plus en détailContributions à l expérimentation sur les systèmes distribués de grande taille
Contributions à l expérimentation sur les systèmes distribués de grande taille Lucas Nussbaum Soutenance de thèse 4 décembre 2008 Lucas Nussbaum Expérimentation sur les systèmes distribués 1 / 49 Contexte
Plus en détail6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses
6. Hachage Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses PLAN Définition Fonctions de Hachage Méthodes de résolution de collisions Estimation
Plus en détailGénéralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Plus en détailPHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau
Performances PHP Julien Pauli Cyril Pierre de Geyer Guillaume Plessis Préface d Armel Fauveau Groupe Eyrolles, 2012, ISBN : 978-2-212-12800-0 Table des matières Avant-propos... 1 Pourquoi ce livre?.....................................................
Plus en détailConception et contrôle des SMA tolérants aux fautes
Conception et contrôle des SMA tolérants aux fautes Une plate-forme multiagents tolérante aux fautes à base de réplication Nora FACI Contexte SMA large échelle Nombre important d agents Ressources éloignées
Plus en détailSSTIC 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
Plus en détailRemote Method Invocation en Java (RMI)
Remote Method Invocation en Java (RMI) Modélisation et construction des applications réparties (Module M-4102C) J. Christian Attiogbé Fevrier 2015 J. Christian Attiogbé (Fevrier 2015) Remote Method Invocation
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étailLa carte à puce. Jean-Philippe Babau
La carte à puce Jean-Philippe Babau Département Informatique INSA Lyon Certains éléments de cette présentation sont issus de documents Gemplus Research Group 1 Introduction Carte à puce de plus en plus
Plus en détailInfo0101 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
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étailMATHEMATIQUES ET SCIENCES POUR L INGENIEUR
MASTER SCIENCES, TECHNOLOGIES, SANTE/STAPS MATHEMATIQUES ET SCIENCES POUR L INGENIEUR Informatique www.univ-littoral.fr OBJECTIFS DE LA FORMATION Le master Informatique se compose de deux parcours et se
Plus en détailMachines Virtuelles. et bazard autour. Rémi Forax
Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]
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étailDéveloppement d un interpréteur OCL pour une machine virtuelle UML.
ObjeXion Software Prototyping made easy SA au capital de 500 000 F Siret 421 565 565 00015 APE 722Z Téléphone : 03 89 35 70 75 Télécopie : 03 89 35 70 76 L embarcadère 5, rue Gutemberg 68 800 Vieux-Thann,
Plus en détailMaster Informatique Aix-Marseille Université
Aix-Marseille Université http://masterinfo.univ-mrs.fr/ Département Informatique et Interactions UFR Sciences Laboratoire d Informatique Fondamentale Laboratoire des Sciences de l Information et des Systèmes
Plus en détailmodè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
Plus en détailApache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG 07.11.2011
Apache Camel & Entreprise Integration Patterns Raphaël Delaporte BreizhJUG 07.11.2011 1 Speaker CTO Zenika Ouest Consultant et formateur Responsable comité technique Architecture d'entreprise Domaine ESB
Plus en détail1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions
Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux
Plus en détailas 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
Plus en détailGé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
Plus en détailMEAD : temps réel et tolérance aux pannes pour CORBA
MEAD : un intergiciel temps-réel et tolérant aux pannes pour CORBA Master 2 Informatique Recherche Université de Marne-la-Vallée Vendredi 3 mars 2006 Plan 1 Introduction 2 Solutions existantes 3 Concilier
Plus en détailOpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Plus en détailPour les entreprises de taille moyenne. Descriptif Produit Oracle Real Application Clusters (RAC)
Pour les entreprises de taille moyenne Descriptif Produit Oracle Real Application Clusters (RAC) POURQUOI VOTRE ENTREPRISE A BESOIN DE CLUSTERISER LES SERVEURS La continuité opérationnelle est cruciale
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étailBES WEBDEVELOPER ACTIVITÉ RÔLE
BES WEBDEVELOPER ACTIVITÉ Le web developer participe aux activités concernant la conception, la réalisation, la mise à jour, la maintenance et l évolution d applications internet/intranet statiques et
Plus en détailProjet 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
Plus en détailDiagrammes de Package, de déploiement et de composants UML
labsticc.univ-brest.fr/pages_perso/babau/ Diagrammes de Package, de déploiement et de composants UML Jean-Philippe Babau Département Informatique, UFR Sciences, Laboratoire Lab-STICC 2 1 Plan Description
Plus en détailWebObjects : des applications dynamiques pour Internet et Intranet. Approche technologique
WebObjects : des applications dynamiques pour Internet et Intranet Approche technologique Apple Entreprise Software & Services Juin 1998 Sommaire Synthèse 4 WebObjects, des besoins aux solutions 6 Cahier
Plus en détailLaboratoire d informatique Gaspard-Monge UMR 8049. Journée Labex Bézout- ANSES
Laboratoire d informatique Gaspard-Monge UMR 8049 Journée Labex Bézout- ANSES Présentation du laboratoire 150 membres, 71 chercheurs et enseignants-chercheurs, 60 doctorants 4 tutelles : CNRS, École des
Plus en détailParcours en deuxième année
Parcours en deuxième année Unités d Enseignement (UE) ECTS Ingénierie des réseaux haut 4 débit Sécurité des réseaux et 4 télécoms Réseaux mobiles et sans fil 4 Réseaux télécoms et 4 convergence IP Infrastructure
Plus en détailLa virtualisation, si simple!
La virtualisation, si simple! par Michel Guy Paiement Les mardi 15 juin 2010 & jeudi 17 juin 2010 Securecom Services Conseils inc. 507, Place D Armes, bureau 1160 Montréal, Québec H2Y 2W8 Tél: 514 544-0442
Plus en détailRetour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales
Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales Cécile Cavet cecile.cavet at apc.univ-paris7.fr Centre François Arago (FACe), Laboratoire
Plus en détailALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
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étailLe programme d examens du Bureau canadien des conditions d admission en génie d Ingénieurs Canada englobe 19 domaines du génie.
INTRODUCTION Le programme d examens du Bureau canadien des conditions d admission en génie d Ingénieurs Canada englobe 19 domaines du génie. Le programme d examens de chaque domaine se divise en deux catégories
Plus en détailIyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1
SysCom - CReSTIC Université de Reims 17/02/2011 1 Motivation Gestion des expérimentations Avec les workflows Simulation Simulation des Systèmes Distribués ANR USS SimGrid Campagne de Test et gestion de
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étailCalcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane
Calcul de développements de Puiseux et application au calcul du groupe de monodromie d'une courbe algébrique plane Poteaux Adrien XLIM-DMI, UMR-CNRS 6172 Université de Limoges Soutenance de thèse 15 octobre
Plus en détailAnne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2
Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................
Plus en détailLMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Plus en détailDES METIERS POUR DEMAIN
DES METIERS POUR DEMAIN Atelier «Offrir une mission globale» Pôle LES MISSIONS DE DEMAIN www.experts comptables.fr/65 DES METIERS POUR DEMAIN SOMMAIRE 1. Service de domiciliation, gestion administrative
Plus en détailF. Barthélemy. 17 mai 2005
Typage de la généricité en Java F. Barthélemy 17 mai 2005 1 Le shéma général La g én éricit é en Java est un ajout r éalis é sur un langage existant depuis d éjà une dizaine d ann ées, avec des contraintes
Plus en détailLaboratoire 4 Développement d un système intelligent
DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI LOG770 - SYSTÈMES INTELLIGENTS ÉTÉ 2012 Laboratoire 4 Développement d un système intelligent 1 Introduction Ce quatrième et dernier laboratoire porte sur le développement
Plus en détailConception de réseaux de télécommunications : optimisation et expérimentations
Conception de réseaux de télécommunications : optimisation et expérimentations Jean-François Lalande Directeurs de thèse: Jean-Claude Bermond - Michel Syska Université de Nice-Sophia Antipolis Mascotte,
Plus en détailCommunications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes
Loris MARCHAL Laboratoire de l Informatique du Parallélisme Équipe Graal Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes Thèse réalisée sous la direction
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é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étailRTDS G3. Emmanuel Gaudin emmanuel.gaudin@pragmadev.com
RTDS G3 Emmanuel Gaudin emmanuel.gaudin@pragmadev.com 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,
Plus en détailCONTRAT DE LICENCE D UTILISATION DU LOGICIEL MORPH M SOUS LA FORME MORPH M PYTHON
CONTRAT DE LICENCE D UTILISATION DU LOGICIEL MORPH M SOUS LA FORME MORPH M PYTHON Version du 3 mai 2007 PREAMBULE ARMINES via le Centre de Morphologie Mathématiques commun à ARMINES et l Ecole des Mines
Plus en détailRMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailCMS Open Source : état de l'art et méthodologie de choix
CMS Open Source : état de l'art et méthodologie de choix Définition d'un CMS (wikipedia) Les CMS sont une famille de logiciel de conception et de mise à jour dynamique de sites web partageant les fonctionnalités
Plus en détailCAHIER DES CHARGES DE REALISATION DE SITE INTERNET
CAHIER DES CHARGES DE REALISATION DE SITE INTERNET Nom de l entreprise : Adresse : Tel : Fax : Email : Personne à contacter dans l entreprise : 1 SOMMAIRE 1 PRESENTATION DE L ENTREPRISE...3 2 PRESENTATION
Plus en détailReprésentation d un entier en base b
Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir
Plus en détailPour 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
Plus en détailChapitre 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
Plus en détailJava et les bases de données
Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples
Plus en détailOPEN DATA : CHALLENGES ET PERSPECTIVES D ENTREPOSAGE
OPEN DATA : CHALLENGES ET PERSPECTIVES D ENTREPOSAGE «Journée Open Data» 5 Novembre 2013 Présenté par : Imen Megdiche Directeur de thèse : Pr. Olivier Teste (SIG-IRIT) Co-directeur de thèse : Mr. Alain
Plus en détailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détail4 Exemples de problèmes MapReduce incrémentaux
4 Exemples de problèmes MapReduce incrémentaux 1 / 32 Calcul des plus courtes distances à un noeud d un graphe Calcul des plus courts chemins entre toutes les paires de noeuds d un graphe Algorithme PageRank
Plus en détailLangage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes
Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition
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étailIRL : Simulation distribuée pour les systèmes embarqués
IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation
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é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étailQuatriè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
Plus en détailCours 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
Plus en détailUE 8 Systèmes d information de gestion Le programme
UE 8 Systèmes d information de gestion Le programme Légende : Modifications de l arrêté du 8 mars 2010 Suppressions de l arrêté du 8 mars 2010 Partie inchangée par rapport au programme antérieur Indications
Plus en détailHigh Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi
Thèse High Performance by Exploiting Information Locality through Reverse Computing Présentée et soutenue publiquement le 21 décembre 2011 par Mouad Bahi pour l obtention du Doctorat de l université Paris-Sud
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étail