Results 1  10
of
29
Partial Derivatives of Regular Expressions and Finite Automata Constructions
 Theoretical Computer Science
, 1995
"... . We introduce a notion of a partial derivative of a regular expression. It is a generalization to the nondeterministic case of the known notion of a derivative invented by Brzozowski. We give a constructive definition of partial derivatives, study their properties, and employ them to develop a new ..."
Abstract

Cited by 60 (0 self)
 Add to MetaCart
. We introduce a notion of a partial derivative of a regular expression. It is a generalization to the nondeterministic case of the known notion of a derivative invented by Brzozowski. We give a constructive definition of partial derivatives, study their properties, and employ them to develop a new algorithm for turning regular expressions into relatively small NFA and to provide certain improvements to Brzozowski's algorithm constructing DFA. We report on a prototype implementation of our algorithm constructing NFA and present some examples. Introduction In 1964 Janusz Brzozowski introduced word derivatives of regular expressions and suggested an elegant algorithm turning a regular expression r into a deterministic finite automata (DFA); the main point of the algorithm is that the word derivatives of r serve as states of the resulting DFA [5]. In the following years derivatives were recognized as a quite useful and productive tool. Conway [8] uses derivatives to present various comp...
Transformational Design and Implementation Of A New Efficient Solution To The Ready Simulation Problem
 Science of Computer Programming
, 1995
"... A transformational methodology is described for simultaneously designing algorithms and developing programs. The methodology makes use of three transformational tools  dominated convergence, finite differencing, and realtime simulation of a set machine on a RAM. We illustrate the methodology t ..."
Abstract

Cited by 42 (2 self)
 Add to MetaCart
A transformational methodology is described for simultaneously designing algorithms and developing programs. The methodology makes use of three transformational tools  dominated convergence, finite differencing, and realtime simulation of a set machine on a RAM. We illustrate the methodology to design a new O(mn + n 2 )time algorithm for deciding when nstate, mtransition processes are ready similar, which is a substantial improvement on the \Theta(mn 6 ) algorithm presented in [6]. The methodology is also used to derive a program whose performance, we believe, is competitive with the most efficient handcrafted implementation of our algorithm. Ready simulation is the finest fully abstract notion of process equivalence in the CCS setting. 1 Introduction Currently there is a wide gap between the goals and practices of research in the theory of algorithm design and the science of programming, which we believe is A preliminary version of this paper appeared in the Conf...
Viewing A Program Transformation System At Work
 Joint 6th International Conference on Programming Language Implementation and Logic Programming (PLILP) and 4th International conference on Algebraic and Logic Programming (ALP), volume 844 of Lecture Notes in Computer Science
, 1994
"... How to decrease labor and improve reliability in the development of efficient implementations of nonnumerical algorithms and labor intensive software is an increasingly important problem as the demand for computer technology shifts from easier applications to more complex algorithmic ones; e.g., opt ..."
Abstract

Cited by 26 (2 self)
 Add to MetaCart
