Programmation Réactive

Slides:



Advertisements
Présentations similaires
Yassine Lakhnech Prof. UJF Verimag
Advertisements

Model de control optimal vs model de système dynamique
Projets Dossier de conception Logiciel
Karima Boudaoud, Charles McCathieNevile
IREMIA : Institut de REcherche en Mathématiques et Informatique Appliquées Université de la Réunion Uniformisation des mécanismes de conception de SMA.
Rhum Un ORB réactif Laurent Hazard FT R&D DTL/ASR 22/02/02.
Sémantique1 Sémantique de Junior t, E b t instruction initiale t instruction à la fin de la réécriture E environnement initial E environnement à la fin.
Etudiants : Benjamin BLANC Cyrille KLUZEK Encadreur :
Détection des collisions dans un moteur 3D temps réel
Etude du cas de la motorisation hybride
Hiver 2005Maj JGA Beaulieu & Capt MWP LeSauvage GEF 243B Programmation informatique appliquée Considération de temps.
J. Paul Gibson Bureau A 207, Le département LOgiciels-Réseaux
Conception de Programmes Evolutifs Pré Soutenance de TER Année Encadrants : Cathy Escazut et Michel Gautero Auteurs: Paul-Kenji Cahier Sylvain.
Prototype de plate-forme de Tribus Instantanées :
DUDIN Aymeric MARINO Andrès
PLAN du COURS Introduction Structure des Systèmes Informatiques
UML - Présentation.
Objectif de l’exposé.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
Phase de préparation des itérations Produit Story 11 Release1 Story 1mStory 21 Release2 Story 2m… …
Tests et Validation du logiciel
Système de gestion de bases de données. Modélisation des traitements
BTS SIO : Stage première année – Création d’un site web interactif
CSI3525: Concepts des Langages de Programmation Notes # 5: Langages de Programmation Fonctionelle I: Introduction au Scheme.
TER Simulation Spatiale
18/10/2004 P. Van Roy, InfoT4, S5 1 Informatique T4 Solutions au Test du 18 octobre Peter Van Roy Département dIngénierie Informatique, UCL
Prise de décision dans les shooters TER 08/09 Sandrine Buendia
XML-Family Web Services Description Language W.S.D.L.
le profil UML en temps réel MARTE
Analyse et Conception des Systèmes d’Informations
Les systèmes de jeux deviennent de plus en plus complexes, nécessitant que lIntelligence Artificielle progresse elle aussi en parallèle. Dans ce contexte,
Algorithmique et Programmation
Introduction à la programmation (Java)
[photo d'un système] Schéma ordonnancement XML Évaluation Code C Modélisation Solution GÉNÉRATEUR AUTOMATIQUE DE CODE pour OUTIL DE MODÉLISATION-IMPLANTATION.
Soutenance Orale, TER 2002 Equipe TENEBRION / J.P. Arcangeli
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Les nouveaux modes dinteraction 23 novembre 2010 Mireille Bétrancourt - TECFA, FPSE - Cours Ergonomie des IPM TECFA Technologies pour la Formation et lApprentissage.
CSI3525: Concepts des Languages de Programmation
Réaction aux collisions dans les animations physiques François Faure, Olivier Galizzi GRAVIR Projet commun CNRS,INRIA,INPG,UJF 1 1.
Programmation non procédurale Le projet ECOLE 2000
Présentation Technique Gestionnaire des Ressources Système (GRS)
Paradigmes des Langages de Programmation
Sysml et le domaine de l’architecture et construction
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Julien Pley – Équipe ADEPT Colloque de DEA 2001/2002
Institut Supérieur des Sciences Appliquées et de Technologie Sousse
Algorithmes et Programmation
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Introduction au Génie Logiciel
J. Cardoso — C. Sibertin-Blanc — C
Université de Cergy-Pontoise, 7 juin 2006 Aibo Compagnon.
Projet de Fin d’Etudes – Optimisation SSE 1/28. 1) Présentation du Stage 2) Les instructions SSE 3) Algorithme DSP Audio Conclusion 2/28 Projet de Fin.
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Présentation du framework JSF (Java Server Faces) dans le modèle événementiel MVCII
10 juin 2008 Journée Technologies et Enjeux de l'Apprentissage Mobile Equipe SIMBAD.
Entity/Facet/Pattern Une application qui en a…
L’enseignement de spécialité SLAM
Application à la viabilité des systèmes irrigués à Podor de la modélisation à la restitution aux paysans Olivier Barreteau.
Projet de Maîtrise Simulation 3D d’atomes robotiques Detanger Pierre-Gilles He Xue Feng Mauny Stéphane Villers Julien.
Club Utilisateurs Salesforce.com France
Cesi RILA 2014 – Projet Java Julian Mauborgne
LES SIMULATEURS RÉSEAU
Projet GDS de l’ACI MD Projet PARIS IRISA, Rennes.
D’après une présentation de A. Conti
Initiation aux bases de données et à la programmation événementielle
Flash 2 ème séance Interaction François Marliac Mickaël Moreira.
1 Monopalme Projet 4 Info Présentation finale LE LAY Olivier MAHE Jocelyn FORM Nicolas HENRY Gurvan BONNIN Thomas BASSAND Guillaume Décembre 2009 MONNIER.
Mercredi 1er juin 2016 Valorisation de la BD LISA Proposition de 3 services en ligne BRGM / STI / DVI Pierre Lagarde.
Présentation Scratch10 mars 2016 Présentation Scratch Lycée De La Salle Jeudi 10 mars 2016.
Compilation & Apprentissage dans les Réseaux de Contraintes Hervé Cros Directeurs :Frédéric Koriche Joël Quinqueton.
Transcription de la présentation:

