Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Proving memory management invariants for a language based on linear logic

Published: 01 January 1992 Publication History

Abstract

We develop tools for the rigorous formulation and proof of properties of runtime management for a sample programming language based on a linear type system. Two semantics are diescribed, one at a level of observable results of computations and one describing linear connectives in terms of memory-management primitives. The two semantics are proven equivalent and the memory-management model is proven to satisfy fundamental correctness criteria for reference counts.

References

[1]
Samson Abramsky. Computational interpretations of linear logic_ Unpublished manuscript, Imperial College, University of London, October 1990.
[2]
Samson Abramsky. Intuitionistic linear logic considered as a programming language. Slides for a talk given at MFPS '90, Toronto, May 1990.
[3]
Henk P. Barendregt. The Lambda Calculus: Its Syntax and Semantics, volume 103 of Studies in Logic. North-Holland, 1981. Revised Edition, 1984.
[4]
Jacques Cohen. Garbage collection of linked data structures. Computing Surveys, pages 341-367, 1981.
[5]
Eric Crank and Matthias Felleisen. Parameterpassing and the lambda calculus. In Conference Record of the Eighteenth Annual A CM Symposium on Principles of Programming Languages, pages 233-244. ACM, 1991.
[6]
Alain Deutsch. On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications. In Conference Record of the Seventeenth Annual A CM Symposium on Principles of Programming Languages, pages 157- 168. ACM, 1990.
[7]
Jean-Yves Girard. Linear logic. Theoretical Computer Sci., 50:1-102, 1987.
[8]
Jean-Yves Girard, Yves Lafont, and Paul Taylor. Proofs and Types. Cambridge University Press, 1989.
[9]
Carl A. Gunter. Semantics of Programming Languages: Structures and Techniques. To be published by the MIT Press, 1992.
[10]
Juan C. Guzman and Paul Hudak. Singlethreaded polymorphic lambda calculus. In Proceedings, Fifth Annual IEEE Symposium on Logic in Computer Science, pages 333-343, 1990.
[11]
Peter Henderson. Functional Programming: Application and Implementation. Prentice-Hall, 1980.
[12]
William A. Howard. The formulae-as-types notion of construction. In J.R. Hindley and J.P. Setdin, editors, To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pages 479-490. Academic Press, 1980.
[13]
Paul Hudak. A semantic model of reference counting and its abstraction. In Proceedings of the 1986 A CM Conference on Lisp and Functional Programming, pages 351-363. ACM, 1986.
[14]
Neil D. Jones and Steven S. Muchnick. A flexible approach to interproccdural data flow analysis and programs with recursive data structures. In Conference Record of the Ninth Annual A CM Symposium on Principles of Programming Languages, pages 66-74. ACM, 1982.
[15]
Yves Lafont. The linear abstract machine. Theoretical Computer Sci., 59:157-180, 1988.
[16]
Yves Lafont. Logiques, Categories ~4 Machines. PhD thesis, University of Paris VII, 1988.
[17]
Peter J. Landin. The mechanical evaluation of expressions. Computer Journal, 6, 1964.
[18]
Patrick Lincoln and john C. Mitchell. Intuitionistic linear logic propositions as types. Unpublished manuscript, March 1991.
[19]
Patrick Lincoln and John C. Mitchell. Operational aspects of linear lambda calculus. In Proceedings, Seventh Annual IEEE Symposium on Logic in Computer Science, 1992. To appear.
[20]
Robin Milner, Mads Torte, and Robert Harper. The Definition of Standard ML. MIT Press, 1990.
[21]
Hanne Riis Nielson and Flemming Nielson. Semantics with Applications: A Formal Introduction for Computer Science. To be published by John Wiley & Sons, next to final edition, April 1991.
[22]
Gordon D. Plotkin. Call-by-name, call-by-value and the A-calculus. Theoretical Computer Sci., 1:125-159, 1975.
[23]
Gordon D. Plotkin. LCF considered as a programming language. Theoretical Computer Sci., 5:223- 257, 1977.
[24]
Gordon D. Plotkin. A structural approach to operational semantics. Technical Report DAIMI FN- 19, Aarhus Univ., Computer Science Dept., Denmark, 1981.
[25]
S. Purushothaman and jill Seaman. An adequate operational semantics of sharing in lazy evaluation. Technical Report PSU-CS-91-18, Pennsylvania State University, 1991.
[26]
Philip Wadler. Is there a use for linear logic? In Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 255-273. ACM, 1991.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Lisp Pointers
ACM SIGPLAN Lisp Pointers  Volume V, Issue 1
Jan. 1992
357 pages
ISSN:1045-3563
DOI:10.1145/141478
Issue’s Table of Contents
  • cover image ACM Conferences
    LFP '92: Proceedings of the 1992 ACM conference on LISP and functional programming
    January 1992
    365 pages
    ISBN:0897914813
    DOI:10.1145/141471
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 January 1992
Published in SIGPLAN-LISPPOINTERS Volume V, Issue 1

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)39
  • Downloads (Last 6 weeks)13
Reflects downloads up to 13 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2008)Lilac: a functional programming language based on linear logicJournal of Functional Programming10.1017/S09567968000011314:04(395-433)Online publication date: 7-Nov-2008
  • (2004)Modal Proofs as Distributed ProgramsProgramming Languages and Systems10.1007/978-3-540-24725-8_16(219-233)Online publication date: 2004
  • (2002)A Study of Abramsky’s Linear Chemical Abstract MachineTyped Lambda Calculi and Applications10.1007/3-540-48959-2_18(243-257)Online publication date: 27-May-2002
  • (1995)“Use-once” variables and linear objectsACM SIGPLAN Notices10.1145/199818.19986030:1(45-52)Online publication date: 3-Jan-1995
  • (2008)Reference counting as a computational interpretation of linear logicJournal of Functional Programming10.1017/S09567968000016606:02(195-244)Online publication date: 7-Nov-2008
  • (2008)The ins and outs of Clean I/OJournal of Functional Programming10.1017/S09567968000012585:01(81-110)Online publication date: 7-Nov-2008
  • (2004)Modal Proofs as Distributed ProgramsProgramming Languages and Systems10.1007/978-3-540-24725-8_16(219-233)Online publication date: 2004
  • (2002)A Study of Abramsky’s Linear Chemical Abstract MachineTyped Lambda Calculi and Applications10.1007/3-540-48959-2_18(243-257)Online publication date: 27-May-2002
  • (1998)A functional representation of data structures with a holeProceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages10.1145/268946.268953(75-84)Online publication date: 21-Jan-1998
  • (1995)Abstract models of memory managementProceedings of the seventh international conference on Functional programming languages and computer architecture10.1145/224164.224182(66-77)Online publication date: 1-Oct-1995
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media