Results 1 -
2 of
2
An Arrow Based Semantics for Interactive Applications
"... Interactive applications, whether they run on the desktop or as a web application, can be considered to be collections of interconnected editors that allow users to manipulate data. This is the view that is advocated by the GEC Toolkit and the iData Toolkit, which offer a high level of abstraction t ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Interactive applications, whether they run on the desktop or as a web application, can be considered to be collections of interconnected editors that allow users to manipulate data. This is the view that is advocated by the GEC Toolkit and the iData Toolkit, which offer a high level of abstraction to desktop and web GUI applications respectively. Special features of these toolkits are that editors have shared, persistent state, and that they handle events individually. In this paper we cast these toolkits within the Arrow framework and present a single, unified semantic model that handles shared state and the event handling behavior. We study the definedness properties of the semantic model, and of editors in particular. We demonstrate that this is important when using the Arrow combinators with primitive combinators that have different definedness properties. We use the proof assistant Sparkle to create and check the proofs. In the process, we identify a missing tactic in Sparkle.
Reasoning about Selective Strictness -- Operational Equivalence, Heaps and Call-by-Need Evaluation, New Inductive Principles
, 2009
"... This thesis studies how to prove equivalences between programs in languages with selective strictness, specifically, we use a restricted core lazy functional language with a selective strictness operator seq. We establish some of the first ever equivalences between lazy programs with selective str ..."
Abstract
- Add to MetaCart
This thesis studies how to prove equivalences between programs in languages with selective strictness, specifically, we use a restricted core lazy functional language with a selective strictness operator seq. We establish some of the first ever equivalences between lazy programs with selective strictness by manipulating operational semantics derivations. Our operational semantics is similar to that used by van Eekelen and De Mol, though we introduce a ‘garbage-collecting’ rule for (let) which turns out to cause expressiveness restrictions. For example, arguably reasonable lazy programs such as let y = λz.z in λx.y do not reduce in our operational semantics. We prove some properties of seq, including associativity, idempotence, and left-commutativity. The proofs use our three notions of program equivalence defined

