Results 1 -
7 of
7
A Sound Metalogical Semantics for Input/Output Effects
, 1994
"... . We study the longstanding problem of semantics for input /output (I/O) expressed using side-effects. Our vehicle is a small higher-order imperative language, with operations for interactive character I/O and based on ML syntax. Unlike previous theories, we present both operational and denotational ..."
Abstract
-
Cited by 10 (2 self)
- Add to MetaCart
. We study the longstanding problem of semantics for input /output (I/O) expressed using side-effects. Our vehicle is a small higher-order imperative language, with operations for interactive character I/O and based on ML syntax. Unlike previous theories, we present both operational and denotational semantics for I/O effects. We use a novel labelled transition system that uniformly expresses both applicative and imperative computation. We make a standard definition of bisimilarity and prove it is a congruence using Howe's method. Next, we define a metalogical type theory M in which we may give a denotational semantics to O. M generalises Crole and Pitts' FIX-logic by adding in a parameterised recursive datatype, which is used to model I/O. M comes equipped both with judgements of equality of expressions, and an operational semantics; M itself is given a domain-theoretic semantics in the category CPPO of cppos (bottom-pointed posets with joins of !-chains) and Scott continuous functions...
Relating Operational and Denotational Semantics for Input/Output Effects
, 1999
"... We study the longstanding problem of semantics for input/output (I/O) expressed using side-effects. Our vehicle is a small higher-order imperative language, with operations for interactive character I/O and based on ML syntax. Unlike previous theories, we present both operational and denotational se ..."
Abstract
-
Cited by 7 (3 self)
- Add to MetaCart
We study the longstanding problem of semantics for input/output (I/O) expressed using side-effects. Our vehicle is a small higher-order imperative language, with operations for interactive character I/O and based on ML syntax. Unlike previous theories, we present both operational and denotational semantics for I/O effects. We use a novel labelled transition system that uniformly expresses both applicative and imperative computation. We make a standard definition of bisimilarity. We prove bisimilarity is a congruence using Howe's method. Next, we define a metalanguage M in which we may give a denotational semantics to O. M generalises Crole and Pitts' FIX-logic by adding in a parameterised recursive datatype, which is used to model I/O. M comes equipped both with an operational semantics and a domain-theoretic semantics in the category CPPO of cppos (bottom-pointed posets with joins of !-chains) and Scott continuous functions. We use the CPPO semantics to prove that M is computationally...
Composing the user interface with Haggis
- Advanced Functional Programming: Second Interational School, LNCS #1129
, 1996
"... This tutorial presents Haggis, a graphical user interface framework written in the lazy functional language Haskell. The Haggis framework provides the programmer with a compositional view of graphical user interfaces, where complete GUI applications can be built by repeatedly composing together part ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
This tutorial presents Haggis, a graphical user interface framework written in the lazy functional language Haskell. The Haggis framework provides the programmer with a compositional view of graphical user interfaces, where complete GUI applications can be built by repeatedly composing together parts. The individual user interface components are treated as virtual I/O devices that can be interacted with by the application just files and other `normal' devices. A key ingredient of Haggis is the use of concurrency to provide its compositional view of GUIs. 1 Introduction An important and interesting application area is graphical user interface applications. Haggis[6] is one Haskell[5] framework for composing such GUI applications within a functional language. Apart from being anchored in a lazy functional language, some of the important features of Haggis are: ffl A graphical user interface is treated as a virtual I/O device. A very common way of structuring a graphical user interface p...
Eekelen. Reasoning About Deterministic Concurrent Functional I/O
- Proceedings of IFL 2004, volume LNCS3474
, 2005
"... Abstract. This paper develops a language for reasoning about concurrent functional I/O. We assume that the API is specified as statetransformers on a single world state. We then prove that under certain conditions evaluation in this language is deterministic, and give some examples. All properties w ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
Abstract. This paper develops a language for reasoning about concurrent functional I/O. We assume that the API is specified as statetransformers on a single world state. We then prove that under certain conditions evaluation in this language is deterministic, and give some examples. All properties were machine-verified using the Sparkle proofassistant and using Core-Clean as a meta-language. 1
Concurrent Haskell
, 1996
"... Some applications are most easily expressed in a programming language that supports concurrency, notably interactive and distributed systems. We propose extensions to the purely-functional language Haskell that allow it to express explicitly concurrent applications; we call the resulting language Co ..."
Abstract
- Add to MetaCart
Some applications are most easily expressed in a programming language that supports concurrency, notably interactive and distributed systems. We propose extensions to the purely-functional language Haskell that allow it to express explicitly concurrent applications; we call the resulting language Concurrent Haskell. The resulting system appears to be both expressive and efficient, and we give a number of examples of useful abstractions that can be built from our primitives. We have developed a freely-available implementation of Concurrent Haskell, and are now using it as a substrate for a graphical user interface toolkit. This paper appears in the Proceedings of the 23rd ACM Symposium on Principles of Programming Languages (POPL '96), St Petersburg Beach, Florida, Jan 1996. 1 Introduction Concurrent Haskell is a concurrent extension to the lazy functional language Haskell. Our principal motivation is to provide a more expressive substrate upon which to build sophisticated I/O-perform...
by Elaine Gouvea Pimentel - Marcelo Luiz Silva RT 0XX/98
"... Contents 1 Introduc~ao 1 1.1 Especificando a Sintaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Semantica Operacional Estruturada: Express~oes 5 3 Semantica Operacional Estruturada: Comandos 9 4 Extens~oes de TINY 13 4.1 N~ao Determinismo . . . . . . . . . . . . . . . . . . . . ..."
Abstract
- Add to MetaCart
Contents 1 Introduc~ao 1 1.1 Especificando a Sintaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Semantica Operacional Estruturada: Express~oes 5 3 Semantica Operacional Estruturada: Comandos 9 4 Extens~oes de TINY 13 4.1 N~ao Determinismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2 Paralelismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 i Chapter 1 Introduc~ao Em semantica operacional nos preocupamos como programas s~ao executados, e n~ao apenas quais s~ao os resultados da execuc~ao. Mais precisamente, estamos interessados em como os estados s~ao modificados durante a execuc~ao de um comando ou a avaliac~ao de uma express~ao. Existem duas abordagens poss'iveis para o estudo de semantica operacional: ffl Semantica natural - descreve como os resultados finais de execuc~ao s~ao obtidos; ffl Semantica operacional estruturada
M. Dowse, A. Butterfield, M. van Eekelen , M. de Mol , R. Plasmeijer
"... In functional languages, the shape of the external world affects both our understanding of I/O and how we would wish to have I/O expressed. This paper takes the first tentative steps at examining the consequences of using an explicit model of the external world-state when reasoning (using tool-s ..."
Abstract
- Add to MetaCart
In functional languages, the shape of the external world affects both our understanding of I/O and how we would wish to have I/O expressed. This paper takes the first tentative steps at examining the consequences of using an explicit model of the external world-state when reasoning (using tool-support) about the behaviour of lazy functional programs. We construct a file-system model and develop a monadic language which lets us structure I/O. Two proofs are then performed regarding the observable e#ect of real-world functional I/O, and it is shown how properties of the file-system lend themselves naturally to the modelling of concurrent behaviour on a single, global state. All proofs in this paper were machine-verified using the Sparkle proof-assistant.

