skip to main content
10.1145/512644.512669acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

Representation independence and data abstraction

Published:01 January 1986Publication History

ABSTRACT

One purpose of type checking in programming languages is to guarantee a degree of "representation independence:" programs should not depend on the way stacks are represented, only on the behavior of stacks with respect to push and pop operations. In languages with abstract data type declarations, representation independence should hold for user-defined types as well as built-in types. We study the representation independence properties of a typed functional language (second-order lambda calculus) with polymorphic functions and abstract data type declarations in which data type implementations (packages) may be passed as function parameters and returned as results. The type checking rules of the language guarantee that two data type implementations P and Q are equivalence whenever there is a correspondence between the behavior of the operations of P and the behavior of the operations of Q.

References

  1. {Bruce and Meyer 84} Bruce, K. and Meyer, A., A Completeness Theorem for Second-Order Polymorphic Lambda Calculus. In Proc. Int. Symp. on Semantics of Data Types, Sophia-Antipolis (France), 1984, pages 131--144. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. {Bruce, Meyer and Mitchell 85} Bruce, K. B., Meyer, A. R. and Mitchell, J. C., The semantics of second-order lambda calculus to appearGoogle ScholarGoogle Scholar
  3. {Burstall and Lampson 84} Burstall, R. and Lampson, B., A Kernel Language for Abstract Data Types and Modules. In Proc. Int'l Symp. on Semantics of Data Types, 1984, pages 1--50. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. {Donahue 79} Donahue, J., On the semantics of data type. SIAM J. Computing 8 1979. pages 546--560Google ScholarGoogle Scholar
  5. {Friedman 75} Friedman, H., Equality Between Functionals. In R. Parikh (ed.), Logic Colloquium, pages 22--37. Springer-Verlag 1975.Google ScholarGoogle Scholar
  6. {Girard 71} Girard, J.-Y., Une extension de l'interpretation de Gödel à l'analyse, et son application à l'élimination des coupures dans l'analyse et la théorie des types. In Fenstad, J. E. (ed.), 2<sup>nd</sup> Scandinavian Logic Symp., pages 63--92. North-Holland 1971.Google ScholarGoogle Scholar
  7. {Gordon, et. al. 79} Gordon, M. J., R. Milner and C. P. Wadsworth, Edinburgh LCF. Lecture Notes in Computer Science, Vol. 78 Springer-Verlag 1979.Google ScholarGoogle Scholar
  8. {Haynes 84} Haynes, C. T., A Theory of Data Type Representation Independence. In Int. Symp. on Semantics of Data Types, Springer-Verlag, 1984, pages 157--176. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. {Liskov et. al. 81} Liskov, B. et. al., CLU Reference Manual. Lecture Notes in Computer Science, Vol. 114 Springer-Verlag 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. {MacQueen 85} MacQueen, D. B., Modules for Standard ML. Polymorphism 2, 2 1985. 35 pages. An earlier version appeared in Proc. 1984 ACM Symp. on Lisp and Functional Programming. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. {MacQueen 86} MacQueen, D. B., Using dependent types to express modular structure. In Proc. 13-th ACM Symp. on Principles of Programming Languages, 1986. To appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. {Martin-Löf 79} Martin-Löf, P., Constructive mathematics and computer programming. 1979. Paper presented at 6<sup>th</sup> International Congress for Logic, Methodology and Philosophy of Science, Preprint, Univ. of Stockholm, Dept. of Math. 1979Google ScholarGoogle Scholar
  13. {McCraken 79} McCracken, N., An Investigation of a Programming Language with a Polymorphic Type Structure. Syracuse Univ. 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. {Milner 85} Milner, R., The standard ML core language. Polymorphism 2, 2 1985. 28 pages. An earlier version appeared in Proc. 1984 ACM Symp. on Lisp and Functional Programming.Google ScholarGoogle Scholar
  15. {Mitchell 84c} Mitchell, J. C., Semantic models for second-order lambda calculus. In Proc. 25-th IEEE Symp. on Foundations of Computer Science, 1984, pages 289--299.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. {Mitchell and Plotkin 85} Mitchell, J. C. and Plotkin, G. D., Abstract types have existential types. In Proc. 12-th ACM Symp. on Principles of Programming Languages, January, 1985. pp. 37--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. {Mitchell and Meyer 85} Mitchell, J. C. and Meyer, A. R., Second-order logical relations. In Logics of Programs, June, 1985. pages 225--236. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. {Plotkin 80} Plotkin, G. D., Lambda definability in the full type hierarchy. In To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism, pages 363--373. Academic Press 1980.Google ScholarGoogle Scholar
  19. {Reynolds 74} Reynolds, J. C., Towards a Theory of Type Structure. In Paris Colloq. on Programming, Springer-Verlag, 1974, pages 408--425. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. {Reynolds 83} Reynolds, J. C., Types, Abstraction, and Parametric Polymorphism. In IFIP Congress, 1983.Google ScholarGoogle Scholar
  21. {Statman 82} Statman, R., Logical relations and the typed lambda calculus. (Manuscript.) To appear in Information and Control.Google ScholarGoogle Scholar
  22. {Tait 67} Tait, W. W., Intensional interpretation of functionals of finite type. J. Symbolic Logic 32 1967. pages 198--212Google ScholarGoogle Scholar
  1. Representation independence and data abstraction

    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
      POPL '86: Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
      January 1986
      326 pages
      ISBN:9781450373470
      DOI:10.1145/512644

      Copyright © 1986 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 January 1986

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate824of4,130submissions,20%

      Upcoming Conference

      POPL '25

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader