Faculté I&C, Claude Petitpierre, André Maurer Le parallélisme Introduction.

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
PHP5 poo.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Faculté I&C, Claude Petitpierre, André Maurer 1 Systèmes multi-processus C. Petitpierre
Faculté I&C, Claude Petitpierre, André Maurer 1 Héritage par prototype Héritage dattributs ou de méthodes Héritage de constructeurs.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Javascript les spécificités du langage - Partie 3 -
Javascript les spécificités du langage - Partie 6 -
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Faculté I&C, Claude Petitpierre, André Maurer 1 Java.
Faculté I&C, Claude Petitpierre, André Maurer What is this ? (Quest ce que this ?)
Faculté I&C, Claude Petitpierre, André Maurer Les objets Introduction.
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
Présentation de la séquence de cours sur les interactions HTML-javascript Laure Walser, 11 juin 2010.
Faculté I&C, Claude Petitpierre, André Maurer setTimeout ( nomDeFonction, 1000 ) setTimeout ( instructions, 1000 ) setTimeout ( nomDeFonction(), 1000 )
Objets Javascript Mécanismes internes Le concept et la construction dobjets
Faculté I&C, Claude Petitpierre, André Maurer Evénements en Javascript prototype.js.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Faculté I&C, Claude Petitpierre, André Maurer 1 JavaCC Java compilers compiler (version générant du Javascript)
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Introduction au paradigme orienté-objet (suite)
Présentation Structures de Données et TDA
Programmation concurrente
Faculté I&C, Claude Petitpierre, André Maurer Scalable vector graphics SVG (documentation en français – voir menu.
Faculté I&C, Claude Petitpierre, André Maurer 1 Concepts dhéritage Héritage dimplémentation hasA Héritage de spécialisation isA.
Faculté I&C, Claude Petitpierre, André Maurer Le parallélisme Introduction.
Faculté I&C, Claude Petitpierre, André Maurer Gestion des fichiers de LemanOS Ne fonctionne que sous LemanOS. On peut voir les fichiers créés dans ce système.
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
8PRO100 Éléments de programmation Les types composés.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Faculté I&C, Claude Petitpierre, André Maurer JavaCC Java compilers compiler (version générant du Javascript)
Animateur : Med HAIJOUBI
LE LANGAGE JAVASCRIPT LES TABLEAUX ET LES FONCTIONS.
Faculté I&C, Claude Petitpierre, André Maurer Scalable vector graphics SVG (documentation en français – voir menu.
JavaScript Nécessaire Web.
Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité.
11/04/ L'héritage Cours 7 Cours 7.
Créer des packages.
Faculté I&C, Claude Petitpierre, André Maurer 1 JSON Templates json.org (fin de la page: json-template.js)
Tutorat en bio-informatique
Résumé des concepts liés aux objets C. Petitpierre, EPFL.
Entrées / Sorties.
PHP 7° PARTIE : PROGRAMMATION OBJET
Tutorat en bio-informatique Le 14 novembre Au programme… Les objets –Propriétés (attributs) –Constructeurs –Méthodes.
Réaliser par: Sadok Amel Cheboui hassiba
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Méthodes et outils de conception Introduction à la programmation Paramètre de retour Appel d’une fonction Portée des variables Définition Pourquoi les.
Les types composés Les enregistrements.
Asynchronous JavaScript And XML AJAX C. Petitpierre
Héritage Conception par Objet et programmation Java
Faculté I&C, Claude Petitpierre, André Maurer Exercice sur les bases de données Quelques rappels et conseils (voir Aides > Accès à la base de données)
Modules créés au moyen d’objets C. Petitpierre. Objets construits sans constructeurs ( en Java on a introduit la réflexion pour cela ) var obj1 = { }
Initiation aux bases de données et à la programmation événementielle
FLASH SEANCE 2 Interaction avec Action Script. Action script Langage de programmation utilisé par Flash. Définir des propriétés, des actions des comportements.
Flash 2 ème séance Interaction François Marliac Mickaël Moreira.
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
Amine Benabdennbi - Omar Berrada Rekhami Flash 2 – Interactivité Avancée Flash 2 Séance de Flash n°2 TD SI28 du 16/04/2007 Amine Benabdennbi Omar Berrada.
Sommaire : -A propos des images importées -Les boutons et l’interactivité dans la scène -Textes dynamiques -Les clips (les liaisons) -Les sons -Les composants.
Flash – séance 2 Interactions avec Action Script.
IFT359 – Programmation fonctionnelle Thème 07 Fermeture, affectation ou monades 1.
Transcription de la présentation:

Faculté I&C, Claude Petitpierre, André Maurer Le parallélisme Introduction

Faculté I&C, Claude Petitpierre, André Maurer Evénement chaînés onload="f()" f() { } setTimeout(f, 100) f() { } setTimeout(f, 100) f() { } setTimeout(f, 100) onload="setInterval(f, 100)" f() { } } }

Faculté I&C, Claude Petitpierre, André Maurer this.f ? Problème lors du chaînage de la méthode dun objet obj = { f : function() { } x : 15 } setTimeout(this.f, 100) f() { } this.x ? moteur setTimeout(this.f, 100) this.x Possible this est perdu !

Faculté I&C, Claude Petitpierre, André Maurer Closures Le chaînage des appels doit être fait par closure ! Une closure = une fonction + son environnement de variables locales Toute fonction définie à lintérieur dune autre fonction est en fait une closure Sorte de mini-objet 1

Faculté I&C, Claude Petitpierre, André Maurer Closure var x = null function createClosure (arg) { var vLocale = 10 x = function uneClosure(a) { // fonction définie dans alert(vLocale + a + arg) // une autre fonction }... createClosure(45) x(22)

Faculté I&C, Claude Petitpierre, André Maurer Closure Autre façon dy accéder function createClosure (arg) { var vLocale = 10 return function uneClosure(a) { alert(vLocale + a + arg) }... var x = createClosure(45) x(22)

Faculté I&C, Claude Petitpierre, André Maurer Closure function createClosure (arg) { var vLocale = 10 return function uneClosure(a) { alert(vLocale + a + arg) } 1.Même après la fin de createClosure, lenvironnement contenant les variables locales de cette fonction sont gardées et restent accessibles dans la fonction uneClosure. 2.Si lon crée deux closures dans la même fonction, elles partagent le même environnement (qui est celui de la fonction englobante)

Faculté I&C, Claude Petitpierre, André Maurer Animation dans un objet var activeObj = { couleur : "green" run1 : function() { alterneCouleur(this.couleur) var that = this // that est un nom arbitraire clos = function() { that.run2() } setTimeout( clos, 500 ) }, run2 : function() { alterneCouleur("red") var that = this setTimeout( function() { that.run1() }, 500 )}

Faculté I&C, Claude Petitpierre, André Maurer Une autre possibilité de définir la séquence var activeObj = { etat : 0, run : function() { switch (etat) { case 0: alterneCouleur("green") etat = 1 break case 1: alterneCouleur("red") etat = 0 break } var that = this setTimeout( function() { that.run() }, 500)}

Faculté I&C, Claude Petitpierre, André Maurer Threads La séquence ininterrompue dappels par timeout constitue le fil (de lhistoire), en anglais thread. Si lon crée plusieurs objets de ce type, on pourra garder plusieurs fils actifs indépendants. Un thread est un moyen de suivre plusieurs activités sans les mélanger. Ce concept est à la base de la programmation pseudo- parallèle. Java, C++… offrent des moyens pour créer des threads. En C++, ils ne sont pas liés à un objet. Dans ces langages, le fil peut être commuté à tout instant, pas seulement entre les fonctions. Exemple

Faculté I&C, Claude Petitpierre, André Maurer Au moyen dun constructeur function Actif () { var etat = 0 var that = this <<<<<< this.couleur = "green" this.run = function() { switch (etat) { case 0: alterneCouleur("green") etat = 1 break case 1: alterneCouleur("red") etat = 0 break } setTimeout( function() { that.run() }, 500)}

Faculté I&C, Claude Petitpierre, André Maurer Extension de Javascript (Compilateur + librairies de LemanOS) process XYZ (nom) { this.run() { for (;;) { waituntil(now() ) }

Faculté I&C, Claude Petitpierre, André Maurer Découpage par le compilateur this.run = function() { for(;;) { switch(_state) { case 10000: if (x>0) { if (!(x>0)) {_state=10002;break} _state = waituntil(now()+10) setTimeout(that.run, 10) return case 10001: x = 10 } case 10002: x=0 x = 0 break } } }} compilation

Faculté I&C, Claude Petitpierre, André Maurer Synchronisation entre objects rendez-vous process XYZ (nom, p1) { this.run() { for (;;) { waituntil(now() ) p1.meth() }}} process XYZ (nom, p1) { this.meth = function() { } this.run() { for (;;) { accept meth }}}

Faculté I&C, Claude Petitpierre, André Maurer Attentes concurrentes this.run(nom) { select { case p1.m1() case p2.m2() } this.m1 = function()( { } this.run(nom) { select { case accept m1 case p2.m2() } this.m2 = function()( { } this.run(nom) { select { case accept m2 } Trois rendez-vous possibles

Faculté I&C, Claude Petitpierre, André Maurer kernel.js prêts rendez-vous délais

Faculté I&C, Claude Petitpierre, André Maurer Oiseaux passant par un couloir Programme Programme process Oiseau() { this.run = function() { for(;;) { // avant le couloir couloir.entrer() // avancer dans le couloir couloir.sortir() // après le couloir } } } process Couloir() { this.entrer() { } this.sortir() { } this.run = function() { for(;;) { accept entrer accept sortir } } }

Faculté I&C, Claude Petitpierre, André Maurer select avec toutes les possibilités select { case when (i==0) x = proc.meth() x = x + 1 case when (y>0) accept m2 case when (y<0) waituntil(now() ) }

Faculté I&C, Claude Petitpierre, André Maurer Boîte aux lettres // quoi process Poste(nom) { this.fifo = [ ] this.deposer = function (paquet) { this.fifo.push(paquet) } this.prendre= function () { return this.fifo.shift() }... // quand... this.run = function () { for (;;) { select { case accept deposer case when (this.fifo.length>0) accept prendre } waituntil(now()+400) } } } Programme 1 Programme 2