295 research outputs found
Concurrent Computing with Shared Replicated Memory
The behavioural theory of concurrent systems states that any concurrent
system can be captured by a behaviourally equivalent concurrent Abstract State
Machine (cASM). While the theory in general assumes shared locations, it
remains valid, if different agents can only interact via messages, i.e. sharing
is restricted to mailboxes. There may even be a strict separation between
memory managing agents and other agents that can only access the shared memory
by sending query and update requests to the memory agents. This article is
dedicated to an investigation of replicated data that is maintained by a memory
management subsystem, whereas the replication neither appears in the requests
nor in the corresponding answers. We show how the behaviour of a concurrent
system with such a memory management can be specified using concurrent
communicating ASMs. We provide several refinements of a high-level ground model
addressing different replication policies and internal messaging between data
centres. For all these refinements we analyse their effects on the runs such
that decisions concerning the degree of consistency can be consciously made.Comment: 23 page
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
Behavioural Theory of Reflective Algorithms I: Reflective Sequential Algorithms
We develop a behavioural theory of reflective sequential algorithms (RSAs),
i.e. sequential algorithms that can modify their own behaviour. The theory
comprises a set of language-independent postulates defining the class of RSAs,
an abstract machine model, and the proof that all RSAs are captured by this
machine model. As in Gurevich's behavioural theory for sequential algorithms
RSAs are sequential-time, bounded parallel algorithms, where the bound depends
on the algorithm only and not on the input. Different from the class of
sequential algorithms every state of an RSA includes a representation of the
algorithm in that state, thus enabling linguistic reflection. Bounded
exploration is preserved using terms as values. The model of reflective
sequential abstract state machines (rsASMs) extends sequential ASMs using
extended states that include an updatable representation of the main ASM rule
to be executed by the machine in that state. Updates to the representation of
ASM signatures and rules are realised by means of a sophisticated tree algebra.Comment: 32 page
A Behavioural Theory of Recursive Algorithms
"What is an algorithm?" is a fundamental question of computer science.
Gurevich's behavioural theory of sequential algorithms (aka the sequential ASM
thesis) gives a partial answer by defining (non-deterministic) sequential
algorithms axiomatically, without referring to a particular machine model or
programming language, and showing that they are captured by (non-deterministic)
sequential Abstract State Machines (nd-seq ASMs). Moschovakis pointed out that
recursive algorithms such as mergesort are not covered by this theory. In this
article we propose an axiomatic definition of the notion of sequential
recursive algorithm which extends Gurevich's axioms for sequential algorithms
by a Recursion Postulate and allows us to prove that sequential recursive
algorithms are captured by recursive Abstract State Machines, an extension of
nd-seq ASMs by a CALL rule. Applying this recursive ASM thesis yields a
characterization of sequential recursive algorithms as finitely composed
concurrent algorithms all of whose concurrent runs are partial-order runs.Comment: 34 page
Late-bound code generation
Each time a function or method is invoked during the execution of a program, a stream of instructions is issued to some underlying hardware platform. But exactly what underlying hardware, and which instructions, is usually left implicit. However in certain situations it becomes important to control these decisions. For example, particular problems can only be solved in real-time when scheduled on specialised accelerators, such as graphics coprocessors or computing clusters.
We introduce a novel operator for hygienically reifying the behaviour of a runtime function instance as a syntactic fragment, in a language which may in general differ from the source function definition. Translation and optimisation are performed by recursively invoked, dynamically dispatched code generators. Side-effecting operations are permitted, and their ordering is preserved.
We compare our operator with other techniques for pragmatic control, observing that: the use of our operator supports lifting arbitrary mutable objects, and neither requires rewriting sections of the source program in a multi-level language, nor interferes with the interface to individual software components. Due to its lack of interference at the abstraction level at which software is composed, we believe that our approach poses a significantly lower barrier to practical adoption than current methods.
The practical efficacy of our operator is demonstrated by using it to offload the user interface rendering of a smartphone application to an FPGA coprocessor, including both statically and procedurally defined user interface components. The generated pipeline is an application-specific, statically scheduled processor-per-primitive rendering pipeline, suitable for place-and-route style optimisation.
To demonstrate the compatibility of our operator with existing languages, we show how it may be defined within the Python programming language. We introduce a transformation for weakening mutable to immutable named bindings, termed let-weakening, to solve the problem of propagating information pertaining to named variables between modular code generating units.Open Acces
On Modularity In Abstract State Machines
In the field of model based formal methods we investigate the Abstract State Machine (ASM) modularity features. With the growing complexity of systems and the experience gained in more than thirty years of ASM method application a need for more manageable models emerged. We mainly investigate the notion of modules in ASMs as independent interacting components and the ability to identify portions of the machine state with the aim of improving the modelling process.
In this thesis we provide a language level semantically well defined solution for (1) the definition of ASM modules as independent services and their communication behaviour; (2) a new construct that operates on the global state of an ASM machine that ease the management of state partitions and their identification; (3) a novel transition rule for the management of computations providing different execution strategies and putting termination condition for the machine inside the specification; (4) a data definition convention along with a new transition rule for their manipulation via pattern matching.
In our work we build upon CoreASM, a well-known extensible modelling framework and tool environment for ASMs. The semantic of our modularity constructs is compatible with the one defined for the CoreASM interpreter. This ease the implementation of extension plugins for tool support of modularity features.
A real world system use case ground model ends the thesis exemplifying the practical usage of our modularity constructs
- …