Home DE ES FR


Advanced Search

Our On-Line PhDs

Submit a Thesis
My Account Register Help

About
Fields
Mathematics and Applications
Information and Communication Sciences and Technologies
Physics, Optics
Materials Science, Mechanics and Mechanical Engineering
Fluid Mechanics and Energy
Chemistry, Physical Chemistry and Chemical Engineering
Life Sciences and Engineering
Earth Sciences and Environmental Engineering
Sciences of Economy, Management and Society
Construction et simulation graphiques de comportements: le modèle des Icobjs

Brunette, Christian (2004) Construction et simulation graphiques de comportements: le modèle des Icobjs. PhD thesis Informatique, ENSMP - CMA Centre de Mathématiques Appliquées, ENSMP.

Full text available as:

- These_Brunette.pdf ( 2198 Kb )
Licence: Copyright

Alternative Locations: http://www-sop.inria.fr/mimosa/personnel/Christian.Brunette/publications/These.pdf

Abstract

Intuitively, a graphical simulation (virtual world, game,...) can be seen as a finite space in which several entities, each having its own behavior, evolve in parallel. So it seems natural to use concurrent languages to program those behaviors. However, it is seldom the case due to the complexity of programming and debugging them, because they introduce non-determinism and are inefficient. We proposed to use the Reactive Approach introduced by F. Boussinot to define clearly the behaviors of graphical entities. We enhanced a model of graphical reactive objects called Icobjs. This model enables non-specialists to graphically build complex behaviors using elementary behaviors and graphical constructors. We realized an API whose main class is Icobj. It defines a minimal structure which can be dynamically extended and which allows a generic graphical construction. A particular icobj called Workspace executes and displays all the icobjs it contains. Behaviors are executed by a reactive engine called Reflex which is dedicated to Icobjs. It reuses Junior's formalism's main primitives, while modifying some instructions' semantics and introducing new instructions.We formalized all instructions using rewriting rules in the SOS format. Moreover, we developed a framework for dynamic interaction with simulations. Finally, we present a few experiments with Icobjs in distributed, physical or multi-clock simulations.

Item Type:PhD Thesis (PhD)
Thesis Supervisor:Boussinot, Frédéric
Date:October 2004
Board of examiners:Andre, Charles and Pouzet, Marc and Talpin, Jean-Pierre and Rigault, Jean-Paul
Ecole Doctorale:?? ED_084 ??
Discipline:Informatique
Collection (Fonds):ENSMP
Institution:ENSMP
Department:ENSMP - CMA Centre de Mathématiques Appliquées
Subjects:2. Information and Communication Sciences and Technologies
Uncontrolled Keywords:Reactive, Synchronous approach, Graphical simulation, Graphical programmation, Concurrency, Java, Junior, Formal semantics, Approche réactive, Synchrone, Simulation graphique, Programmation graphique, Concurrence, Java, Junior, Sémantique formelle

References

[1] R. Acosta-Bermejo. La programmation en rejo. Les intergiciels, développements récents dans CORBA, JavaRMI et les agents mobiles, Publications Hermes Science, Lavoisier, 2002.

[2] R. Acosta-Bermejo. Rejo - Langage d'objets réactifs et d'agents. PhD thesis, Ecole des Mines de Paris, October 2003.

[3] F.S. Acton. Numerical Methods That Work (corrected edition). Mathematical Association of America, 1990.

[4] C. André. Representation and Analysis of Reactive Behaviors: A Synchronous Approach. In Computational Engineering in Systems Applications (CESA), pages 19-29, Lille (F), July 1996. IEEE-SMC.

[5] C. André and M-A Peraldi-Frati. Behavioral Specification of a Circuit Using SyncCharts: a Case Study. In Euromicro 2000, Digital System Design, pages 91-98, Maastricht (NL), September 2000. IEEE.

[6] B.J.L. Berry, L. Kiel Douglas, and E. Elliott. Adaptive agents, intelligence, and emergent human organization: Capturing complexity through agent-based modeling. PNAS, 99(90003) :7187-7188, 2002.

[7] G. Berry. The Constructive Semantics of Pure Esterel Draft Version 3, 1999.

[8] G. Berry. The Esterel v5 Language Primer. Technical report, INRIA-CMA, 1999.

