473 research outputs found

    Automata and rational expressions

    Full text link
    This text is an extended version of the chapter 'Automata and rational expressions' in the AutoMathA Handbook that will appear soon, published by the European Science Foundation and edited by JeanEricPin

    From regular expressions to smaller NFAs

    Get PDF
    Several methods have been developed to construct -free automata that represent a regular expression. Among the most widely known are the position automaton (Glushkov), the partial derivatives automaton (Antimirov) and the follow automaton (Ilie and Yu). All these automata can be obtained with quadratic time complexity, thus, the comparison criterion is usually the size of the resulting automaton. The methods that obtain the smallest automata (although, for general expressions, they are not comparable), are the follow and the partial derivatives methods. In this paper, we propose another method to obtain a -free automaton from a regular expression. The number of states of the automata we obtain is bounded above by the size of both the partial derivatives automaton and of the follow automaton. Our algorithm also runs with the same time complexity of these methods. © 2011 Elsevier B.V. All rights reserved.This work was partially supported by the Spanish Ministerio de Educacion y Ciencia under project TIN2007-60769.García Gómez, P.; López Rodríguez, D.; Ruiz Ochando, J.; Álvarez Vargas, GI. (2011). From regular expressions to smaller NFAs. Theoretical Computer Science. 412(41):5802-5807. https://doi.org/10.1016/j.tcs.2011.05.058S580258074124

    Formal Languages and Compilation

    Full text link

    Automatic Optimizations for Stream-based Monitoring Languages

    Get PDF
    Runtime monitors that are specified in a stream-based monitoring language tend to be easier to understand, maintain, and reuse than those written in a standard programming language. Because of their formal semantics, such specification languages are also a natural choice for safety-critical applications. Unlike for standard programming languages, there is, however, so far very little support for automatic code optimization. In this paper, we present the first collection of code transformations for the stream-based monitoring language RTLola. We show that classic compiler optimizations, such as Sparse Conditional Constant Propagation and Common Subexpression Elimination, can be adapted to monitoring specifications. We also develop new transformations -- Pacing Type Refinement and Filter Refinement -- which exploit the specific modular structure of RTLola as well as the implementation freedom afforded by a declarative specification language. We demonstrate the significant impact of the code transformations on benchmarks from the monitoring of unmanned aircraft systems (UAS).Comment: 20th International Conference on Runtime Verification (2020
    corecore