Journal ArticleDOI
Proof-directed program transformation: A functional account of efficient regular expression matching
TLDR
In this article, an efficient regular expression (regex) matcher using a variety of program transformation techniques, but very little specialized formal language and automata theory, is presented.Abstract:
We show how to systematically derive an efficient regular expression (regex) matcher using a variety of program transformation techniques, but very little specialized formal language and automata theory. Starting from the standard specification of the set-theoretic semantics of regular expressions, we proceed via a continuation-based backtracking matcher, to a classical, table-driven state machine. All steps of the development are supported by self-contained (and machine-verified) equational correctness proofs.read more
References
More filters
Journal ArticleDOI
Fast Pattern Matching in Strings
TL;DR: An algorithm is presented which finds all occurrences of one given string within another, in running time proportional to the sum of the lengths of the strings, showing that the set of concatenations of even palindromes, i.e., the language $\{\alpha \alpha ^R\}^*$, can be recognized in linear time.
Journal ArticleDOI
Finite automata and their decision problems
Michael O. Rabin,Dana Scott +1 more
TL;DR: Finite automata are considered as instruments for classifying finite tapes as well as generalizations of the notion of an automaton are introduced and their relation to the classical automata is determined.
Book
Partial evaluation and automatic program generation
TL;DR: This paper presents a guide to the literature the self-applicable scheme specializer, a partial evaluator for a subset of scheme for a first-order functional languages.
Book
The Definition of Standard ML (Revised)
TL;DR: Part 1 Syntax of the core: reserved words special constants comments identifiers lexical analysis infixed operators derived forms grammar syntactic restrictions.
Journal ArticleDOI
A framework for defining logics
TL;DR: The Edinburgh Logical Framework provides a means to define (or present) logics through a general treatment of syntax, rules, and proofs by means of a typed λ-calculus with dependent types, whereby each judgment is identified with the type of its proofs.