Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/232627.232652acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article
Free access

Enriching the lambda calculus with contexts: toward a theory of incremental program construction

Published: 15 June 1996 Publication History
  • Get Citation Alerts
  • Abstract

    A context in the λ-calculus is a term with some holes. Hole filling differs from β-substitution in that name capture is intended. This seemingly simple feature transcends static scope and lies at the heart of modular and object-oriented programming. Still, the name capture feature of hole filling is at odds with hygienic β-substitution. In this paper we conservatively extend the λ-calculus to incorporate the notion of contexts without jeopardizing the β-rule. We perceive contexts as source code and λ-terms as target code. Context filling is encoded as compilation operations and the enriched calculus is a theory of separate compilation and incremental program construction. Linking of separately-developed programs is done by coherent renaming of free variables.We apply our context-enriching schema to the λ-calculus extended with definitions and devise a calculus of first-class modules. We show that module linking can be modeled solely by the renaming of import and export variables. We add relinkable variable references to model virtual method references essential to object systems.The inclusion of contexts introduces parameters whose linking is based on names (symbols, identifiers, or keywords). We simulate in the context-enriched calculus other extensions of the λ-calculus with name-based programming notions such as Dami's λ-calculus with names, Aït-Kaci and Garrigue's label-selective λ-calculus, Lamping's transparent data parameters, and our quasi-static procedures.

    References

    [1]
    Hassan A~t-Kaci and Jacques Garrigue. Label-selective,k-calculus: Syntax and confluence. In Proc. of the 13th International Con/. on Foundations of Software Technologies and Theoretical Computer Science, pages 24- 40, Springer-Verlag, 1993.
    [2]
    H. P. Barendregt. The Lambda Calculus: Its Syntax and Semantics. Revised edition, North-Holland, 1984.
    [3]
    Klaus J. Berkling and Elfriede Fehr. A consistent extension of the lambda-calculus as a base for functional programming languages. Information and Control, 55:89- 101, 1982.
    [4]
    Luca Cardelli and John C. Mitchell. Operations on records. In {8}.
    [5]
    William Cook and Jens Palsberg. A denotational semantics of inheritance and its correctness. In Proc. o} the A CM Conf. on Objeci-Oriented Programming: Systems, Languages and Applications, pages 433-443, 1989.
    [6]
    N. G. de Bruijn. Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation. Indagationes Mathematicae, 34:381-392, 1972.
    [7]
    Laurent Dami. Software Composition: Towards an Integration of Functional and Object. Oriented Approaches. PhD thesis, University of Geneva, 1994.
    [8]
    Carl A. Gunter and John C. Mitchell. Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design. MIT Press, 1994.
    [9]
    Stanley Jefferson, Shinn-Der Lee, and Daniel P. Friedman. A syntactic theory of transparent paxameterization. In Proc. of the Third European Symp. on Programming, pages 211-226, Springer-Verlag, 1990.
    [10]
    Samuel N. Kamin. Inheritance in Smalltalk-80: A denotational definition. In Proc. of the Fifteenth A CM Syrup. on Principles of Programming Languages, pages 80-87, 1988.
    [11]
    John Lamping. A unified system of parameterization for programming languages. In Proc. of the A CM Conf. on Lisp and Functional Programming, pages 316-326, 1988.
    [12]
    Shinn-Der Lee and Daniel P. Friedman. Quasi-static scoping: Sharing variable bindings across multiple lexical scopes, in Proc. of the Twentieth A CM Syrup. on Principles of Programming Languages, pages 479-492, 1993.
    [13]
    John McCarthy. Towards a mathematical science of computation. In Proc. of IFIP Congress 63~ pages 21- 28. North-Holland, 1963.
    [14]
    Robin Milner, Mads Torte, and Robert Harper. The Definition of Standard ML. MIT Press, 1990.
    [15]
    James H. Morris. Lambda-Calculus Models of Programming Languages. PhD thesis, MIT, 1968.
    [16]
    Simon L. Peyton Jones. The implementation of Functional Programming Languages. Prentice Hall, 1987.
    [17]
    Gordon D. Ptotkin. Call-by-name, call-by-value and the A-calculus. Theoretical Computer Science, 1:125-159, 1975.
    [18]
    Gordon D. Plotkin. A structural approach to operational semantics. Technical Report DAIMI FN- 19, Computer Science Department, Aarhus University, 1981.
    [19]
    Joseph E. Stoy. Denotational Semantics: The Scott- Strachey Approach to Programming Language Theory. MIT Press, 1981.
    [20]
    Carolyn Talcott. A theory of binding structures and applications to rewriting. Theoretical Computer Science, 112:99-143, 1993.
    [21]
    Mitchcll Wand. Type inference for objects with instance variables and inheritance. In {8}.

    Cited By

    View all
    • (2017)Hazelnut: a bidirectionally typed structure editor calculusACM SIGPLAN Notices10.1145/3093333.300990052:1(86-99)Online publication date: 1-Jan-2017
    • (2017)Hazelnut: a bidirectionally typed structure editor calculusProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009900(86-99)Online publication date: 1-Jan-2017
    • (2009)Two-level Lambda-calculusElectronic Notes in Theoretical Computer Science (ENTCS)10.1016/j.entcs.2009.07.018246(107-129)Online publication date: 1-Aug-2009
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ICFP '96: Proceedings of the first ACM SIGPLAN international conference on Functional programming
    June 1996
    273 pages
    ISBN:0897917707
    DOI:10.1145/232627
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 15 June 1996

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    ICFP96
    Sponsor:
    ICFP96: International Conference on Functional Programming
    May 24 - 26, 1996
    Pennsylvania, Philadelphia, USA

    Acceptance Rates

    ICFP '96 Paper Acceptance Rate 25 of 83 submissions, 30%;
    Overall Acceptance Rate 333 of 1,064 submissions, 31%

    Upcoming Conference

    ICFP '24

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)46
    • Downloads (Last 6 weeks)3
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all

    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