[9] G. Berry. The Foundations of Esterel. MIT Press, 2000. Editors: G. Plotkin, C. Stirling and M. Tofte.

[10] G. Berry and G. Gonthier. The ESTEREL synchronous programming language: design, semantics, implementation. Sci. Comput. Program., 19(2) :87-152, 1992.

[11] F. Boussinot. Reactive C: An Extension of C to Program Reactive Systems. Software Practice and Experience, 21(4) :401-428, april 1991.

[12] F. Boussinot. Icobj Programming. Technical Report RR-3028, INRIA-CMA, Octobre 1996.

[13] F. Boussinot. Objets réactifs en Java. Collection Technique et Scientifique des Télécommunications, Presses Polytechniques Universitaires Romandes, 2000.

[14] F. Boussinot. Java Fair Threads. Inria research report, RR-4139, 2001.

[15] F. Boussinot, G. Doumenc, L. Hazard, Y. Mainguy, J-B. Stefani, and J-F. Susini. Programmation réactive d'applications distribuées. Proceedings of NOTERE'97, Pau, September 1997.

[16] F. Boussinot and L. Hazard. Reactive Scripts. INRIA Research Report 2868, April 1996.

[17] F. Boussinot and R. De Simone. The SL Synchronous Language. IEEE Trans. On Software Engineering, 22(4) :256-266, april 1996.

[18] F. Boussinot and J-F. Susini. The SugarCubes tool box - a reactive Java framework. Software Practice and Experience, 28(14) :1531-1550, december 1998.

[19] F. Boussinot, J-F. Susini, F. Dang Tran, and L. Hazard. A reactive behavior framework for dynamic virtual worlds. In Proceedings of the sixth international conference on 3D Web technology, pages 69-75. ACM Press, 2001.

[20] Y. Bres. Exploration implicite et explicite de l'espace d'états atteignables de circuits logiques Esterel. PhD thesis, Université de Nice-Sophia Antipolis, December 2002.

[21] C. Brunette. Etude de la cohérence dans les jeux en réseau distribués. Master's thesis, Université de Nice-Sophia Antipolis, July 2001.

[22] C. Brunette. A Visual Reactive Framework for Dynamic Behavior Creation. 2nd Workshop on Domain Specific Visual Languages, OOPSLA, Seattle, 2002.

[23] P. Caspi, D. Pilaud, N. Halbwachs, and J. A. Plaice. lustre: a declarative language for real-time programming. In Proceedings of the 14th ACM SIGACTSIGPLAN symposium on Principles of programming languages, pages 178-188. ACM Press, 1987.

[24] P. Caspi and M. Pouzet. A Functional Extension to Lustre. In M. A. Orgun and E. A. Ashcroft, editors, International Symposium on Languages for Intentional Programming, Sydney, Australia, May 3-5 1995. World Scientific.

[25] M. Daniels. Integrating Simulation Technologies With Swarm. In Proceedings of the Workshop on Agent Simulation: Applications, Models, and Tools, october 1999.

[26] J. Demaria. Programmation réactive fonctionnelle avec Senior. Master's thesis, Université de Nice-Sophia Antipolis, 2001.

[27] Conal Elliott and Paul Hudak. Functional Reactive Animation. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '97), volume 32(8), pages 263-273, 1997.

[28] H. Elmqvist. Dymola — User's Manual, 1995. Dynasim AB, Research Park Ideon, Lund, Sweden.

[29] J.-Cl. Fernandez. ALDEBARAN: un Système de Vérification par Réduction de Processus Communicants. PhD thesis, Univ. Joseph Fourier-Grenoble I, France, July 1984.

[30] R. M. Fujimoto. Parallel and distributed simulation. In Proceedings of the 31st conference on Winter simulation, pages 122-131. ACM Press, 1999.

[31] A.J. Goldberg and D. Robson. Smalltalk-80: The Language and its Implementation. Addison-Wesley, Reading, Massachusetts, USA, 1984.

[32] Silicon Graphics. The industry's foundation for high performance graphics: http ://www.opengl.org.

[33] P. L. Guernic, T. Gautier, M. L. Borgne, and C. de Marie. Programming real-time applications with signal. Proceedings of the IEEE, 79(2) :1321- 1335, september 1991.

[34] N. Halbwachs. Synchronous Programming of Reactive Systems. Kluwer Academic, 1993.

