5 research outputs found

    History-Register Automata

    Get PDF
    Programs with dynamic allocation are able to create and use an unbounded number of fresh resources, such as references, objects, files, etc. We propose History-Register Automata (HRA), a new automata-theoretic formalism for modelling such programs. HRAs extend the expressiveness of previous approaches and bring us to the limits of decidability for reachability checks. The distinctive feature of our machines is their use of unbounded memory sets (histories) where input symbols can be selectively stored and compared with symbols to follow. In addition, stored symbols can be consumed or deleted by reset. We show that the combination of consumption and reset capabilities renders the automata powerful enough to imitate counter machines, and yields closure under all regular operations apart from complementation. We moreover examine weaker notions of HRAs which strike different balances between expressiveness and effectiveness.Comment: LMCS (improved version of FoSSaCS

    Algorithmic Verification of Asynchronous Programs

    Full text link
    Asynchronous programming is a ubiquitous systems programming idiom to manage concurrent interactions with the environment. In this style, instead of waiting for time-consuming operations to complete, the programmer makes a non-blocking call to the operation and posts a callback task to a task buffer that is executed later when the time-consuming operation completes. A co-operative scheduler mediates the interaction by picking and executing callback tasks from the task buffer to completion (and these callbacks can post further callbacks to be executed later). Writing correct asynchronous programs is hard because the use of callbacks, while efficient, obscures program control flow. We provide a formal model underlying asynchronous programs and study verification problems for this model. We show that the safety verification problem for finite-data asynchronous programs is expspace-complete. We show that liveness verification for finite-data asynchronous programs is decidable and polynomial-time equivalent to Petri Net reachability. Decidability is not obvious, since even if the data is finite-state, asynchronous programs constitute infinite-state transition systems: both the program stack and the task buffer of pending asynchronous calls can be potentially unbounded. Our main technical construction is a polynomial-time semantics-preserving reduction from asynchronous programs to Petri Nets and conversely. The reduction allows the use of algorithmic techniques on Petri Nets to the verification of asynchronous programs. We also study several extensions to the basic models of asynchronous programs that are inspired by additional capabilities provided by implementations of asynchronous libraries, and classify the decidability and undecidability of verification questions on these extensions.Comment: 46 pages, 9 figure

    Planification de pas pour robots humanoïdes : approches discrètes et continues

    Get PDF
    Dans cette thèse nous nous intéressons à deux types d'approches pour la planification de pas pour robots humanoïdes : d'une part les approches discrètes où le robot n'a qu'un nombre fini de pas possibles, et d'autre part les approches où le robot se base sur des zones de faisabilité continues. Nous étudions ces problèmes à la fois du point de vue théorique et pratique. En particulier nous décrivons deux méthodes originales, cohérentes et efficaces pour la planification de pas, l'une dans le cas discret (chapitre 5) et l'autre dans le cas continu (chapitre 6). Nous validons ces méthodes en simulation ainsi qu'avec plusieurs expériences sur le robot HRP-2. ABSTRACT : In this thesis we investigate two types of approaches for footstep planning for humanoid robots: on one hand the discrete approaches where the robot has only a finite set of possible steps, and on the other hand the approaches where the robot uses continuous feasibility regions. We study these problems both on a theoretical and practical level. In particular, we describe two original, coherent and efficient methods for footstep planning, one in the discrete case (chapter 5), and one in the continuous case (chapter 6). We validate these methods in simulation and with several experiments on the robot HRP-2
    corecore