1,029 research outputs found
On the expressiveness of single-pass instruction sequences
We perceive programs as single-pass instruction sequences. A single-pass
instruction sequence under execution is considered to produce a behaviour to be
controlled by some execution environment. Threads as considered in basic thread
algebra model such behaviours. We show that all regular threads, i.e. threads
that can only be in a finite number of states, can be produced by single-pass
instruction sequences without jump instructions if use can be made of Boolean
registers. We also show that, in the case where goto instructions are used
instead of jump instructions, a bound to the number of labels restricts the
expressiveness.Comment: 14 pages; error corrected, acknowledgement added; another error
corrected, another acknowledgement adde
Instruction sequences for the production of processes
Single-pass instruction sequences under execution are considered to produce
behaviours to be controlled by some execution environment. Threads as
considered in thread algebra model such behaviours: upon each action performed
by a thread, a reply from its execution environment determines how the thread
proceeds. Threads in turn can be looked upon as producing processes as
considered in process algebra. We show that, by apposite choice of basic
instructions, all processes that can only be in a finite number of states can
be produced by single-pass instruction sequences.Comment: 23 pages; acknowledgement corrected, reference update
Programming an interpreter using molecular dynamics
PGA (ProGram Algebra) is an algebra of programs which concerns programs in
their simplest form: sequences of instructions. Molecular dynamics is a simple
model of computation developed in the setting of PGA, which bears on the use of
dynamic data structures in programming. We consider the programming of an
interpreter for a program notation that is close to existing assembly languages
using PGA with the primitives of molecular dynamics as basic instructions. It
happens that, although primarily meant for explaining programming language
features relating to the use of dynamic data structures, the collection of
primitives of molecular dynamics in itself is suited to our programming wants.Comment: 27 page
Transmission protocols for instruction streams
Threads as considered in thread algebra model behaviours to be controlled by
some execution environment: upon each action performed by a thread, a reply
from its execution environment -- which takes the action as an instruction to
be processed -- determines how the thread proceeds. In this paper, we are
concerned with the case where the execution environment is remote: we describe
and analyse some transmission protocols for passing instructions from a thread
to a remote execution environment.Comment: 13 page
An interface group for process components
We take a process component as a pair of an interface and a behaviour. We
study the composition of interacting process components in the setting of
process algebra. We formalize the interfaces of interacting process components
by means of an interface group. An interesting feature of the interface group
is that it allows for distinguishing between expectations and promises in
interfaces of process components. This distinction comes into play in case
components with both client and server behaviour are involved.Comment: 26 pages; section on non-associativity of component composition
added, examples adde
Meadow enriched ACP process algebras
We introduce the notion of an ACP process algebra. The models of the axiom
system ACP are the origin of this notion. ACP process algebras have to do with
processes in which no data are involved. We also introduce the notion of a
meadow enriched ACP process algebra, which is a simple generalization of the
notion of an ACP process algebra to processes in which data are involved. In
meadow enriched ACP process algebras, the mathematical structure for data is a
meadow.Comment: 8 pages; correction in Table
Process algebra with strategic interleaving
In process algebras such as ACP (Algebra of Communicating Processes),
parallel processes are considered to be interleaved in an arbitrary way. In the
case of multi-threading as found in contemporary programming languages,
parallel processes are actually interleaved according to some interleaving
strategy. An interleaving strategy is what is called a process-scheduling
policy in the field of operating systems. In many systems, for instance
hardware/software systems, we have to do with both parallel processes that may
best be considered to be interleaved in an arbitrary way and parallel processes
that may best be considered to be interleaved according to some interleaving
strategy. Therefore, we extend ACP in this paper with the latter form of
interleaving. The established properties of the extension concerned include an
elimination property, a conservative extension property, and a unique expansion
property.Comment: 19 pages, this version is a revision of the published versio
Probabilistic thread algebra
We add probabilistic features to basic thread algebra and its extensions with
thread-service interaction and strategic interleaving. Here, threads represent
the behaviours produced by instruction sequences under execution and services
represent the behaviours exhibited by the components of execution environments
of instruction sequences. In a paper concerned with probabilistic instruction
sequences, we proposed several kinds of probabilistic instructions and gave an
informal explanation for each of them. The probabilistic features added to the
extension of basic thread algebra with thread-service interaction make it
possible to give a formal explanation in terms of non-probabilistic
instructions and probabilistic services. The probabilistic features added to
the extensions of basic thread algebra with strategic interleaving make it
possible to cover strategies corresponding to probabilistic scheduling
algorithms.Comment: 25 pages (arXiv admin note: text overlap with arXiv:1408.2955,
arXiv:1402.4950); some simplifications made; substantially revise
Process algebra with conditionals in the presence of epsilon
In a previous paper, we presented several extensions of ACP with conditional
expressions, including one with a retrospection operator on conditions to allow
for looking back on conditions under which preceding actions have been
performed. In this paper, we add a constant for a process that is only capable
of terminating successfully to those extensions of ACP, which can be very
useful in applications. It happens that in all cases the addition of this
constant is unproblematic.Comment: 41 page
On the behaviours produced by instruction sequences under execution
We study several aspects of the behaviours produced by instruction sequences
under execution in the setting of the algebraic theory of processes known as
ACP. We use ACP to describe the behaviours produced by instruction sequences
under execution and to describe two protocols implementing these behaviours in
the case where the processing of instructions takes place remotely. We also
show that all finite-state behaviours considered in ACP can be produced by
instruction sequences under execution.Comment: 36 pages, consolidates material from arXiv:0811.0436 [cs.PL],
arXiv:0902.2859 [cs.PL], and arXiv:0905.2257 [cs.PL]; abstract and
introduction rewritten, examples and proofs adde
- …