53 research outputs found
Small NFAs from Regular Expressions: Some Experimental Results
Regular expressions (res), because of their succinctness and clear syntax,
are the common choice to represent regular languages. However, efficient
pattern matching or word recognition depend on the size of the equivalent
nondeterministic finite automata (NFA). We present the implementation of
several algorithms for constructing small epsilon-free NFAss from res within
the FAdo system, and a comparison of regular expression measures and NFA sizes
based on experimental results obtained from uniform random generated res. For
this analysis, nonredundant res and reduced res in star normal form were
considered.Comment: Proceedings of 6th Conference on Computability in Europe (CIE 2010),
pages 194-203, Ponta Delgada, Azores, Portugal, June/July 201
A Mechanized Proof of Kleene’s Theorem in Why3
In this dissertation we present a mathematically minded development of the correction
proof of Kleene’s theorem conversion of regular expressions into finite automata, on
the basis of equivalent expressive power. We formalise a functional implementation of
the algorithm and prove, in full detail, the soundness of its mathematical definition,
working within the Why3 framework to develop a mechanically verified implementation
of the conversion algorithm. The motivation for this work is to test the feasibility of
the deductive approach to the verification of software and pave the way to do similar
proofs in the context of a static analysis approach to (object-oriented) programming. In
particular, on the subject of behavioural types in typestate settings, whose expressiveness
stands between regular and context-free languages and, therefore, can greatly benefit
from mechanically certified implementations.Nesta dissertação apresentamos um desenvolvimento matemático da prova de correcção
da conversão de expressões regulares em autómatos finitos do teorema de Kleene,
com base no seu poder expressivo equivalente. Formalizamos uma implementação funcional
do algoritmo e provamos, em detalhe, a correcção da sua definição matemática.
Trabalhando no framework Why3 para desenvolver uma implementação mecanicamente
certificada do algoritmo de conversão. A motivação para este trabalho é testar a viabilidade
da metodologia e preparar o caminho para fazer provas semelhantes no contexto de
uma abordagem de análise estática na programação (orientada para objectos). Em particular,
no tópico dos tipos comportamentais com typestates, cuja expressividade está entre a
das linguagens regulares e livres-de-contexto. Podendo, por isso, beneficiar enormemente
de implementações mecanicamente certificada
Deterministic Regular Expressions with Back-References
Most modern libraries for regular expression matching allow back-references (i.e. repetition operators) that substantially increase expressive power, but also lead to intractability. In order to find a better balance between expressiveness and tractability, we combine these with the notion of determinism for regular expressions used in XML DTDs and XML Schema. This includes the definition of a suitable automaton model, and a generalization of the Glushkov construction
Symbolic Algorithms for Language Equivalence and Kleene Algebra with Tests
We first propose algorithms for checking language equivalence of finite
automata over a large alphabet. We use symbolic automata, where the transition
function is compactly represented using a (multi-terminal) binary decision
diagrams (BDD). The key idea consists in computing a bisimulation by exploring
reachable pairs symbolically, so as to avoid redundancies. This idea can be
combined with already existing optimisations, and we show in particular a nice
integration with the disjoint sets forest data-structure from Hopcroft and
Karp's standard algorithm. Then we consider Kleene algebra with tests (KAT), an
algebraic theory that can be used for verification in various domains ranging
from compiler optimisation to network programming analysis. This theory is
decidable by reduction to language equivalence of automata on guarded strings,
a particular kind of automata that have exponentially large alphabets. We
propose several methods allowing to construct symbolic automata out of KAT
expressions, based either on Brzozowski's derivatives or standard automata
constructions. All in all, this results in efficient algorithms for deciding
equivalence of KAT expressions
From regular expressions to smaller NFAs
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
- …