skip to main content
10.1145/3611096.3611103acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
research-article

Formalizing ϕ-Calculus: A Purely Object-Oriented Calculus of Decorated Objects

Published:16 October 2023Publication History

ABSTRACT

Many calculi exist for modeling various features of object-oriented languages. Many of them are based on λ -calculus and focus either on statically typed class-based languages or dynamic prototype-based languages. We formalize the untyped calculus of decorated objects, informally presented by Bugayenko, which is defined in terms of objects and relies on decoration as a primary mechanism of object extension. It is not based on λ -calculus, yet with only four basic syntactic constructions is just as complete (in particular, it is Turing complete and possesses the Church-Rosser property). We also provide a sound translation to Wand’s λ -calculus with records and concatenation, and discuss the key differences of these calculi.

References

  1. Martin Abadi. 1994. Baby Modula-3 and a theory of objects. J. Funct. Program. 4, 2 (1994), 249–283. https://doi.org/10.1017/S0956796800001052Google ScholarGoogle ScholarCross RefCross Ref
  2. Martín Abadi and Luca Cardelli. 1996. A Theory of Primitive Objects: Untyped and First-Order Systems. Inf. Comput. 125, 2 (1996), 78–102. https://doi.org/10.1006/inco.1996.0024Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Eric Allen, Joseph J. Hallett, Victor Luchangco, Sukyoung Ryu, and Guy L. Steele. 2007. Modular Multiple Dispatch with Multiple Inheritance. In Proceedings of the 2007 ACM Symposium on Applied Computing (Seoul, Korea) (SAC ’07). Association for Computing Machinery, New York, NY, USA, 1117–1121. https://doi.org/10.1145/1244002.1244245Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Eric Allen, Justin Hilburn, Scott Kilpatrick, Victor Luchangco, Sukyoung Ryu, David Chase, and Guy Steele. 2011. Type Checking Modular Multiple Dispatch with Parametric Polymorphism and Multiple Inheritance. SIGPLAN Not. 46, 10 (Oct. 2011), 973–992. https://doi.org/10.1145/2076021.2048140Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Henk Barendregt and Erik Barendsen. 1984. Introduction to lambda calculus. Nieuw archief voor wisenkunde 4 (Jan. 1984), 337–372.Google ScholarGoogle Scholar
  6. Yegor Bugayenko. 2022. EOLANG and φ -calculus. arxiv:2111.13384 [cs.PL]Google ScholarGoogle Scholar
  7. Yegor Bugayenko. 2022. Reducing Programs to Objects. arxiv:2112.11988 [cs.PL]Google ScholarGoogle Scholar
  8. Luca Cardelli. 1994. Extensible Records in a Pure Calculus of Subtyping. MIT Press, Cambridge, MA, USA, 373–425.Google ScholarGoogle Scholar
  9. Luca Cardelli. 1995. A Language with Distributed Scope. In Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (San Francisco, California, USA) (POPL ’95). Association for Computing Machinery, New York, NY, USA, 286–297. https://doi.org/10.1145/199448.199516Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Giuseppe Castagna, Giorgio Ghelli, and Giuseppe Longo. 1992. A Calculus for Overloaded Functions with Subtyping. In Proceedings of the 1992 ACM Conference on LISP and Functional Programming (San Francisco, California, USA) (LFP ’92). Association for Computing Machinery, New York, NY, USA, 182–192. https://doi.org/10.1145/141471.141537Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Elias Castegren and Tobias Wrigstad. 2019. OOlong: A Concurrent Object Calculus for Extensibility and Reuse. SIGAPP Appl. Comput. Rev. 18, 4 (Jan. 2019), 47–60. https://doi.org/10.1145/3307624.3307629Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Alberto Ciaffaglione, Pietro Di Gianantonio, Furio Honsell, and Luigi Liquori. 2021. A prototype-based approach to object evolution. J. Object Technol. 20, 2 (2021), 1–24. https://doi.org/10.5381/jot.2021.20.2.a4Google ScholarGoogle ScholarCross RefCross Ref
  13. Roger Duke, Gordon Rose, and Graeme Smith. 1995. Object-Z: A specification language advocated for the description of standards. Comput. Stand. Interfaces. 17, 5 (1995), 511–533. https://doi.org/10.1016/0920-5489(95)00024-OGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  14. Eugene Durr and Jan Van Katwijk. 1992. VDM++, a formal specification language for object-oriented designs. In CompEuro 1992 Proceedings Computer Systems and Software Engineering. IEEE Comput. Soc. Press, The Hague, Netherlands, 214–219. https://doi.org/10.1109/CMPEUR.1992.218511Google ScholarGoogle ScholarCross RefCross Ref
  15. Kathleen Fisher, Furio Honsell, and John C. Mitchell. 1994. A Lambda Calculus of Objects and Method Specialization. Nordic J. of Computing 1, 1 (Mar. 1994), 3–37.Google ScholarGoogle Scholar
  16. Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Jean-Yves Girard, Paul Taylor, and Yves Lafont. 1989. Proofs and Types. Cambridge University Press, USA.Google ScholarGoogle Scholar
  18. Atsushi Igarashi, Benjamin C. Pierce, and Philip Wadler. 2001. Featherweight Java: A Minimal Core Calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23, 3 (May 2001), 396–450. https://doi.org/10.1145/503502.503505Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Jean L. Krivine. 1993. Lambda-Calculus, Types and Models. Ellis Horwood, USA.Google ScholarGoogle Scholar
  20. Johan Östlund and Tobias Wrigstad. 2010. Welterweight Java. In Proceedings of the 48th International Conference on Objects, Models, Components, Patterns (Málaga, Spain) (TOOLS’10). Springer-Verlag, Berlin, Heidelberg, 97–116.Google ScholarGoogle Scholar
  21. Gyunghee Park, Jaemin Hong, Guy L. Steele Jr., and Sukyoung Ryu. 2019. Polymorphic Symmetric Multiple Dispatch with Variance. Proc. ACM Program. Lang. 3, POPL, Article 11 (Jan. 2019), 28 pages. https://doi.org/10.1145/3290324Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Benjamin C Pierce and David N Turner. 1994. Simple type-theoretic foundations for object-oriented programming. J. Funct. Program. 4, 2 (1994), 207–247.Google ScholarGoogle ScholarCross RefCross Ref
  23. Lee Salzman and Jonathan Aldrich. 2005. Prototypes with Multiple Dispatch: An Expressive and Dynamic Object Model. In Proceedings of the 19th European Conference on Object-Oriented Programming (Glasgow, UK) (ECOOP’05). Springer-Verlag, Berlin, Heidelberg, 312–336. https://doi.org/10.1007/11531142_14Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Masako Takahashi. 1995. Parallel Reductions in λ -Calculus. Inf. Comput. 118, 1 (1995), 120–127. https://doi.org/10.1006/inco.1995.1057Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. David Ungar and Randall B. Smith. 1987. Self: The Power of Simplicity. SIGPLAN Not. 22, 12 (Dec. 1987), 227–242. https://doi.org/10.1145/38807.38828Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Mitchell Wand. 1991. Type inference for record concatenation and multiple inheritance. Inf. Comput. 93, 1 (1991), 1–15. https://doi.org/10.1016/0890-5401(91)90050-CGoogle ScholarGoogle ScholarDigital LibraryDigital Library
  27. Yanlin Wang, Haoyuan Zhang, Bruno C. d. S. Oliveira, and Marco Servetto. 2018. FHJ: A Formal Model for Hierarchical Dispatching and Overriding. In 32nd European Conference on Object-Oriented Programming (ECOOP 2018)(Leibniz International Proceedings in Informatics (LIPIcs), Vol. 109), Todd Millstein (Ed.). Schloss Dagstuhl–Leibniz-Zentrum fuer Informatik, Dagstuhl, Germany, 20:1–20:30. https://doi.org/10.4230/LIPIcs.ECOOP.2018.20Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Formalizing ϕ-Calculus: A Purely Object-Oriented Calculus of Decorated Objects

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      FTfJP '22: Proceedings of the 24th ACM International Workshop on Formal Techniques for Java-like Programs
      June 2022
      41 pages
      ISBN:9798400707841
      DOI:10.1145/3611096

      Copyright © 2022 ACM

      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 the author(s) 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: 16 October 2023

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed limited

      Acceptance Rates

      Overall Acceptance Rate51of75submissions,68%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format