62 research outputs found
A Model of Cooperative Threads
We develop a model of concurrent imperative programming with threads. We
focus on a small imperative language with cooperative threads which execute
without interruption until they terminate or explicitly yield control. We
define and study a trace-based denotational semantics for this language; this
semantics is fully abstract but mathematically elementary. We also give an
equational theory for the computational effects that underlie the language,
including thread spawning. We then analyze threads in terms of the free algebra
monad for this theory.Comment: 39 pages, 5 figure
Circular pattern matching with k mismatches
The k-mismatch problem consists in computing the Hamming distance between a pattern P of length m and every length-m substring of a text T of length n, if this distance is no more than k. In many real-world applications, any cyclic shift of P is a relevant pattern, and thus one is interested in computing the minimal distance of every length-m substring of T and any cyclic shift of P. This is the circular pattern m
Time-space tradeoffs for algebraic problems on general sequential machines
AbstractThis paper establishes time-space tradeoffs for some algebraic problems in the branching program model, including convolution of vectors, integer multiplication, matrix-vector products, matrix multiplication, matrix inversion, computing the product of three matrices, and computing PAQ where P and Q are permutation matrices. The lower bounds apply to general sequential models of computation. Although the lower bounds are for a more general model, they are as large as the known bounds for straight-line programs (even improving the known straight-line bounds for matrix multiplication) except for the case of computing PAQ, for which non-oblivious algorithms can outperform oblivious ones, and integer multiplication, where our lower bound is a polylogarithmic factor below the known straight-line bound. Some of the tradeoffs are proved for expected time and space, where all inputs are equally likely
Time-space tradeoffs for branching programs contrasted with those for straight-line programs
- …