[35] D. Harel and A. Naamad. The STATEMATE semantics of statecharts. ACM Transactions on Software Engineering and Methodology (TOSEM), 5(4) :293-333, 1996.

[36] D. Harel and A. Pnueli. On the development of reactive systems. Logics and Models of Concurrent Systems, NATO ASI Series(13) :477-498, 1985.

[37] David Harel. Statecharts: A visual formalism for complex systems. Sci. Comput. Program., 8(3) :231-274, 1987.

[38] Fabrice Harrouet. oRis: s'immerger par le langage dans le prototypage d'univers virtuels à base d'entités autonomes. PhD thesis, Université de Bretagne Occidentale, December

2000.[39] L. Hazard, J-F. Susini, and F. Boussinot. The Junior Reactive Kernel. INRIA Research

Report 3732, July 1999.

[40] L. Hazard, J-F. Susini, and F. Boussinot. Programming with Junior. Inria Research

Report 4027, 2000.

[41] M. Teresa Higuera-Toledano, V. Issarny, M. Banatre, G. Cabillic, J-P. Lesot, and F. Parai.

Java Embedded Real-Time Systems: An Overview of Existing Solutions. In Proceedings of the Third IEEE International Symposium on Object-Oriented Real-Time Distributed

Computing, page 392. IEEE Computer Society, 2000.

[42] D. Ingalls, T. Kaehler, J. Maloney, S.Wallace, and A. Kay. Back to the Future: the Story of Squeak, a practical Smalltalk written in itself. In Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications.

ACM Press, October 1997.

[43] S. Peyton Jones. Haskell 98 Languages and Librairies. Cambridge University Press,

2003.[44] G. Kahn. Natural semantics. In 4th Annual Symposium on Theoretical Aspects of Computer

Sciences on STACS 87, pages 22-39. Springer-Verlag, 1987.

[45] J. Klein. BREVE: a 3D Environment for the Simulation of Decentralized Systems and

Artificial Life. Proceedings of Artificial Life VIII, the 8th International Conference on the Simulation and Synthesis of Living Systems, 2002.

[46] S. Luke, G. Catalin Balan, L. Panait, C. Cioffi-Revilla, and S. Paus. mason: a java multi-agent simulation library. Proceedings of the Agent 2003 Conference, 2003.

[47] O. Maler and S. Yovine. Hardware Timing Verification using KRONOS. In In Proc. 7th

20 ,300,600 Israeli Conference on Computer Systems and Software Engineering, 1996.

[48] L. Mandel. Aspects dynamiques dans les langages synchrones: le cas des SugarCubes.

Master's thesis, Laboratoire d'Informatique Paris 6, september 2002.

[49] F. Maraninchi. The Argos language: Graphical Representation of Automata and Description of Reactive Systems. In IEEE Workshop on Visual Languages, october 1991.

[50] The MathWorks. Simulink: http ://www.mathworks.com/products/simulink/.

[51] Sun Microsystems. Bean builder : http ://java.sun.com/products/javabeans/beanbuilder/index.jsp.

[52] Sun MicroSystems. The VolatileImage API User Guide: Managing Hardware-accelerated

Offscreen Images with VolatileImage.

[53] Sun MicroSystems. JavaBeans.

[54] E. E. L. Mitchell and J. S. Gauthier. ACSL: Advanced Continuous Simulation Language

- User Guide and Reference Manual, mitchell & gauthier assoc., concord, mass edition,

1986.158 BIBLIOGRAPHIE

[55] B. Nichols, D. Buttlar, and J. Proulx Farrell. Pthreads Programming. O'Reilly, 1996.

[56] N. Nikaein. RAMA: Reactive Autonomous Mobile Agents. Master's thesis, Université de Nice-Sophia Antipolis, 1999.

[57] John K. Ousterhout. Tcl and the Tk Toolkit. Addison Wesley, 1994.

[58] M. Parker. Ascape: an agent based modeling environment in java. In Proceedings of the

Workshop on Agent Simulation: Applications, Models, and Tools, october 1999.

[59] T. J. Parr and R. W. Quong. ANTLR: a predicated-LL(k) parser generator. Software

Practice And Experience, 25(7) :789-810, 1995.

[60] O. Parra. Programmation réactive sur systèmes embarqués. Master's thesis, Université de Nice-Sophia Antipolis, 2003.

