Results 11  20
of
23
A Classical Linear λcalculus
, 1997
"... This paper proposes and studies a typed λcalculus for classical linear logic. I shall give an explanation of a multipleconclusion formulation for classical logic due to Parigot and compare it to more traditional treatments by Prawitz and others. I shall use Parigot's method to devise a natu ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
This paper proposes and studies a typed λcalculus for classical linear logic. I shall give an explanation of a multipleconclusion formulation for classical logic due to Parigot and compare it to more traditional treatments by Prawitz and others. I shall use Parigot's method to devise a natural deduction formulation of classical linear logic. This formulation is compared in detail to the sequent calculus formulation. In an appendix I shall also demonstrate a somewhat hidden connexion with the paradigm of control operators for functional languages which gives a new computational interpretation of Parigot's techniques.
Linear Logic, Comonads and Optimal Reductions
 Fundamentae Informaticae
, 1993
"... The paper discusses, in a categorical perspective, some recent works on optimal graph reduction techniques for the calculus. In particular, we relate the two "brackets" in [GAL92a] to the two operations associated with the comonad "!" of Linear Logic. The rewriting rules can be then understood as a ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
The paper discusses, in a categorical perspective, some recent works on optimal graph reduction techniques for the calculus. In particular, we relate the two "brackets" in [GAL92a] to the two operations associated with the comonad "!" of Linear Logic. The rewriting rules can be then understood as a "local implementation" of naturality laws, that is as the broadcasting of some information from the output to the inputs of a term, following its connected structure. 1 Introduction More than fifteen years ago, L'evy [Le78] proposed a theoretical notion of optimality for calculus normalization. Roughly speaking, a reduction technique is optimal if it is able to profit of all the sharing expressed in initial term, avoiding useless duplications. For a long time, no implementation was able to achieve L'evy's performance (see [Fie90] for a quick survey). People started already to doubt of the existence of optimal evaluators, when Lamping and Kathail independently found a solution [Lam90,Ka90]...
Semantics of linear continuationpassing in callbyname
 In Proc. Functional and Logic Programming, Springer Lecture Notes in Comput. Sci
, 2004
"... Abstract. We propose a semantic framework for modelling the linear usage of continuations in typed callbyname programming languages. On the semantic side, we introduce a construction for categories of linear continuations, which gives rise to cartesian closed categories with “linear classical disj ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
Abstract. We propose a semantic framework for modelling the linear usage of continuations in typed callbyname programming languages. On the semantic side, we introduce a construction for categories of linear continuations, which gives rise to cartesian closed categories with “linear classical disjunctions ” from models of intuitionistic linear logic with sums. On the syntactic side, we give a simply typed callbyname λµcalculus in which the use of names (continuation variables) is restricted to be linear. Its semantic interpretation into a category of linear continuations then amounts to the callbyname continuationpassing style (CPS) transformation into a linear lambda calculus with sum types. We show that our calculus is sound for this CPS semantics, hence for models given by the categories of linear continuations.
Caisson: A Hardware Description Language for Secure Information Flow
 IN PROCEEDINGS OF PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI 2011
