12,504 research outputs found
Explicit fairness in testing semantics
In this paper we investigate fair computations in the pi-calculus. Following
Costa and Stirling's approach for CCS-like languages, we consider a method to
label process actions in order to filter out unfair computations. We contrast
the existing fair-testing notion with those that naturally arise by imposing
weak and strong fairness. This comparison provides insight about the
expressiveness of the various `fair' testing semantics and about their
discriminating power.Comment: 27 pages, 1 figure, appeared in LMC
Differential effects of internal and external factors on the development of vocabulary, tense morphology and morpho-syntax in successive bilingual children
The present study investigates the effects of child internal (age/time) and child external/environmental factors on the development of a wide range of language domains in successive bilingual (L2) Turkish-English children of homogeneously low SES. Forty-three L2 children were tested on standardized assessments examining the acquisition of vocabulary and morpho-syntax. The L2 children exhibited a differential acquisition of the various domains: they were better on the general comprehension of grammar and tense morphology and less accurate on the acquisition of vocabulary and (complex) morpho-syntax. Profile effects were confirmed by the differential effects of internal and external factors on the language domains. The development of vocabulary and complex syntax were affected by internal and external factors, whereas external factors had no contribution to the development of tense morphology. These results are discussed in light of previous studies on the impact of internal and external factors in child L2 acquisition
Algorithmic Verification of Asynchronous Programs
Asynchronous programming is a ubiquitous systems programming idiom to manage
concurrent interactions with the environment. In this style, instead of waiting
for time-consuming operations to complete, the programmer makes a non-blocking
call to the operation and posts a callback task to a task buffer that is
executed later when the time-consuming operation completes. A co-operative
scheduler mediates the interaction by picking and executing callback tasks from
the task buffer to completion (and these callbacks can post further callbacks
to be executed later). Writing correct asynchronous programs is hard because
the use of callbacks, while efficient, obscures program control flow.
We provide a formal model underlying asynchronous programs and study
verification problems for this model. We show that the safety verification
problem for finite-data asynchronous programs is expspace-complete. We show
that liveness verification for finite-data asynchronous programs is decidable
and polynomial-time equivalent to Petri Net reachability. Decidability is not
obvious, since even if the data is finite-state, asynchronous programs
constitute infinite-state transition systems: both the program stack and the
task buffer of pending asynchronous calls can be potentially unbounded.
Our main technical construction is a polynomial-time semantics-preserving
reduction from asynchronous programs to Petri Nets and conversely. The
reduction allows the use of algorithmic techniques on Petri Nets to the
verification of asynchronous programs.
We also study several extensions to the basic models of asynchronous programs
that are inspired by additional capabilities provided by implementations of
asynchronous libraries, and classify the decidability and undecidability of
verification questions on these extensions.Comment: 46 pages, 9 figure
SL: a "quick and dirty" but working intermediate language for SVP systems
The CSA group at the University of Amsterdam has developed SVP, a framework
to manage and program many-core and hardware multithreaded processors. In this
article, we introduce the intermediate language SL, a common vehicle to program
SVP platforms. SL is designed as an extension to the standard C language (ISO
C99/C11). It includes primitive constructs to bulk create threads, bulk
synchronize on termination of threads, and communicate using word-sized
dataflow channels between threads. It is intended for use as target language
for higher-level parallelizing compilers. SL is a research vehicle; as of this
writing, it is the only interface language to program a main SVP platform, the
new Microgrid chip architecture. This article provides an overview of the
language, to complement a detailed specification available separately.Comment: 22 pages, 3 figures, 18 listings, 1 tabl
On convergence-sensitive bisimulation and the embedding of CCS in timed CCS
We propose a notion of convergence-sensitive bisimulation that is built just
over the notions of (internal) reduction and of (static) context. In the
framework of timed CCS, we characterise this notion of `contextual'
bisimulation via the usual labelled transition system. We also remark that it
provides a suitable semantic framework for a fully abstract embedding of
untimed processes into timed ones. Finally, we show that the notion can be
refined to include sensitivity to divergence
Quantitative testing semantics for non-interleaving
This paper presents a non-interleaving denotational semantics for the
?-calculus. The basic idea is to define a notion of test where the outcome is
not only whether a given process passes a given test, but also in how many
different ways it can pass it. More abstractly, the set of possible outcomes
for tests forms a semiring, and the set of process interpretations appears as a
module over this semiring, in which basic syntactic constructs are affine
operators. This notion of test leads to a trace semantics in which traces are
partial orders, in the style of Mazurkiewicz traces, extended with readiness
information. Our construction has standard may- and must-testing as special
cases
- …