27,432 research outputs found
Reachability under Contextual Locking
The pairwise reachability problem for a multi-threaded program asks, given
control locations in two threads, whether they can be simultaneously reached in
an execution of the program. The problem is important for static analysis and
is used to detect statements that are concurrently enabled. This problem is in
general undecidable even when data is abstracted and when the threads (with
recursion) synchronize only using a finite set of locks. Popular programming
paradigms that limit the lock usage patterns have been identified under which
the pairwise reachability problem becomes decidable. In this paper, we consider
a new natural programming paradigm, called contextual locking, which ties the
lock usage to calling patterns in each thread: we assume that locks are
released in the same context that they were acquired and that every lock
acquired by a thread in a procedure call is released before the procedure
returns. Our main result is that the pairwise reachability problem is
polynomial-time decidable for this new programming paradigm as well. The
problem becomes undecidable if the locks are reentrant; reentrant locking is a
\emph{recursive locking} mechanism which allows a thread in a multi-threaded
program to acquire the reentrant lock multiple times.Comment: A preliminary version appears in TACAS 201
A Low-Overhead Script Language for Tiny Networked Embedded Systems
With sensor networks starting to get mainstream acceptance, programmability is of increasing importance.
Customers and field engineers will need to reprogram existing deployments and software developers
will need to test and debug software in network testbeds. Script languages, which are a popular
mechanism for reprogramming in general-purpose computing, have not been considered for wireless sensor
networks because of the perceived overhead of interpreting a script language on tiny sensor nodes.
In this paper we show that a structured script language is both feasible and efficient for programming
tiny sensor nodes. We present a structured script language, SCript, and develop an interpreter for the
language. To reduce program distribution energy the SCript interpreter stores a tokenized representation
of the scripts which is distributed through the wireless network. The ROM and RAM footprint of the
interpreter is similar to that of existing virtual machines for sensor networks. We show that the interpretation
overhead of our language is on par with that of existing virtual machines. Thus script languages,
previously considered as too expensive for tiny sensor nodes, are a viable alternative to virtual machines
Sublinearly space bounded iterative arrays
Iterative arrays (IAs) are a, parallel computational model with a sequential processing of the input. They are one-dimensional arrays of interacting identical deterministic finite automata. In this note, realtime-lAs with sublinear space bounds are used to accept formal languages. The existence of a proper hierarchy of space complexity classes between logarithmic anel linear space bounds is proved. Furthermore, an optimal spacc lower bound for non-regular language recognition is shown. Key words: Iterative arrays, cellular automata, space bounded computations, decidability questions, formal languages, theory of computatio
Monoid automata for displacement context-free languages
In 2007 Kambites presented an algebraic interpretation of
Chomsky-Schutzenberger theorem for context-free languages. We give an
interpretation of the corresponding theorem for the class of displacement
context-free languages which are equivalent to well-nested multiple
context-free languages. We also obtain a characterization of k-displacement
context-free languages in terms of monoid automata and show how such automata
can be simulated on two stacks. We introduce the simultaneous two-stack
automata and compare different variants of its definition. All the definitions
considered are shown to be equivalent basing on the geometric interpretation of
memory operations of these automata.Comment: Revised version for ESSLLI Student Session 2013 selected paper
The C Object System: Using C as a High-Level Object-Oriented Language
The C Object System (Cos) is a small C library which implements high-level
concepts available in Clos, Objc and other object-oriented programming
languages: uniform object model (class, meta-class and property-metaclass),
generic functions, multi-methods, delegation, properties, exceptions, contracts
and closures. Cos relies on the programmable capabilities of the C programming
language to extend its syntax and to implement the aforementioned concepts as
first-class objects. Cos aims at satisfying several general principles like
simplicity, extensibility, reusability, efficiency and portability which are
rarely met in a single programming language. Its design is tuned to provide
efficient and portable implementation of message multi-dispatch and message
multi-forwarding which are the heart of code extensibility and reusability.
With COS features in hand, software should become as flexible and extensible as
with scripting languages and as efficient and portable as expected with C
programming. Likewise, Cos concepts should significantly simplify adaptive and
aspect-oriented programming as well as distributed and service-oriented
computingComment: 18
Revisiting Underapproximate Reachability for Multipushdown Systems
Boolean programs with multiple recursive threads can be captured as pushdown
automata with multiple stacks. This model is Turing complete, and hence, one is
often interested in analyzing a restricted class that still captures useful
behaviors. In this paper, we propose a new class of bounded under
approximations for multi-pushdown systems, which subsumes most existing
classes. We develop an efficient algorithm for solving the under-approximate
reachability problem, which is based on efficient fix-point computations. We
implement it in our tool BHIM and illustrate its applicability by generating a
set of relevant benchmarks and examining its performance. As an additional
takeaway, BHIM solves the binary reachability problem in pushdown automata. To
show the versatility of our approach, we then extend our algorithm to the timed
setting and provide the first implementation that can handle timed
multi-pushdown automata with closed guards.Comment: 52 pages, Conference TACAS 202
- …