Skip to main content

Higher-Order Strictness Typing

  • Conference paper
Trends in Functional Programming (TFP 2012)

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

Included in the following conference series:

  • 806 Accesses

Abstract

We extend an existing first-order typing system for strictness analysis to the fully higher-order case. The resulting fully higher-order strictness typing system has an expressivity beyond that of traditional strictness analysis systems.

This extension is developed with the explicit aim to formally prove that the higher-order strictness typing is sound with respect to a natural operational semantics. A key aspect of our approach is that we introduce the proof assistant in an early stage, namely during development of the proof, and as such the language theoretic concepts are designed with the aid of the theorem prover.

The combination of reporting on a new result together with its formal proof, can be seen as a case study towards the achievement of the long term PoplMark Challenge. The proof framework developed for this case study can be used further in other typing systems case studies.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Walker, D.: Substructural type systems. In: Pierce, B.C. (ed.) Advanced Topics in Types and Programming Languages, pp. 3–44. MIT Press (2004)

    Google Scholar 

  2. Barendsen, E., Smetsers, S.: Uniqueness typing for functional languages with graph rewriting semantics. Mathematical Structures in Computer Science 6, 579–612 (1996)

    MathSciNet  MATH  Google Scholar 

  3. Turner, D.N., Wadler, P., Mossin, C.: Once upon a type. In: Proceedings of the Seventh International Conference on Functional Programming Languages and Computer Architecture, FPCA 1995, pp. 1–11. ACM, New York (1995)

    Chapter  Google Scholar 

  4. Volpano, D., Irvine, C., Smith, G.: A sound type system for secure flow analysis. J. Comput. Secur. 4, 167–187 (1996)

    Google Scholar 

  5. Shkaravska, O., van Eekelen, M.C.J.D., van Kesteren, R.: Polynomial size analysis of first-order shapely functions. Logical Methods in Computer Science 5(2) (2009)

    Google Scholar 

  6. Aydemir, B.E., Bohannon, A., Fairbairn, M., Foster, J.N., Babu, C. S., Sewell, P., Vytiniotis, D., Washburn, G., Weirich, S., Zdancewic, S.: Mechanized metatheory for the masses: The poplmark challenge. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 50–65. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  7. Barendsen, E., Smetsers, S.: Strictness analysis via resource typing. In: Reflections on Type Theory, Lambda Calculus, and the Mind, Nijmegen, Netherlands, pp. 29–40 (December 2007)

    Google Scholar 

  8. Smetsers, S.: The syntactic continuity property: A computer verified proof. In: Majkic, Z., Hsieh, S.-Y., Ma, J., El Emary, I.M.M., Husain, K.S. (eds.) International Conference on Theoretical and Mathematical Foundations of Computer Science, TMFCS 2010, pp. 135–142. ISRST (2010)

    Google Scholar 

  9. Davis, K., Wadler, P.: Backwards strictness analysis: Proved and improved. In: Proceedings of the 1989 Glasgow Workshop on Functional Programming, London, UK, pp. 12–30. Springer (1990)

    Google Scholar 

  10. Kamareddine, F.: Reviewing the classical and the de Bruijn notation for λ-calculus and pure type systems. Logic and Computation 11, 11–13 (2001)

    MathSciNet  Google Scholar 

  11. Coppo, M., Damiani, F., Giannini, P.: Strictness, totality, and non-standard-type inference. Theor. Comput. Sci. 272(1-2), 69–112 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  12. Jensen, T.: Abstract interpretation in logical form. PhD thesis, Datalogisk Institut, Københavns Universitet (1992)

    Google Scholar 

  13. Benton, P.: Strictness analysis of lazy functional programs. PhD thesis, Computer Laboratory, University of Cambridge (1993)

    Google Scholar 

  14. Hankin, C., Métayer, D.L.: Deriving algorithms from type inference systems: Application to strictness analysis. In: POPL, pp. 202–212 (1994)

    Google Scholar 

  15. Holdermans, S., Hage, J.: Making “stricterness” more relevant. In: Proceedings of the 2010 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2010, pp. 121–130. ACM, New York (2010)

    Chapter  Google Scholar 

  16. Jones, S.L.P., Hall, C., Hammond, K., Cordy, J., Kevin, H., Partain, W., Wadler, P.: The glasgow haskell compiler: a technical overview (1992)

    Google Scholar 

  17. Mycroft, A.: Abstract interpretation and optimising transformations for applicative programs. PhD thesis, University of Edinburgh (1981)

    Google Scholar 

  18. Burn, G., Hankin, C., Abramsky, S.: The theory of strictness analysis for higher order functions. In: Ganzinger, H., Jones, N.D. (eds.) Programs as Data Objects. LNCS, vol. 217, pp. 42–62. Springer, Heidelberg (1986)

    Chapter  Google Scholar 

  19. Wadler, P.: Strictness analysis over non-flat domains. In: Abstract Interpretation of Declarative Languages. Ellis Horwood (1987)

    Google Scholar 

  20. Nöcker, E.: Strictness analysis using abstract reduction. In: Proc. of Conference on Functional Programming Languages and Computer Architecture, FPCA 1993, Kopenhagen, pp. 255–266. ACM Press (1993)

    Google Scholar 

  21. Clark, D., Hankin, C., Hunt, S.: Safety of strictness analysis via term graph rewriting. In: SAS 2000. LNCS, vol. 1824, pp. 95–114. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  22. Leung, A., Mishra, P.: Reasoning about simple and exhaustive demand in higher-order lazy languages. In: Hughes, J. (ed.) FPCA 1991. LNCS, vol. 523, pp. 328–351. Springer, Heidelberg (1991)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Smetsers, S., van Eekelen, M. (2013). Higher-Order Strictness Typing. In: Loidl, HW., Peña, R. (eds) Trends in Functional Programming. TFP 2012. Lecture Notes in Computer Science, vol 7829. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40447-4_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-40447-4_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-40446-7

  • Online ISBN: 978-3-642-40447-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics