Skip to main content

Lightweight parametric polymorphism for Oberon

  • Conference paper
  • First Online:
Modular Programming Languages (JMLC 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1204))

Included in the following conference series:

Abstract

Strongly typed polymorphism is necessary for expressing safe reusable code. Two orthogonal forms of polymorphism exist: inclusion and parametric, the Oberon language only supports the former. We describe a simple extension to Oberon to support parametric polymorphism. The extension is in keeping with the Oberon language: it is simple and has an explicit cost. In the paper we motivate the need for parametric polymorphism and describe an implementation in terms of translating extended Oberon to standard Oberon.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. A V Aho, R Sethi, and J D Ullman. Compilers, principles, techniques, and tools. Addison-Wesley, 1986.

    Google Scholar 

  2. L Cardelli and P Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4):471–522, December 1985.

    Article  Google Scholar 

  3. M Day, R Gruber, B Liskov, and A Myers. Subtypes vs. Where Clauses: Constraining parametric polymorphism. In Proc, 10th Conf on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '95), pages 156–168, October 1995.

    Google Scholar 

  4. K J Gough and G M Mohay. Modula-2: A Second Course in Programming. Prentice Hall, 1988.

    Google Scholar 

  5. B Liskov, D Curtis, M Day, S Ghemawat, R Gruber, P Johnson, and A C Myers. Theta Reference Manual, preliminary version. Programming Methodology Group Memo 88, MIT Laboratory for Computer Science, Cambridge, MA, February 1995.

    Google Scholar 

  6. B Liskov and J Guttag. Abstraction and Specification in Program Development. MIT Press, 1986.

    Google Scholar 

  7. B Liskov, A Snyder, R Atkinson, and C Schaffert. Abstraction mechanisms in clu. Comm ACM, 20(8):564–576, August 1977.

    Google Scholar 

  8. B Meyer. Eiffel — The Language. Prentice Hall, 2 edition, 1992.

    Google Scholar 

  9. R Morrison, A Dearle, R C H Connor, and A L Brown. An ad-hoc approach to the implementation of polymorphism. ACM TOPLAS, 13(3):342–371, 1991.

    Google Scholar 

  10. H Mössenböck. Object-Oriented Programming in Oberon-2. Springer Verlag, 1993.

    Google Scholar 

  11. B C Pierce. Bounded quantification is undecidable. Information and Computation, 112(1):131–165, July 1994.

    Google Scholar 

  12. M Reiser and N Wirth. Programming in Oberon — Steps beyond Pascal and Modula. Addison-Wesley, 1992.

    Google Scholar 

  13. G Smith and D Volpano. Towards an ML-style Polymorphic Type System for C. In 1996 Eurpoean Symposium on Programming, Linköping, Sweden, April 1996.

    Google Scholar 

  14. D Stoutamire and S Omohundro. Sather 1.1. Technical report, International Computer Science Institute, Berkeley, CA, 1996.

    Google Scholar 

  15. C Szyperski, S Omohundro, and S Murer. Engineering a Programming Languager-the Type and Class System of Sather. In Proc, 1st Intl Conf on Programming Languages and System Architectures, number 782 in Springer LNCS, Zurich, Switzerland, March 1994.

    Google Scholar 

  16. R D Tennent. Principles of Programming Languages. Prentice Hall Int., 1981.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hanspeter Mössenböck

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Roe, P., Szyperski, C. (1997). Lightweight parametric polymorphism for Oberon. In: Mössenböck, H. (eds) Modular Programming Languages. JMLC 1997. Lecture Notes in Computer Science, vol 1204. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62599-2_36

Download citation

  • DOI: https://doi.org/10.1007/3-540-62599-2_36

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-62599-5

  • Online ISBN: 978-3-540-68328-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics