34,273 research outputs found
A Logic for Non-Deterministic Parallel Abstract State Machines
We develop a logic which enables reasoning about single steps of
non-deterministic parallel Abstract State Machines (ASMs). Our logic builds
upon the unifying logic introduced by Nanchen and St\"ark for reasoning about
hierarchical (parallel) ASMs. Our main contribution to this regard is the
handling of non-determinism (both bounded and unbounded) within the logical
formalism. Moreover, we do this without sacrificing the completeness of the
logic for statements about single steps of non-deterministic parallel ASMs,
such as invariants of rules, consistency conditions for rules, or step-by-step
equivalence of rules.Comment: arXiv admin note: substantial text overlap with arXiv:1602.0748
Logic Programming and Logarithmic Space
We present an algebraic view on logic programming, related to proof theory
and more specifically linear logic and geometry of interaction. Within this
construction, a characterization of logspace (deterministic and
non-deterministic) computation is given via a synctactic restriction, using an
encoding of words that derives from proof theory.
We show that the acceptance of a word by an observation (the counterpart of a
program in the encoding) can be decided within logarithmic space, by reducing
this problem to the acyclicity of a graph. We show moreover that observations
are as expressive as two-ways multi-heads finite automata, a kind of pointer
machines that is a standard model of logarithmic space computation
Regular Expression Matching and Operational Semantics
Many programming languages and tools, ranging from grep to the Java String
library, contain regular expression matchers. Rather than first translating a
regular expression into a deterministic finite automaton, such implementations
typically match the regular expression on the fly. Thus they can be seen as
virtual machines interpreting the regular expression much as if it were a
program with some non-deterministic constructs such as the Kleene star. We
formalize this implementation technique for regular expression matching using
operational semantics. Specifically, we derive a series of abstract machines,
moving from the abstract definition of matching to increasingly realistic
machines. First a continuation is added to the operational semantics to
describe what remains to be matched after the current expression. Next, we
represent the expression as a data structure using pointers, which enables
redundant searches to be eliminated via testing for pointer equality. From
there, we arrive both at Thompson's lockstep construction and a machine that
performs some operations in parallel, suitable for implementation on a large
number of cores, such as a GPU. We formalize the parallel machine using process
algebra and report some preliminary experiments with an implementation on a
graphics processor using CUDA.Comment: In Proceedings SOS 2011, arXiv:1108.279
Turing machines based on unsharp quantum logic
In this paper, we consider Turing machines based on unsharp quantum logic.
For a lattice-ordered quantum multiple-valued (MV) algebra E, we introduce
E-valued non-deterministic Turing machines (ENTMs) and E-valued deterministic
Turing machines (EDTMs). We discuss different E-valued recursively enumerable
languages from width-first and depth-first recognition. We find that
width-first recognition is equal to or less than depth-first recognition in
general. The equivalence requires an underlying E value lattice to degenerate
into an MV algebra. We also study variants of ENTMs. ENTMs with a classical
initial state and ENTMs with a classical final state have the same power as
ENTMs with quantum initial and final states. In particular, the latter can be
simulated by ENTMs with classical transitions under a certain condition. Using
these findings, we prove that ENTMs are not equivalent to EDTMs and that ENTMs
are more powerful than EDTMs. This is a notable difference from the classical
Turing machines.Comment: In Proceedings QPL 2011, arXiv:1210.029
Towards high-level execution primitives for and-parallelism: preliminary results
Most implementations of parallel logic programming rely on complex low-level machinery which is arguably difflcult to implement and modify. We explore an alternative approach aimed at taming that complexity by raising core parts of the implementation to the source language level for the particular case of and-parallelism. Therefore, we handle a signiflcant portion of the parallel implementation mechanism at the Prolog level with the help of a comparatively small number of concurrency-related primitives which take care of lower-level tasks such as locking, thread management, stack set management, etc. The approach does not eliminate altogether modiflcations to the abstract machine, but it does greatly simplify them and it also facilitates experimenting with different alternatives. We show how this approach allows implementing both restricted and unrestricted (i.e., non fork-join) parallelism. Preliminary experiments show that the amount of performance sacriflced is reasonable, although granularity control is required in some cases. Also, we observe that the availability of unrestricted parallelism contributes to better observed speedups
Unification and Logarithmic Space
We present an algebraic characterization of the complexity classes Logspace
and NLogspace, using an algebra with a composition law based on unification.
This new bridge between unification and complexity classes is inspired from
proof theory and more specifically linear logic and Geometry of Interaction.
We show how unification can be used to build a model of computation by means
of specific subalgebras associated to finite permutations groups. We then prove
that whether an observation (the algebraic counterpart of a program) accepts a
word can be decided within logarithmic space. We also show that the
construction can naturally represent pointer machines, an intuitive way of
understanding logarithmic space computing
- …