Results 11 - 20
of
20
Classical linear logic of implications
- In Proc. Computer Science Logic (CSL'02), Springer Lecture Notes in Comp. Sci. 2471
, 2002
"... Abstract. We give a simple term calculus for the multiplicative exponential fragment of Classical Linear Logic, by extending Barber and Plotkin’s system for the intuitionistic case. The calculus has the nonlinear andlinear implications as the basic constructs, andthis design choice allows a technica ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
Abstract. We give a simple term calculus for the multiplicative exponential fragment of Classical Linear Logic, by extending Barber and Plotkin’s system for the intuitionistic case. The calculus has the nonlinear andlinear implications as the basic constructs, andthis design choice allows a technically managable axiomatization without commuting conversions. Despite this simplicity, the calculus is shown to be sound andcomplete for category-theoretic models given by ∗-autonomous categories with linear exponential comonads. 1
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 6 (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 continuation-passing in call-by-name
- 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 call-by-name 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 call-by-name 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 call-by-name λµ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 call-by-name continuation-passing 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.
Linear Continuation-Passing
- 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
- In ESOP'2000, volume 1782. LNCS
, 2000
"... We introduce graph reduction technology that implements functional languages with control, such as Scheme with call/cc, where continuations can be manipulated explicitly as values, and can be optimally reduced in the sense of Lévy. The technology is founded on proofnets for multiplicative-exponentia ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
We introduce graph reduction technology that implements functional languages with control, such as Scheme with call/cc, where continuations can be manipulated explicitly as values, and can be optimally reduced in the sense of Lévy. The technology is founded on proofnets for multiplicative-exponential linear logic, extending the techniques originally proposed by Lamping, where we adapt the continuation-passing style transformation to yield a new understanding of sharable values. Confluence is maintained by returning multiple answers to a (shared) continuation. Proofnets provide a concurrent version of linear logic proofs, eliminating structurally irrelevant sequentialization, and ignoring asymmetric distinctions between inputs and outputs -- dually, expressions and continuations. While Lamping's graphs and their variants encode an embedding of intuitionistic logic into linear logic, our construction implicitly contains an embedding of classical logic into linear logic. We propose...
Acceptors as values: Functional programming in classical linear logic
, 1991
"... Girard’s linear logic has been previously applied to functional programming for performing state-manipulation 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 1 (1 self)
- Add to MetaCart
Girard’s linear logic has been previously applied to functional programming for performing state-manipulation 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 Church-Rosser properties.
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 first-class 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 first-class objects, have the benefits of elegance, expressiveness and having clean semantics. Parallel computation and real-world 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 : : : : : : : : : : : ...
Proceedings of the Third ACM SIGPLAN Workshop on Continuations (CW'01)
, 2001
"... Local CPS conversion is a compiler transformation for improving the code generated for nested loops by a direct-style compiler. The transformation consists of a combination of CPS conversion and light-weight closure conversion, which allows the compiler to merge the environments of nested recursive ..."
Abstract
- Add to MetaCart
Local CPS conversion is a compiler transformation for improving the code generated for nested loops by a direct-style compiler. The transformation consists of a combination of CPS conversion and light-weight closure conversion, which allows the compiler to merge the environments of nested recursive functions. This merging, in turn, allows the backend to use a single machine-level procedure to implement the nested loops. Preliminary experiments with the Moby compiler show the potential for significant reductions in loop overhead as a result of Local CPS conversion. 1 Introduction Most compilers for functional languages use a -calculus based intermediate representation (IR) for their optimization phases. The - calculus is a good match for this purpose because, on the one hand, it models surface-language features like higher-order functions and lexical scoping, while, on the other hand, it can be transformed into a form that is quite close to the machine model. To make analysis and opt...
Towards a Classical Linear λ-calculus
- PROC. OF THE TOKYO CONFERENCE ON LINEAR LOGIC
, 1996
"... This paper considers a typed -calculus for classical linear logic. I shall give an explanation of a multiple-conclusion 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 formu ..."
Abstract
- Add to MetaCart
This paper considers a typed -calculus for classical linear logic. I shall give an explanation of a multiple-conclusion 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. I shall also demonstrate a somewhat hidden connexion with the continuation-passing paradigm which gives a new computational interpretation of Parigot's techniques and possibly a new style of continuation programming.

