Results 1 
8 of
8
A Generic TypeandEffect System
"... Typeandeffect systems are a natural approach for statically reasoning about a program’s execution. They have been used to track a variety of computational effects, for example memory manipulation, exceptions, and locking. However, each typeandeffect system is typically implemented as its own mon ..."
Abstract

Cited by 14 (0 self)
 Add to MetaCart
(Show Context)
Typeandeffect systems are a natural approach for statically reasoning about a program’s execution. They have been used to track a variety of computational effects, for example memory manipulation, exceptions, and locking. However, each typeandeffect system is typically implemented as its own monolithic type system that hardcodes a particular syntax of effects along with particular rules to track and control those effects. We present a generic typeandeffect system, which is parameterized by the syntax of effects to track and by two functions that together specify the effect discipline to be statically enforced. We describe how a standard form of type soundness is ensured by requiring these two functions to obey a few natural monotonicity requirements. We demonstrate that several effect systems from the literature can be viewed as instantiations of our generic type system. Finally, we describe the implementation of our typeandeffect system and mechanically checked type soundness proof in the Twelf proof assistant.
A Modal Calculus for Effect Handling
, 2003
"... In their purest formulation, monads are used in functional programming for two purposes: (1) to hygienically propagate effects, and (2) to globalize the effect scope  once an effect occurs, the purity of the surrounding computation cannot be restored. As a consequence, monadic typing does not prov ..."
Abstract

Cited by 7 (2 self)
 Add to MetaCart
(Show Context)
In their purest formulation, monads are used in functional programming for two purposes: (1) to hygienically propagate effects, and (2) to globalize the effect scope  once an effect occurs, the purity of the surrounding computation cannot be restored. As a consequence, monadic typing does not provide very naturally for the practically important ability to handle effects, and there is a number of previous works directed toward remedying this deficiency. It is mostly based on extending the monadic framework with further extralogical constructs to support handling. In this paper we adopt...
A Programming Language for Probabilistic Computation
, 2005
"... As probabilistic computations play an increasing role in solving various problems, researchers have designed probabilistic languages to facilitate their modeling. Most of the existing probabilistic languages, however, focus only on discrete distributions, and there has been little effort to develop ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
As probabilistic computations play an increasing role in solving various problems, researchers have designed probabilistic languages to facilitate their modeling. Most of the existing probabilistic languages, however, focus only on discrete distributions, and there has been little effort to develop probabilistic languages whose expressive power is beyond discrete distributions. This dissertation presents a probabilistic language, called PTP (ProbabilisTic Programming), which supports all kinds of probability distributions.
Towards a Simply Typed CALculus for Semantic Knowledge Bases∗
"... This paper demonstrates how a constructive version of the description logic ALC can serve as a semantic type system for an extension of the simply typed λcalculus to express computations in knowledge bases. This cALculus embodies a functional core language which provides static type checking of sem ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
This paper demonstrates how a constructive version of the description logic ALC can serve as a semantic type system for an extension of the simply typed λcalculus to express computations in knowledge bases. This cALculus embodies a functional core language which provides static type checking of semantic information processing of data whose structure is organised under a relational data model as used in description logics. The cALculus arises from a natural interpretation of the tableau rules for constructive ALC following the CurryHowardIsomorphism. 1
A Logical View of Effects
"... Despite their invaluable contribution to the programming language community, monads as a foundation for the study of effects have three problems: they make it difficult to combine effects; they enforce sequentialization of computations by the syntax; they prohibit effectfree evaluations from invoki ..."
Abstract
 Add to MetaCart
Despite their invaluable contribution to the programming language community, monads as a foundation for the study of effects have three problems: they make it difficult to combine effects; they enforce sequentialization of computations by the syntax; they prohibit effectfree evaluations from invoking e#ectful computations. Building on the judgmental formulation and the possible worlds interpretation of modal logic, we propose a logical analysis of effects based upon the view monads are not identified with effects. Our analysis leads to a language called # # which distinguishes between control e#ects and world e#ects, enforces sequentialization of computations only by the semantics, and logically explains the invocation of computations from evaluations. # # also serves as a unified framework for studying Haskell and ML, which have traditionally been studied separately.
A Modal Language for Effects
, 2004
"... Building on a judgmental formulation of lax logic, we propose a modal language which can be used as a framework for practical programming languages with e#ects. Its characteristic feature is a syntactic distinction between terms and expressions, where terms denote values and expressions denote compu ..."
Abstract
 Add to MetaCart
Building on a judgmental formulation of lax logic, we propose a modal language which can be used as a framework for practical programming languages with e#ects. Its characteristic feature is a syntactic distinction between terms and expressions, where terms denote values and expressions denote computations. We distinguish between control e#ects and world e#ects, and allow control e#ects only in terms and world e#ects only in expressions. Therefore the distinction between values and computations is made only with respect to world e#ects. We give an explanation of the type system and the operational semantics from a modal logic perspective. We also introduce a term construct similar to Haskell's runST construct and augment the type system to ensure its safety.
unknown title
"... The intuitionistic modal logic of necessity is based on the judgmental notion of categorical truth. In this paper we investigate the consequences of relativizing these concepts to explicitly specified contexts. We obtain contextual modal logic and its typetheoretic analogue. Contextual modal type t ..."
Abstract
 Add to MetaCart
The intuitionistic modal logic of necessity is based on the judgmental notion of categorical truth. In this paper we investigate the consequences of relativizing these concepts to explicitly specified contexts. We obtain contextual modal logic and its typetheoretic analogue. Contextual modal type theory provides an elegant, uniform foundation for understanding metavariables and explicit substitutions. We sketch some applications in functional programming and logical frameworks.
Programming languages for interactive computing
, 2007
"... Traditional programming languages are algorithmic: they are best suited to writing programs that acquire all their inputs before executing and only produce a result on termination. By contrast most applications are interactive: they maintain ongoing interactions with their environments. Modern syste ..."
Abstract
 Add to MetaCart
(Show Context)
Traditional programming languages are algorithmic: they are best suited to writing programs that acquire all their inputs before executing and only produce a result on termination. By contrast most applications are interactive: they maintain ongoing interactions with their environments. Modern systems address this incompatibility by manually extending the execution model of the host language to support interaction, usually by embedding an eventdriven state management scheme which executes fragments of imperative code in response to interactions, the job of each executed fragment being to restore the internal consistency of the computation. The downside of this approach to interaction is that it relies heavily on mutable stores and sideeffects and mixes application logic in with behaviour which is more properly the responsibility of an execution model. I describe a programming model called declarative interaction which supports interaction directly. The distinguishing feature of the model is its modal construal of state and interaction. 1 Declarative interaction Almost all software systems today are interactive, in that they maintain ongoing interactions with