[61] G.D. Plotkin. A Structural Approach To Operational Semantics. Technical report, FN

19 , Department of Computer Science, University of Aarhus, Denmark, 1981.

[62] D. Pous. Les Mobile Ambients en Icobj. Master's thesis, école Normale Supérieure de

Lyon, July 2002.

[63] The Real-Time for Java Expert Group. The Real-Time Specification for Java. AddisonWesley, 2000.

[64] P. Reigner, F. Harrouet, S. Morvan, and J. Tisseau. AReVi: A virtual reality multi-agent platform. Lecture Notes in Computer Science, 1434 :218- ? ?, 1998.

[65] N. Richard. Description de comportements d'agents autonomes évoluant dans des mondes virtuels. PhD thesis, école Nationale Supérieure des Télécommunications, september

2001.[66] N. Richard. InViWo agents: write once, display everywhere. In Proceeding of the eighth international conference on 3D Web technology, pages 123-127. ACM Press, 2003.

[67] E. Sahin, T.H. Labella, V. Trianni, J.-L. Deneubourg, P. Rasse, D. Floreano, L. Gambardella,

F. Mondada, S. Nolfi, and M. Dorigo. SWARM-BOTS: Pattern Formation in

a Swarm of Self-Assembling Mobile Robots. In A. El Kamel, K. Mellouli, and P. Borne, editors, Proceedings of the IEEE International Conference on Systems, Man and Cybernetics, pages 145-150, Hammamet, Tunisia, october 2002. Piscataway, NJ: IEEE Press.

[68] A. Samarin. Application de la programmation réactive à la modélisation physique. Master's thesis, Université de Nice-Sophia Antipolis, 2002.

[69] J-F. Susini. Implémentation de l'approche réactive en java: les sugarcubes v2. Proc. MSR'99, Hermes, 1999.

[70] J-F. Susini. L'approche réactive au dessus de Java: sémantique et implémentation des SugarCubes et de Junior. PhD thesis, Ecole des Mines de Paris, September 2001.

[71] O. Tardieu and R. De Simone. Instantaneous Termination in Pure Esterel. In Radhia Cousot, editor, Static Analysis, 10th International Symposium, SAS 2003, June 11-13,

Proceedings, volume 2694 of Lecture Notes in Computer Science, pages 91-108, San Diego, California, USA, 2003. Springer.

[72] O. Tardieu and R. De Simone. Curing schizophrenia by program rewriting in esterel. In Second ACM/IEEE International Conference on Formal Methods and Models for Co-Design MEMOCODE 2004, San Diego, California, USA, June 2004.

[73] A. Tinkham and R. Menezes. Simulating robot collective behavior using StarLogo. In Proceedings of the 42nd annual Southeast regional conference, pages 396-401. ACM Press, 2004.

[74] URL. de Alice: http ://www.alice.org.

[75] URL. de la communauté Java3D http ://www.j3d.org.

[76] URL. de LOFT: http ://www-sop.inria.fr/mimosa/rp/LOFT/.

[77] URL. de Mason: http ://cs.gmu.edu/ eclab/projects/mason/.

[78] URL. de RePast: http ://repast.sourceforge.net/.

[79] URL. de web3d: http ://www.web3d.org.

[80] URL. des ambicobjs http ://www-sop.inria.fr/mimosa/ambicobjs/.

[81] URL. des Icobjs: http ://www-sop.inria.fr/mimosa/rp/Icobjs/.

[82] URL. du projet IST-PING: http ://www.pingproject.org.

[83] E. Vecchie and R. De Simone. Syntax-driven behavior partitioning for model-checking of Esterel programs. In Synchronous Languages, Applications, and Programming, Barcelona, Spain, March 2004.

[84] Virtools. Virtools dev: http ://www.virtools.com/solutions/products/virtools dev features.asp.

[85] W. W. Wadge and E. A. Ashcroft. LUCID, the dataflow programming language. Academic Press Professional, Inc., 1985.

Table of content