Programmation Réactive MIZERA Frédéric ZUCCHINI Gilles CIABRINI Damien WOELFFLE Thierry

TER Programmation Réactive PLAN Contraintes et objectifs Choix d’implémentation Le langage réactif Le Réactif dans le jeu Conclusion sur les essais réalisés TER Programmation Réactive

Contraintes et objectifs Nécessité du jeu : faire évoluer des objets en concurrence entités du jeu autonomes synchronisation précise partie visuelle pas trop complexe  Choix d’un billard en 3D TER Programmation Réactive

Déroulement d’une phase de jeu Boule blanche frappée... Pour toutes les boules : Fin du tour quand il n’y a plus de mouvement. Mouvement Collisions : - boules - trous - murs Inertie Rendu Tant que la boule n’est pas tombée TER Programmation Réactive

Choix d’implémentation Programmation par “thread” pas assez précise : ordonnancement des tâches imprévisible manque d’équité entre les différents threads implémentation fastidieuse  Programmation réactive apporte une solution … TER Programmation Réactive

La programmation réactive Propriétés : fait évoluer des entités en concurrence n’utilise pas de thread gestion intégrée de la synchronisation (instant) communication par événements (diffusion instantanée) Domaine d’application : contraintes de synchronisation “forte” TER Programmation Réactive

La programmation réactive Junior : implémentation du modèle réactif en Java développé par F.Boussinot (Mimosa - INRIA) initialement conçu pour les jeux Senior, moteur réactif utilisé pour le jeu : version Scheme, inspirée de Junior développé par J.Demaria (INRIA) pour Bigloo TER Programmation Réactive

TER Programmation Réactive Besoins annexes Connexions développées pour Bigloo : SDL OpenGL Moteur 3D complémentaire : API Scheme en modèle « objet » optique de programmation de plus haut-niveau TER Programmation Réactive

TER Programmation Réactive Le langage réactif La machine réactive : instancier une machine (define ma-machine (machine&)) ajouter des instructions (add& ma-machine instr . L) faire « réagir » la machine (react& ma-machine) Deux grandes classes d ’instructions : contrôle de l’exécution des instructions communication / synchronisation entre les « tâches » TER Programmation Réactive

Contrôle de l’exécution Mise en séquence (seq& (atom& (print "s1")) (atom& (print "s2"))) Résultat : s1 s2 Mise en parallèle (par& (atom& (print "s1")) (atom& (print "s2"))) Résultat : s1 s2 s2 s1 ou TER Programmation Réactive

TER Programmation Réactive Synchronisation Exemple avec deux tâches : (par& (loop& (atom& (print "gen")) (generate& ‘event) (stop&)) (scan& ‘event (print "catched"))))  Communication par événements non valués TER Programmation Réactive

TER Programmation Réactive Le Réactif dans le jeu Durée de vie d’un comportement (until& ‘fire-ball-ok (loop& (scan& ‘return-pressed (launch-whiteball o) (generate-in-machine& ‘fire-ball-ok)))) Ajout dynamique d’instructions TER Programmation Réactive

TER Programmation Réactive Le Réactif dans le jeu Formes Scheme réactives : funcall&, apply& Utilisation avancée des événements : valués locaux (define (render o) (loop& (generate& ‘refresh o) (stop&))) (define (refresh) (loop& (scan& ‘refresh (render-obj3d (the-value&))))) TER Programmation Réactive

Exemple non trivial : la boule (define (ball-behavior o)  (local& 'fallen  (until& 'fallen  (par& (funcall& move o) (funcall& collision o) (funcall& inertia o) (funcall& render o) (funcall& fall o)) (atom& (print "killed"))))) (define (fall o) (loop& (if& (is-fallen o)  (generate& 'fallen)) (stop&)))  Evénement local  Durée de vie du comportement  Mise en parallèle de lambdas réactives TER Programmation Réactive

TER Programmation Réactive Utilité du projet Couche « multimédia » rajoutée à Bigloo : SDL, OpenGL, moteur 3D réutilisables Utilisation avancée de Senior : Billard entièrement réalisé en réactif Sémantique de Senior modifiée : (funcall& render obj) copie profonde de obj supprimée TER Programmation Réactive

TER Programmation Réactive Avis personnels Avantages : apprentissage assez rapide réel bénéfice de la couche Scheme faibles ressources machine nécessaires postage d’événements “instantané” sémantiques de certaines instructions Inconvénients : manque de souplesse de certaines instructions manque d’orthogonalité dans la communication avec la machine TER Programmation Réactive

TER Programmation Réactive Conclusion Réponse aux besoins de tests Le billard a permit de valider l’API Senior Senior pratique à l’usage : comportement de la boule  10 lignes comportement du jeu entier  700 lignes TER Programmation Réactive

TER Programmation Réactive Conclusion Programmation réactive puissante par rapport aux threads : 100 boules sur le billard mécanismes de synchronisation automatique bénéfices énormes pour de plus gros jeux TER Programmation Réactive