How to decrease labor and improve reliability in the development of efficient implementations of nonnumerical algorithms and labor intensive software is an increasingly important problem as the demand for computer technology shifts from easier applications to more complex algorithmic ones; e.g., optimizing compilers for supercomputers, intricate data structures to implement efficient solutions to operations research problems, search and analysis algorithms in genetic engineering, complex software tools for workstations, design automation, etc. It is also a difficult problem that is not solved by current CASE tools and software management disciplines, which are oriented towards data processing and other applications, where the implementation and a prediction of its resource utilization follow more directly from the specification. Recently, Cai and Paige reported experiments suggesting a way to implement nonnumerical algorithms in C at a programming rate (i.e., source lines per second) t...
Recognizing Regular Expressions by means of Dataflow Networks
 In proc. of the 23rd International Colloquium on Automata, Languages, and Programming, (ICALP'96
, 1996
"... . This paper addresses the problem of building a Boolean dataflow network (sequential circuit) recognizing the language described by a regular expression. The main result is that both the construction time and the size of the resulting network are linear with respect to the size of the regular expre ..."
Abstract

Cited by 18 (2 self)
 Add to MetaCart
. This paper addresses the problem of building a Boolean dataflow network (sequential circuit) recognizing the language described by a regular expression. The main result is that both the construction time and the size of the resulting network are linear with respect to the size of the regular expression. Introduction "Grep" machine: Let \Sigma be a vocabulary, L be a regular language on \Sigma . A "grep" machine is a machine receiving a sequence s 0 ; s 1 ; : : : ; s n ; : : : of symbols (s i 2 \Sigma ) and computing a sequence b 0 ; b 1 ; : : : ; b n ; : : : of Booleans, such that b n is true if and only if the word s 0 s 1 : : : s n belongs to L 2 . This paper addresses the problem of building a "grep" machine for languages described by regular expressions. This problem is rather classical [4, 11, 10, 3, 1, 2]. We propose a solution which, to our knowledge, is new: Informally, it consists of building, from a regular expression E, a "circuit" (or Boolean dataflow network) explori...
A Taxonomy of Finite Automata Construction Algorithms
 Computing Science
, 1993
"... This paper presents a taxonomy of finite automata construction algorithms. Each algorithm is classified into one of two families: those based upon the structure of regular expressions, and those based upon the automatatheoretic work of Myhill and Nerode. Many of the algorithms appearing in the lite ..."
Abstract

Cited by 15 (4 self)
 Add to MetaCart
This paper presents a taxonomy of finite automata construction algorithms. Each algorithm is classified into one of two families: those based upon the structure of regular expressions, and those based upon the automatatheoretic work of Myhill and Nerode. Many of the algorithms appearing in the literature are based upon the structure of regular expressions. In this paper, we make this term precise by defining regular expressions as a \Sigmaterm algebra, and automata constructions as various \Sigmaalgebras of automata. Each construction algorithm is then presented as the unique natural homomorphism from the \Sigmaterm algebra of regular expressions to the appropriate \Sigmaalgebra of automata. The concept of duality is introduced and used to derive more practical construction algorithms. In this way, we successfully present (and relate) algorithms given by Thompson, Berry and Sethi, McNaughton and Yamada, Glushkov, and Aho, Sethi, and Ullman. Efficient implementations (including thos...
Universal regular path queries
 HigherOrder and Symbolic Computation
, 2003
"... Given are a directed edgelabelled graph G with a distinguished node n0, and a regular expression P which may contain variables. We wish to compute all substitutions φ (of symbols for variables), together with all nodes n such that all paths n0 → n are in φ(P). We derive an algorithm for this proble ..."
Abstract

Cited by 12 (1 self)
 Add to MetaCart
Given are a directed edgelabelled graph G with a distinguished node n0, and a regular expression P which may contain variables. We wish to compute all substitutions φ (of symbols for variables), together with all nodes n such that all paths n0 → n are in φ(P). We derive an algorithm for this problem using relational algebra, and show how it may be implemented in Prolog. The motivation for the problem derives from a declarative framework for specifying compiler optimisations. 1 Bob Paige and IFIP WG 2.1 Bob Paige was a longstanding member of IFIP Working Group 2.1 on Algorithmic Languages and Calculi. In recent years, the main aim of this group has been to investigate the derivation of algorithms from specifications by program transformation. Already in the mideighties, Bob was way ahead of the pack: instead of applying transformational techniques to wellworn examples, he was applying his theories of program transformation to new problems, and discovering new algorithms [16, 48, 52]. The secret of his success lay partly in his insistence on the study of general algorithm design strategies (in particular
Incremental Computation: A SemanticsBased Systematic Transformational Approach
, 1996
"... ion of a function f adds an extra cache parameter to f . Simplification simplifies the definition of f given the added cache parameter. However, as to how the cache parameter should be used in the simplification to provide incrementality, KIDS provides only the observation that distributive laws can ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
ion of a function f adds an extra cache parameter to f . Simplification simplifies the definition of f given the added cache parameter. However, as to how the cache parameter should be used in the simplification to provide incrementality, KIDS provides only the observation that distributive laws can often be applied. The Munich CIP project [BMPP89,Par90] has a strategy for finite differencing that captures similar ideas. It first "defines by a suitable embedding a function f 0 ", and then "derives a recursive version of f 0 using generalized unfold/fold strategy", but it provides no special techniques for discovering incrementality. We believe that both works provide only general strategies with no precise procedure to follow and therefore are less automatable than ours. Chapter 4 Caching intermediate results The value of f 0 (x \Phi y) may often be computed faster by using not only the return value of f 0 (x), as discussed in Chapter 3, but also the values of some subcomputation...
A Unified Construction of the Glushkov, Follow, and Antimirov Automata
 Proc. of MFCS’06, LNCS 4162
, 2006
"... Abstract. A number of different techniques have been introduced in the last few decades to create ɛfree automata representing regular expressions such as the Glushkov automata, follow automata, or Antimirov automata. This paper presents a simple and unified view of all these construction methods bo ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
Abstract. A number of different techniques have been introduced in the last few decades to create ɛfree automata representing regular expressions such as the Glushkov automata, follow automata, or Antimirov automata. This paper presents a simple and unified view of all these construction methods both for unweighted and weighted regular expressions. It describes simpler algorithms with time complexities at least as favorable as that of the best previously known techniques, and provides a concise proof of their correctness. Our algorithms are all based on two standard automata operations: epsilonremoval and minimization. This contrasts with the multitude of complicated and specialpurpose techniques previously described in the literature, and makes it straightforward to generalize these algorithms to the weighted case. In particular, we extend the definition and construction of follow automata to the case of weighted regular expressions over a closed semiring and present the first algorithm to compute weighted Antimirov automata. 1
Solving Regular Path Queries
 In Proceedings of the 6th International Conference on Mathematics of Program Construction
, 2002
"... Regular path queries are a way of declaratively specifying program analyses as a kind of regular expressions that are matched against paths in graph representations of programs. This paper describes the precise specication, derivation, and analysis of a complete algorithm and data structures for ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
Regular path queries are a way of declaratively specifying program analyses as a kind of regular expressions that are matched against paths in graph representations of programs. This paper describes the precise specication, derivation, and analysis of a complete algorithm and data structures for solving regular path queries. The time and space complexity of the algorithm is linear in the size of the graph. We rst show two ways of specifying the problem and deriving a highlevel algorithmic solution, using predicate logic and language inclusion, respectively.
SETL for Internet Data Processing
, 2000
"... hereby granted, provided that this notice and the reference ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
hereby granted, provided that this notice and the reference