Skip to main content

Tutorial on Subtype Marks

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4164))

Abstract

When developing safety critical applications, the programmer might want to be able to prove his or her code correct. The integration of a proof system and a programming language of industrial strength can be fairly useful in this respect, like in the case of, for instance, the B method [1], the Java Modelling Language [5] or the functional programming languages Erlang [3,7,9,24] and Clean [11,23,25]. This paper presents the concept of subtype marks, a concept that establishes still closer links between a programming language and a proof system by letting the programmer encode certain important properties of programs within the type system of the language. Subtype marks are introduced here as part of a simple functional language. This language can be regarded as a small subset of Clean.

Supported by the Hungarian National Science Research Grant (OTKA), Grant Nr. T037742.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Abrial, J.-R.: The B-Book. Cambridge University Press, Cambridge (1996)

    Book  MATH  Google Scholar 

  2. van Arkel, D.F.R.: Annotated Types. M.Sc. thesis, Rijksuniversiteit te Leiden, Vakgroep Informatica (1998)

    Google Scholar 

  3. Armstrong, J., Virding, R., Williams, M., Wikstrom, C.: Concurrent Programming in Erlang. Prentice Hall, Englewood Cliffs (1996)

    Google Scholar 

  4. Augustsson, L.: Cayenne—a language with dependent types. In: ACM International Conference on Functional Programming 1998. ACM Press, New York (1998)

    Google Scholar 

  5. Burdy, L., Cheon, Y., Cok, D., Ernst, M., Kiniry, J., Leavens, G.T., Rustan, K., Leino, M., Poll, E.: An overview of JML tools and applications. International Journal on Software Tools for Technology Transfer 7(3), 212–232 (2005)

    Article  Google Scholar 

  6. Clarke, D.G., Potter, J.M., Noble, J.: Ownership types for flexible alias protection. In: Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) (October 1998)

    Google Scholar 

  7. Erlang Verification Tool—Version 2.0 (01) of April 9, 2001 (August 2005), http://www.sics.se/fdt/vericode/evt.html

  8. Filman, R.E., Elrad, T., Clarke, S., Akşit, M.: Aspect-Oriented Software Development. Addison-Wesley, Reading (2005)

    Google Scholar 

  9. Fredlund, L-Å.: A Framework for Reasoning about Erlang Code. PhD. thesis, Royal Institute of Technology, Sweden (August 2001)

    Google Scholar 

  10. Hammond, K.: Hume. In: Proceedings of the Central-European Functional Programming School (CEFP), Budapest, Hungary (2005)

    Google Scholar 

  11. Home of Clean (August 2005), http://www.cs.ru.nl/~clean/

  12. Kesseler, M.H.G.: The Implementation of Functional Languages on Parallel machines with Distributed Memory. Ph.D.thesis, University of Nijmegen (1996)

    Google Scholar 

  13. Koopman, P.: Constrained data types. Technical Report 96-36., Computer Science, Leiden University, The Netherlands (1996)

    Google Scholar 

  14. Koopman, P.: Language Support to Enforce Constraints on Data Types. Technical Report 96-37, Computer Science, Leiden University, The Netherlands (1996)

    Google Scholar 

  15. Koopman, P.: Constrained data types. In Dagstuhl Seminar Report, No. 156 (1996)

    Google Scholar 

  16. Kozsik, T.: Altípusjeles típusok. PhD thesis (in Hungarian). Eötvös Loránd University, Budapest, Hungary (under preparation)

    Google Scholar 

  17. Kozsik, T.: The expressive power of inequalities. In: Proceedings of 5th Joint Conference on Mathematics and Computer Science (5th MaCS), Debrecen, Hungary (2004) (abstract)

    Google Scholar 

  18. Kozsik, T.: Reasoning with Sparkle: a case study. Technical Report, University Eötvös Loránd, Faculty of Informatics, Budapest, Hungary (2004)

    Google Scholar 

  19. Kozsik, T.: Subtyping with subtype marks. Technical Report 2003-P05, University Eötvös Loránd, Faculty of Informatics, Budapest, Hungary (2003)

    Google Scholar 

  20. Kozsik, T., van Arkel, D., Plasmeijer, R.: Subtyping with Strengthening Type Invariants. In: Mohnen, M., Koopman, P. (eds.) Proceedings of the 12th International Workshop on Implementation of Functional Languages, Aachener Informatic-Berichte, Aachen, Germany, September 2000, pp. 315–330 (2000)

    Google Scholar 

  21. McBride, C.: Epigram: practical programming with dependent types. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol. 3622, pp. 130–170. Springer, Heidelberg (in preparation) (2005), Available at: http://www.dur.ac.uk/CARG/epigram/epigram-afpnotes.pdf

    Chapter  Google Scholar 

  22. MODULA-2 (August 2005), http://www.modula2.org/

  23. de Mol, M., van Eekelen, M., Plasmeijer, R.: Theorem proving for Functional Programmers, Sparkle: A Functional Theorem Prover. In: Arts, T., Mohnen, M. (eds.) IFL 2002. LNCS, vol. 2312, p. 55. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  24. Open Source Erlang (August 2005), http://www.erlang.org/

  25. Plasmeijer, R., van Eekelen, M.: Functional Programming and Parallel Graph Rewriting. Addison-Wesley, Reading (1993)

    MATH  Google Scholar 

  26. The Ada 95 Reference Manual. Available at e.g.: http://lgl.epfl.ch/ada/

  27. The Hume Page (August 2005), http://www-fp.dcs.st-and.ac.uk/hume/

  28. Wirth, N.: Programming in Modula, vol. 2. Springer, Heidelberg (1983)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kozsik, T. (2006). Tutorial on Subtype Marks. In: Horváth, Z. (eds) Central European Functional Programming School. CEFP 2005. Lecture Notes in Computer Science, vol 4164. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11894100_7

Download citation

  • DOI: https://doi.org/10.1007/11894100_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-46843-1

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics