136,399 research outputs found
The inclusion problem for simple languages
AbstractA deterministic pushdown acceptor is called a simple machine when it is restricted to have only one state, operate in real-time, and accept by empty store. While the existence of an effective procedure for deciding equivalence of languages accepted by these simple machines is well-known, it is shown that this family is powerful enough to have an undecidable inclusion problem. It follows that the inclusion problems for the LL(k) languages and the free monadic recursion schemes that do not use an identity function are also undecidable
Trustworthy Refactoring via Decomposition and Schemes: A Complex Case Study
Widely used complex code refactoring tools lack a solid reasoning about the
correctness of the transformations they implement, whilst interest in proven
correct refactoring is ever increasing as only formal verification can provide
true confidence in applying tool-automated refactoring to industrial-scale
code. By using our strategic rewriting based refactoring specification
language, we present the decomposition of a complex transformation into smaller
steps that can be expressed as instances of refactoring schemes, then we
demonstrate the semi-automatic formal verification of the components based on a
theoretical understanding of the semantics of the programming language. The
extensible and verifiable refactoring definitions can be executed in our
interpreter built on top of a static analyser framework.Comment: In Proceedings VPT 2017, arXiv:1708.0688
Survey of Distributed Decision
We survey the recent distributed computing literature on checking whether a
given distributed system configuration satisfies a given boolean predicate,
i.e., whether the configuration is legal or illegal w.r.t. that predicate. We
consider classical distributed computing environments, including mostly
synchronous fault-free network computing (LOCAL and CONGEST models), but also
asynchronous crash-prone shared-memory computing (WAIT-FREE model), and mobile
computing (FSYNC model)
Recommended from our members
Languages and Learning at Key Stage 2: A Longitudinal Study Final Report
In 2006, The Open University, the University of Southampton and Canterbury Christ Church University were commissioned by the then Department for Education and Skills (DfES), now Department for Children, Schools and Families (DCSF) to conduct a three-year longitudinal study of languages learning at Key Stage 2 (KS2). The qualitative study was designed to explore provision, practice and developments over three school years between 2006/07 and 2008/09 in a sample of primary schools and explore children’s achievement in oracy and literacy, as well as the possible broader cross-curricular impact of languages learning
A Finite Semantics of Simply-Typed Lambda Terms for Infinite Runs of<br> Automata
Model checking properties are often described by means of finite automata.
Any particular such automaton divides the set of infinite trees into finitely
many classes, according to which state has an infinite run. Building the full
type hierarchy upon this interpretation of the base type gives a finite
semantics for simply-typed lambda-trees.
A calculus based on this semantics is proven sound and complete. In
particular, for regular infinite lambda-trees it is decidable whether a given
automaton has a run or not. As regular lambda-trees are precisely recursion
schemes, this decidability result holds for arbitrary recursion schemes of
arbitrary level, without any syntactical restriction.Comment: 23 page
Lock-free Concurrent Data Structures
Concurrent data structures are the data sharing side of parallel programming.
Data structures give the means to the program to store data, but also provide
operations to the program to access and manipulate these data. These operations
are implemented through algorithms that have to be efficient. In the sequential
setting, data structures are crucially important for the performance of the
respective computation. In the parallel programming setting, their importance
becomes more crucial because of the increased use of data and resource sharing
for utilizing parallelism.
The first and main goal of this chapter is to provide a sufficient background
and intuition to help the interested reader to navigate in the complex research
area of lock-free data structures. The second goal is to offer the programmer
familiarity to the subject that will allow her to use truly concurrent methods.Comment: To appear in "Programming Multi-core and Many-core Computing
Systems", eds. S. Pllana and F. Xhafa, Wiley Series on Parallel and
Distributed Computin
On the Implicit Graph Conjecture
The implicit graph conjecture states that every sufficiently small,
hereditary graph class has a labeling scheme with a polynomial-time computable
label decoder. We approach this conjecture by investigating classes of label
decoders defined in terms of complexity classes such as P and EXP. For
instance, GP denotes the class of graph classes that have a labeling scheme
with a polynomial-time computable label decoder. Until now it was not even
known whether GP is a strict subset of GR. We show that this is indeed the case
and reveal a strict hierarchy akin to classical complexity. We also show that
classes such as GP can be characterized in terms of graph parameters. This
could mean that certain algorithmic problems are feasible on every graph class
in GP. Lastly, we define a more restrictive class of label decoders using
first-order logic that already contains many natural graph classes such as
forests and interval graphs. We give an alternative characterization of this
class in terms of directed acyclic graphs. By showing that some small,
hereditary graph class cannot be expressed with such label decoders a weaker
form of the implicit graph conjecture could be disproven.Comment: 13 pages, MFCS 201
- …