## Using Effect Systems for Automating Model Extraction

### BibTeX

@MISC{Crole_usingeffect,

author = {R. L. Crole and A. Furniss},

title = {Using Effect Systems for Automating Model Extraction},

year = {}

}

### OpenURL

### Abstract

Abstract. We present a programming language called Do which has an effect system. Do is motivated by Wadler’s extension of the computational lambda calculus. Do is specified by augmenting (the language of) the extension with a set of predefined effects and with provision for programmers to create their own application-specific effects. Do is accompanied by Dome (Do model extractor), a tool to extract models of Do programs for model-checking. Models are created with regard to a particular computational effect or set of effects. A key difference between our approach and previous approaches is that vertices in program graphs represent the effect behaviour of statements, rather than the statement itself. 1

### Citations

1023 |
Advanced Compiler Design and Implementation
- Muchnick
- 1997
(Show Context)
Citation Context ...ble when adding an entry, allowing the previous version to be restored upon leaving the scope. Strategies for efficiently implementing the different types of symbol table are also discussed. Muchnick =-=[14]-=- provides a further in-depth discussion of symbol tables, including their implementation using hash-tables for languages with different scoping rules. The lexer and parser have been generated using Fl... |

723 | Interprocedural slicing using dependence graphs
- Horwitz, Reps, et al.
- 1990
(Show Context)
Citation Context ...mula, and prove that their slicing algorithm preserves the properties of the model that satisfy the criteria, allowing an optimised model to be constructed for each formula. Horwitz, Reps and Binkley =-=[9]-=- discuss program slicing using dependence graphs. They start with a description of slicing programs with a single procedure or function using a program dependence graph. Such graphs have an entry vert... |

455 | Computational lambda-calculus and monads
- Moggi
- 1989
(Show Context)
Citation Context ...rivileges, we can consider the set of privileges required by a given section of code equivalent to the set of effects that the code performs. 2.2 Computational Monads and Monadic Effect Systems Moggi =-=[13]-=- introduces the notion of computation types. Given a type τ one also has a type T τ which designates computations which may deliver a result oftype τ. For example the type might be int and T int = in... |

261 | Logic in computer science: Modelling and reasoning about systems
- Huth, Ryan
- 2000
(Show Context)
Citation Context ... int y : int i : int = { (1) if i = 0 then (2) return y; (3) if i = 1 then (4) return x + y; (5) set a := x + y; (7) set b := (6) get a + y; (8) set c := i - 2; (14) return (12) (13) fib2 (9) (get a) =-=(10)-=- (get b) (11) (get c) }; fun fib : int n : int = { (15) let z := n - 1 in (16) return (17) (18) fib2 0 1 z }; fun main : unit d : unit = { (19) return (20) (21) fib 42 }; Fig. 2. Progam P One of the k... |

251 | Polymorphic effect systems
- Lucassen, Gifford
- 1988
(Show Context)
Citation Context ... sections called regions, and memory effects are annotated with the region they act upon. The term tag is also used (for example in [12]) to indicate the same type of annotation. Lucassen and Gifford =-=[11]-=- describe an effect system with types, effects and regions, and effects of reading, writing or allocating memory locations. They give an operational semantics for their type and effect inference rules... |

175 |
Modern Compiler Implementation in Java
- Appel, Palsberg
- 2002
(Show Context)
Citation Context .... Synchronisation dependencies occur when the concurrency features of Java such as notify(), wait() and join() are used to synchronise threads. 2.4 A Note on Implementation Details Appel and Palsberg =-=[1]-=- provide an overview of compiler design and related issues including type checking and symbol tables, which are an important aspect of both the model extractor and interpreter. They distinguish betwee... |

100 | The marriage of effects and monads
- Wadler
- 1998
(Show Context)
Citation Context ...ion, side-effects and continuations. Computation types allow many different types of computations and effects to be treated in a uniform manner, and forms the basis for the effect system described in =-=[15]-=-. Crole has investigated the use of computation types in giving semantics to IO effects [5], and there are connections between the IO semantics and the Do semantics seen in the current paper. Wadler a... |

95 | Slicing Software for Model Construction
- Hatcliff, Dwyer, et al.
(Show Context)
Citation Context ...ontained within the slicing criterion – essentially a series of static backwards slices. The most common approaches to static backwards slicing in the literature have been graph-based. Hatcliff et al =-=[8]-=- consider program slicing in the context of model production for their Bandera tool using a control-flow graph. They show how to extract slicing criteria from a LTL formula, and prove that their slici... |

12 | Multithreaded Dependence Graphs for Concurrent Java Programs
- Zhao
- 1999
(Show Context)
Citation Context ...icing algorithm traverses functions that are called by the function containing the starting point of the slice. The final slice is the union of the sets of vertices marked during the two stages. Zhao =-=[16]-=- describes multi-threaded dependence graphs, an extension of the program dependence graphs used in methods of slicing sequential programs (most notably from [9]). Multi-threaded dependence graphs prov... |

11 | A generic type-and-effect system
- Marino, Millstein
- 2009
(Show Context)
Citation Context ...region-based memory management in which the heap is partitioned into sections called regions, and memory effects are annotated with the region they act upon. The term tag is also used (for example in =-=[12]-=-) to indicate the same type of annotation. Lucassen and Gifford [11] describe an effect system with types, effects and regions, and effects of reading, writing or allocating memory locations. They giv... |

7 | Relating Operational and Denotational Semantics for Input/Output Effects
- Crole, Gordon
- 1999
(Show Context)
Citation Context ...tions and effects to be treated in a uniform manner, and forms the basis for the effect system described in [15]. Crole has investigated the use of computation types in giving semantics to IO effects =-=[5]-=-, and there are connections between the IO semantics and the Do semantics seen in the current paper. Wadler and Thiemann [15] modify an existing effect system to produce one based upon computation typ... |

1 |
Flex bison c++ template/example 0.1.4. http://idlebox.net/2007/flex-bison-cpp-example
- Bingmann
(Show Context)
Citation Context ...rent scoping rules. The lexer and parser have been generated using Flex and Bison. During this process, the Flex documentation [7], Bison documentation [3] and C++ Flex/Bison example by Timo Bingmann =-=[2]-=- were useful. 3 States, Effects and Dependencies Our aim is to present a method for creating models of the interactions of a computer program (and constituent threads) with the computer system state. ... |

1 |
Operational Semantics, Abstract Machines and Correctness, 2008. Lecture Notes for the Midlands Graduate
- Crole
(Show Context)
Citation Context ...see for example [6]). C ::= [ ] | uop C | C bop E | V bop C | C E | V C | if C then S | if C then S1 else S2 | set id := C | let id := C in S | C ; E | V ; C | return C f −→ The operational semantics =-=[4]-=- transitions take the form (s, β, ⊣dep), X (s′, β ′, ⊣dep ′ ), X ′ where X is an expression or a statement, generalising the transitions of [15]. In the case that no changes occur to s, β, or ⊣dep the... |