, 2011
"... Information flow is an important security property that must be incorporated from the ground up, including at hardware design time, to provide a formal basis for a system’s root of trust. We incorporate insights and techniques from designing informationflow secure programming languages to provide a ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
Information flow is an important security property that must be incorporated from the ground up, including at hardware design time, to provide a formal basis for a system’s root of trust. We incorporate insights and techniques from designing informationflow secure programming languages to provide a new perspective on designing secure hardware. We describe a new hardware description language, Caisson, that combines domainspecific abstractions common to hardware design with insights from typebased techniques used in secure programming languages. The proper combination of these elements allows for an expressive, provablysecure HDL that operates at a familiar level of abstraction to the target audience of the language, hardware architects. We have implemented a compiler for Caisson that translates designs into Verilog and then synthesizes the designs using existing tools. As an example of Caisson’s usefulness we have addressed an open problem in secure hardware by creating the firstever provably informationflow secure processor with microarchitectural features including pipelining and cache. We synthesize the secure processor and empirically compare it in terms of chip area, power consumption, and clock frequency with both a standard (insecure) commercial processor and also a processor augmented at the gate level to dynamically track information flow. Our processor is competitive with the insecure processor and significantly better than dynamic tracking.
Linear ContinuationPassing
 in the 2001 ACM SIGPLAN Workshop on Continuations (CW'01
, 2002
"... Continuations can be used to explain a wide variety of control behaviours, including calling/returning (procedures), raising/handling (exceptions), labelled jumping (goto statements), process switching (coroutines), and backtracking. However, continuations are often manipulated in a highly stylised ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Continuations can be used to explain a wide variety of control behaviours, including calling/returning (procedures), raising/handling (exceptions), labelled jumping (goto statements), process switching (coroutines), and backtracking. However, continuations are often manipulated in a highly stylised way, and we show that all of these, bar backtracking, in fact use their continuations linearly ; this is formalised by taking a target language for cps transforms that has both intuitionistic and linear function types.
Sharing Continuations: Proofnets for Languages With Explicit Control
"... sumes it. Yet evaluating expressions is very familiar, while evaluating continuations is considered esoteric, even though both are made ofthe same stuff. The incorporation ofcontinuations as firstclass citizens in programming languages was not welcomed like the Emancipation Proclamation, but instea ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
sumes it. Yet evaluating expressions is very familiar, while evaluating continuations is considered esoteric, even though both are made ofthe same stuff. The incorporation ofcontinuations as firstclass citizens in programming languages was not welcomed like the Emancipation Proclamation, but instead regarded warily as a kind ofwitchcraft, with implementation pragmatics that are illdefined and unclear. Ifexpressions and continuations are indeed dual, then so should be the technology oftheir implementation, and the flexibility with which we reason about them. Efficient evaluation ofone should reveal dual strategies for evaluating the other. In short, everything we know about expressions we ought to know about continuations. We take a significant step towards this equality by formulating a general version ofgraph reduction that implements the sharing and optimal incremental evaluation ofboth expressions and continuations, each evaluated using the same primitive operations. By founding our technology on generic tools from logic and programming language theory, specifically the CPS transform and its relation
Acceptors as values: Functional programming in classical linear logic
, 1991
"... Girard’s linear logic has been previously applied to functional programming for performing statemanipulation and controlling storage reuse. These applications only use intuitionistic linear logic, the subset of linear logic that embeds intuitionistic logic. Full linear logic (called classical linea ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Girard’s linear logic has been previously applied to functional programming for performing statemanipulation and controlling storage reuse. These applications only use intuitionistic linear logic, the subset of linear logic that embeds intuitionistic logic. Full linear logic (called classical linear logic) is much richer than this subset. In this paper, we consider the application of classical linear logic to functional programming. The negative types of linear logic are interpreted as denoting acceptors. An acceptor is an entity which takes an input of some type and returns no output. Acceptors generalize continuations and also single assignment variables, as found in data flow languages and logic programming languages. The parallel disjunction operator allows such acceptors to be used in a nontrivial fashion. Finally, the “why not ” operator of linear logic gives rise to nondeterministic values. We define a typed functional language based on the these ideas and demonstrate its use via examples. The language has a reduction semantics that generalizes typed lambda calculus, and satisfies strong normalization and ChurchRosser properties.
Equational Axiomatization of CallbyName Delimited Control
"... Control operators for delimited continuations are useful in various fields such as partial evaluation, CPS translation, and representation of monadic effects. While many works in the literature study them in callbyvalue, several recent works have shown callbyname delimited control operators are ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Control operators for delimited continuations are useful in various fields such as partial evaluation, CPS translation, and representation of monadic effects. While many works in the literature study them in callbyvalue, several recent works have shown callbyname delimited control operators are also worth studying. In this paper, we study semantic foundation of the callbyname variant of the delimitedcontrol operators “shift ” and “reset”. In particular, we give a set of directstyle equations as axioms for them, and prove that it is sound and complete with respect to the CPS translation by Biernacka and Biernacki. The key observations in our proof are (1) we need to use the linearity of certain variables in the CPS terms, and (2) we must distinguish continuation variables from ordinary variables in the source terms. We also show that our axiomatization holds for the typed calculus.
Representing Control in Parallel Applicative Programming
, 1994
"... This research is an attempt to reason about the control of parallel computation in the world of applicative programming languages. Applicative languages, in which computation is performed through function application and in which functions are treated as firstclass objects, have the benefits of ele ..."
Abstract
 Add to MetaCart
This research is an attempt to reason about the control of parallel computation in the world of applicative programming languages. Applicative languages, in which computation is performed through function application and in which functions are treated as firstclass objects, have the benefits of elegance, expressiveness and having clean semantics. Parallel computation and realworld concurrent activities are much harder to reason about than the sequential counterparts. Many parallel applicative languages have thus hidden most control details with their declarative programming styles, but they are not expressive enough to characterize many real world concurrent activities that can be easily explained with concepts such as message passing, pipelining and so on. Ease of programming should not come at the expense of expressiveness. Therefore, we design a parallel applicative language Pscheme such that programmers can express explicitly the control of parallel computation while maintaining ...
Type Theory for Programming Languages
, 1994
"... Types 83 9.1 Syntax : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 83 9.2 Typing Rules : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 83 9.3 Operational Semantics : : : : : : : : : : : : : : : : : : : : : : : : 84 iv 9.4 Impredicative Existentials : : : : : : : : : : : ..."
Abstract
 Add to MetaCart
Types 83 9.1 Syntax : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 83 9.2 Typing Rules : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 83 9.3 Operational Semantics : : : : : : : : : : : : : : : : : : : : : : : : 84 iv 9.4 Impredicative Existentials : : : : : : : : : : : : : : : : : : : : : : 84 9.5 Representation Independence : : : : : : : : : : : : : : : : : : : : 85 9.6 Projection Notation : : : : : : : : : : : : : : : : : : : : : : : : : 85 9.7 References : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 87 10 Modularity 88 10.1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 88 10.2 A Critique of Some Modularity Mechanisms : : : : : : : : : : : : 88 10.3 Basic Modules : : : : : : : : : : : : : : : : : : : : : : : : : : : : 93 10.4 Module Hierarchies : : : : : : : : : : : : : : : : : : : : : : : : : : 97 10.5 Parameterized Modules : : : : : : : : : : : : : : : : : : : : : : : 98 10.6 References : : : : : : : : : : : ...