1 Introduction
1.1 L'approche synchrone
1.1.1 Formalismes orientés flots de données
1.1.2 Formalismes orientés contrôle d'exécution
1.1.3 Formalismes graphiques
1.2 Outils de construction et simulation graphique
1.3 Objectifs et réalisation
1.4 Structure du document
I Moteur réactif
2 Modèle réactif
2.1 Approche réactive
2.1.1 Définitions
2.1.2 Modèle d'exécution
2.2 API de Junior
2.2.1 Interfaçage avec Java
2.2.2 Les instructions de base
2.2.3 événements et configurations événementielles
2.2.4 Machine et environnement d'exécution
2.2.5 Exemple d'utilisation de Junior
2.3 Modèle d'exécution de Reflex
2.3.1 Sérialisation des objets de l'API
2.3.2 Disparition de la configuration Not
2.3.3 Préemption régulière
2.3.4 Control avec configuration événementielle
2.3.5 Retrait de l'instruction Freezable
2.3.6 Retrait de l'instruction Link
2.3.7 Instruction IcobjThread
2.3.8 Machine réactive
2.3.9 Instruction Scanner
2.3.10 Instruction Run
2.4 Bilan
3 Sémantique de Reflex
3.1 Règles de sémantique
3.1.1 Notations
3.1.2 Statuts de terminaison
3.1.3 Environnement d'exécution
3.2 Wrappers
3.3 Configurations événementielles
3.4 Syntaxe abstraite
3.5 Instructions de base
3.5.1 Nothing
3.5.2 Stop
3.5.3 Actions atomiques
3.5.4 Séquence N-aire
3.5.5 Boucle infinie
3.5.6 Boucle finie
3.5.7 Contrôle booléen
3.6 Instructions événementielles
3.6.1 Génération d'événement
3.6.2 Attente d'événements
3.6.3 Contrôle événementie
3.6.4 Condition événementielle
3.6.5 Préemption
3.6.6 événements locaux
3.7 Ordonnancement: Par N-aire
3.7.1 Fonctions auxiliaires
3.7.2 Les règles
3.8 Machine réactive
3.9 Ajout pour Icobjs
3.9.1 Préemption régulière
3.9.2 Scanner
3.9.3 Run
3.10 Bilan
4 Implémentations
4.1 Implémentations existantes
4.1.1 Rewrite
4.1.2 Replace
4.1.3 Simple
4.1.4 Storm
4.1.5 Glouton
4.2 Implémentation de Reflex
4.2.1 Instructions N-aire
4.2.2 Gestion des événements
4.2.3 Machine réactive
4.3 Performances
4.4 Bilan
II Icobjs
5 Modèle des Icobjs
5.1 Modèle d'objets réactifs
5.2 Construction par Icobjs
5.2.1 Comportements élémentaires
5.2.2 Séquence et composition parallèle
5.2.3 Nommage
5.2.4 Génération et attente d'événements
5.2.5 Préemption
5.2.6 Contrôle
5.2.7 Construction de boucle
5.2.8 Interruption d'une séquence
5.2.9 Workspace
5.3 Environnement des Icobjs
5.3.1 Présentation du framework
5.3.2 Inspection des champs
5.3.3 Inspection des comportements
5.4 Bilan
6 Implémentation des Icobjs
6.1 Structure d'un icobj
6.2 Exécution des icobjs
6.3 Gestion des événements clavier et souris
6.3.1 Les événements de souris
6.3.2 Les événements du clavier
6.3.3 Les comportements
6.4 Affichage des icobjs
6.5 Inspecteur des Icobjs
6.5.1 Introspection des champs d'un icobj
6.5.2 Introspection du comportement d'un icobj
6.6 Chargement et enregistrement dans un fichier
6.7 Créer sa propre simulation
6.8 Bilan
7 Expérimentations
7.1 Projet PING
7.1.1 Architecture de la plate-forme
7.1.2 Mondes virtuels
7.1.3 Communication entre les objets
7.1.4 Cohérence
7.1.5 Mécanisme de dead-reckoning
7.1.6 Bilan
7.2 Simulation physiqu
7.2.1 Modèle des comportements physiques
7.2.2 Implémentation
7.2.3 Bilan
7.3 Simulation multi-horloges
7.3.1 Description
7.3.2 Implémentation
7.3.3 Bilan
8 Conclusions et perspectives
8.1 Réalisations
8.2 Perspectives
Bibliographie

ID Code:1358
Deposited By:Brigitte HANOT
Deposited On:23 August 2005

Statistiques de consultation

Repository Staff Only: edit this item

© ParisTech 2007 - Réalisé par RILK.com - Graphisme par Winch Communication