skip to main content
10.1145/317636.317799acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article
Free Access

Principals in programming languages: a syntactic proof technique

Published:01 September 1999Publication History

ABSTRACT

Programs are often structured around the idea that different pieces of code comprise distinct principals, each with a view of its environment. Typical examples include the modules of a large program, a host and its clients, or a collection of interactive agents.In this paper, we formalize this notion of principal in the programming language itself. The result is a language in which intuitive statements such as, "the client must call open to obtain a file handle," can be phrased and proven formally.We add principals to variants of the simply-typed λ-calculus and show how we can track the code corresponding to each principal throughout evaluation. This multiagent calculus yields syntactic proofs of some type abstraction properties that traditionally require semantic arguments.

References

  1. 1.Martin Abadi, Luca Cardelli, and Pierre-Louis Curien. Formal parametric polymorphism. In Principles of Programming Languages~ volume 20, pages 157-167, January 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.Godmar Back, Patrick Tullmann, Leigh Stoller, Wilson C. Hseih, and Jay Lepreau. Java operating systems: Design and implementation. Technical Report UUCS-98-015, University of Utah, August 1998.Google ScholarGoogle Scholar
  3. 3.Brian N. Bershad, Stefar~ Savage, Przemy'slaw Pardyak, gers, and Craig Chambers. Extensibility, safety and performance in the SPIN operating system, in P~)ceedings o.f the Fifteenth A CM Symposium on Operating Systems Principles, pages 267-283, Copper Mountain, CO, December 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.Karl Crary. A simple proof technique for certain parametricity results. In Proceedings of the 4th ArM SIGPLAN international Conference on Functional Programming, Paris, France, September 1999. This volume. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.Jean-Yves Girard, Y. Lafont, and P. Taylor. Proofs and Types. Cambridge University Press, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.Michael Godfrey, Tobias Mayr, Praveen Seshadri, and Thorsten yon Eicken. Secure and portable database extensibility. In Proceedings of the 1997 ACM-SIGMOD Con/erence on the Management of Data, pages 390-401, Seattle, WA, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.Chris Hawblitzel, Chi-Chao Chang, Grzegorz Czajkowski, Deyu Hu, and Thorston yon Eiken. Implementing multiple protection domains in /lava. In 1998 USENiX Annual Technical Conference, New Orleans, LA, June 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.Nevin Heintze and Jon G. Riecke. The SL~n calculus: programming with secrecy and integrity. In Conference Record o/ the Twenty-Fifth Annual A CM Symposium on Principles of Programming Langu~zges, pages 365-377. ACM Press, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Xavier Leroy and Fran(:ois Rouajx. Security properties of typed applets. In Principles of Programming Languages, January 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.Robin Milner, Muds Tofte, Robert Harper, and David Mac- Queen. The Definition of Standard ML (Revised). The MIT Press, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.J.C. Mitchell. On the equivalence of data representations. in V. Lifschitz, editor, Artificial Intelligence' and Mathematical Theory of Computation: Papers in Honor of John Mc- Carthy, pages 305-330. Academic Press, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.John C. Mitchell and Gordon D. Plotkin. Abstract types have existential type. A GM Transactions on Programming Languages and Systems, 10(3):470-502, July 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.Andrew C. Myers. JFlow: Practical mostly-static information flow control. In Proceedings of the 26th A CM Symposium on Principles of Programming Languages, pages 228- 241, San Antonio, TX, January 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.Flemming Nielson and Hanne Riis Nielson. Two-Level Functional Languages. Number 34 in Cambridge Tracts in Theoretica~ Computer Science. Cambridge University Press, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.John Peterson, Kevin Hammond, Lennart Augustsson, Brian Boutel, Warren Burton, Joseph Fasel~, Andrew D. Gordon, John Hughes, Paul Hudak, Thomas Johnsson, Mark Jones, Erik Meijer, Simon Peyton Jones, Alastair Reid, and Philip Wadler. Report on the programming language Haskell, version 1.4. http://www.haskell.org/report.Google ScholarGoogle Scholar
  16. 16.Benjamin C. Pierce and Deride Sangiorgi. Behavioral equivalence in the polymorphic pi-calculus. Technical Report MS- CIS-99-10, University of Pennsylvania, April 1999.Google ScholarGoogle Scholar
  17. 17.John Hamilton Reppy. Higher-order Concurrency. PhD thesis, Cornell University, Ithaca, NY, June 1992. TR 92-1852.Google ScholarGoogle Scholar
  18. 18.John C. Reynolds. Towards a theory of type structure. In Programming Symposium, volume 19 of Lecture Notes in Computer Science, pages 408-425. Springer-Verlag, Paris, France, April 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.John C. Reynolds. Types, abstraction, and parametric polymorphism. In R.E.A Mason, editor, Information Processing, pages 513-523. Elsevier Science Publishers B.V., 1983.Google ScholarGoogle Scholar
  20. 20.C. Strachey. Fundamental concepts in programming languages. Unpublished Lecture Notes, Summer School in Computer Programming, August 1967.Google ScholarGoogle Scholar
  21. 21.Dennis Volpano and Geoffrey Smith. A type-based approach to program security. In Proceedings of TAPSOFT '97, Colloquium on Formal Approaches to Software Engineering, Lille, France, April 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.Dan S. Wallach and Edward W. Felten. Understanding Java stack inspection. In Proceedings oj' 1998 IEEE Symposium on Security and Privacy, Oakland, CA, May 1998.Google ScholarGoogle Scholar
  23. 23.Dan Seth Wallach. A New Approach to Mobile Code Security. PhD thesis, Princeton University, 1999.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.Andrew K. Wright and Mattias Felleisen. A syntactic approach to type soundness. Information and Computation, 115(1):38-94, 1994. Preliminary version in Rice TR 91-160. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.Steve Zdancewic and Dan Grossman. Syntax and semantics for multiple agents and abstract types. Technical Report 99-1752, Cornell University, March 1999.Google ScholarGoogle Scholar

Index Terms

  1. Principals in programming languages: a syntactic proof technique

      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 Conferences
        ICFP '99: Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
        September 1999
        288 pages
        ISBN:1581131119
        DOI:10.1145/317636
        • Chairmen:
        • Didier Rémy,
        • Peter Lee

        Copyright © 1999 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 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: 1 September 1999

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • Article

        Acceptance Rates

        ICFP '99 Paper Acceptance Rate25of81submissions,31%Overall Acceptance Rate333of1,064submissions,31%

        Upcoming Conference

        ICFP '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader