Une sémantique formelle de la concurrence en Java
Java est un langage à objets et concurrent. Ces deux facettes, déjà complexes prises
isolément, deviennent très difficiles à appréhender quand elles sont réunies. Nous proposons
une définition formelle de la concurrence en Java : threads et locks, ordonnancement et entrelacement
au niveau de l’exécution. L’utilisation du formalisme Typol de Centaur nous permet
d’obtenir une sémantique exécutable, puis de développer Jitan, un environnement de visualisation
animée de l’exécution. Nous mettons ainsi graphiquement en évidence les mécanismes liés
aux objets, à la concurrence et à la synchronisation, et permettons à l’utilisateur d’agir directement
sur l’ordonnanceur et l’entrelacement afin d’explorer les différentes exécutions possibles.
Java is a concurrent object-oriented programming language. These two features, already
complex when isolated, become even more difficult to understand when they are mixed.
We formally define the concurrent aspects of Java : threads and locks, scheduling and interleaving
at the execution level.
The Typol formalism, available in the Centaur system, enables us to get a semantics that is
directly executable. Therefore, we have developed Jitan, a visualization environment for Java
program execution, which presents the object-oriented mechanisms, and the features related to
concurrency and synchronization graphically. It also enables the user to directly control the
scheduling and interleaving during a program execution.
I.ATTALI, D.CAROMEL, M.RUSSO
Java, concurrence, threads, sémantique, ordonnancement, locks, visualisation.
Java, concurrence, threads, semantics, scheduling, locks, visualization.
Français
|