Abstract
Linearity is a multi-faceted and ubiquitous notion in the analysis and the development of programming language concepts. We study linearity in a denotational perspective by picking out programs that correspond to linear functions between coherence spaces.
We introduce a language, named SlPCF*, that increases the higher-order expressivity of a linear core of PCF by means of new operators related to exception handling and parallel evaluation. SlPCF* allows us to program all the finite elements of the model and, consequently, it entails a full abstraction result that makes the reasoning on the equivalence between programs simpler.
Denotational linearity provides also crucial information for the operational evaluation of programs. We formalize two evaluation machineries for the language. The first one is an abstract and concise operational semantics designed with the aim of explaining the new operators, and is based on an infinite-branching search of the evaluation space. The second one is more concrete and it prunes such a space, by exploiting the linear assumptions. This can also be regarded as a base for an implementation.
Supplemental Material
- S. Abramsky and G. McCusker. Linearity, sharing and state: a fully abstract game semantics for idealized algol with active expressions. ENTCS, 3, 1996.Google Scholar
- S. Abramsky, P. Malacaria, and R. Jagadeesan. Full abstraction for PCF. I & C, 163 (2): 409--470, 2000. Google Scholar
Digital Library
- S. Alves, M. Fernández, M. Florido, and I. Mackie. The power of linear functions. In LNCS 4207, pages 119--134. 2006. Google Scholar
Digital Library
- S. Alves, M. Fernández, M. Florido, and I. Mackie. Linear recursive functions. In LNCS 4600, pages 182--195. 2007. Google Scholar
Digital Library
- S. Alves, M. Fernández, M. Florido, and I. Mackie. Gödel's system t revisited. TCS, 411 (11--13): 1484--1500, 2010. Google Scholar
Digital Library
- R. Amadio and P. L. Curien. Domains and Lambda-Calculi Cambridge University Press, 1998. Google Scholar
Digital Library
- G. Berry. Stable models of typed λ-calculi. In LNCS 62, pages 72--89. 1978. Google Scholar
Digital Library
- G. Berry. Modèles completement adequats et stable du lambda-calcul typé. PhD thesis, Université de Paris VII, France, 1979.Google Scholar
- G. Berry and P. L. Curien. Sequential algorithms on concrete data structures. TCS, 20: 265--321, 1982.Google Scholar
Cross Ref
- G. M. Bierman. Program equivalence in a linear functional language. JFP, 10 (2): 167--190, 2000. Google Scholar
Digital Library
- G. M. Bierman, A. M. Pitts, and C. V. Russo. Operational properties of lily, a polymorphic linear lambda calculus with recursion. ENTCS, 41 (3), 2000.Google Scholar
- A. Bucciarelli and T. Ehrhard. Sequentiality and strong stability. In Proc. LICS'91, pages 138--145, 1991.Google Scholar
Cross Ref
- A. Bucciarelli and T. Ehrhard. A theory of sequentiality. TCS, 113 (2): 273--291, 7 June 1993. Google Scholar
Digital Library
- A. Bucciarelli, A. Carraro, T. Ehrhard, and A. Salibra. On linear information systems. In EPTCS 22, pages 38--48, 2010.Google Scholar
Cross Ref
- P. L. Curien. Definability and full abstraction. ENTCS, 172: 301--310, 2007. Google Scholar
Digital Library
- T. Ehrhard and L. Regnier. Differential interaction nets. TCS, 364 (2): 166--195, 2006. Google Scholar
Digital Library
- M. Gaboardi and L. Paolini. Syntactical, operational and denotational linearity. In Workshop LOGIC. 2007.Google Scholar
- M. Gaboardi and M. Piccolo. Categorical models for a semantically linear λ-calculus. In EPTCS 22, pages 1--13, 2010.Google Scholar
Cross Ref
- J. Y. Girard. Linear logic. TCS, 50: 1--102, 1987. Google Scholar
Digital Library
- J. Y. Girard, Y. Lafont, and P. Taylor. Proofs and Types. Cambridge University Press, 1989. Google Scholar
Digital Library
- J. R. Hindley. BCK-combinators and linear λ-terms have types. TCS, 64: 97--105, 1989. Google Scholar
Digital Library
- M. Huth. Linear domains and linear maps. In LNCS 802, pages 438--453. 1993. Google Scholar
Digital Library
- J. M. E. Hyland and L. C.-H. Ong. On full abstraction for PCF: I, II, and III. I & C, 163 (2): 285--408, 2000. Google Scholar
Digital Library
- J. W. Klop. New fix point combinators from old. In Reflections on Type Theory. Radboud University Nijmegen, 2007.Google Scholar
- J. R. Longley. Notions of computability at higher types I. In Lecture Notes in Logic, pages 32--142. 2000.Google Scholar
- J. R. Longley. The sequentially realizable functionals. APAL, 117: 1--93, 2002.Google Scholar
- D. Normann. Computing with functionals - computability theory or computer science? Bulletin of Symbolic Logic, 12 (1): 43--59, 2006.Google Scholar
Cross Ref
- C.-H. Luke Ong. Correspondence between operational and denotational semantics: the full abstraction for PCF. In Handbook of Logic in Computer Science pages 269--356. Oxford University Press, 1995. Google Scholar
Digital Library
- L. Paolini. A stable programming language. I & C, 204 (3): 339--375, 2006. Google Scholar
Digital Library
- L. Paolini and M. Piccolo. Semantically linear programming languages. In PPDP'08, pages 97--107. ACM, 2008. Google Scholar
Digital Library
- L. Paolini and M. Piccolo. A process-model for linear programs. In LNCS 5497, pages 289--305. 2009. Google Scholar
Digital Library
- M. Piccolo. Linearity and Beyond in Denotational Semantics. PhD thesis, Universitá di Torino/Université de Paris VII, 2009.Google Scholar
- G. D. Plotkin. LCF considerd as a programming language. TCS, 5: 225--255, 1977.Google Scholar
Cross Ref
- D. Walker. Advanced Topics in Types and Programming Languages, chapter Substructural Type Systems. The MIT Press, 2005.Google Scholar
Index Terms
Linearity and PCF: a semantic insight!
Recommendations
Linearity and PCF: a semantic insight!
ICFP '11: Proceedings of the 16th ACM SIGPLAN international conference on Functional programmingLinearity is a multi-faceted and ubiquitous notion in the analysis and the development of programming language concepts. We study linearity in a denotational perspective by picking out programs that correspond to linear functions between coherence ...
Monadic concurrent linear logic programming
PPDP '05: Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programmingLolli is a logic programming language based on the asynchronous propositions of intuitionistic linear logic. It uses a backward chaining, backtracking operational semantics. In this paper we extend Lolli with the remaining connectives of intuitionistic ...
Call-by-push-value in Coq: operational, equational, and denotational theory
CPP 2019: Proceedings of the 8th ACM SIGPLAN International Conference on Certified Programs and ProofsCall-by-push-value (CBPV) is an idealised calculus for functional and imperative programming, introduced as a subsuming paradigm for both call-by-value (CBV) and call-by-name (CBN). We formalise weak and strong operational semantics for (effect-free) ...







Comments