Skip to main content

Minimum information code in a pure functional language with data types

  • Conference paper
  • First Online:

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

Abstract

In this paper we study programs written in a purely functional language with Data Types. We introduce a class of redundant code, the minimum information code, consisting either of “dead” code (code we may avoid evaluating), or of code whose “useful part” is constant. Both kinds of code may be removed, speeding-up the evaluation in this way: we introduce an algorithm for doing it. We prove the correctness of the method and we characterize the code we remove.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. Barendregt, The Lambda Calculus its Syntax and Semantics, Studies in Logic and the Foundation of Mathematics, North-Holland, 1984

    Google Scholar 

  2. P. N. Benton, Strictness Analysis of Lazy Functional Programs, Ph. D. Thesis, University of Cambridge, Pembroke College, 1992, Cambridge.

    Google Scholar 

  3. S. Berardi, Extensional Equality for Simply Typed λ-calculi, Technical Report, Turin University, 1993 (available via ftp at ftp.di.unito.it).

    Google Scholar 

  4. S. Berardi, Pruning Simply Typed λ-terms, to appear in Journal of Logic and Computation.

    Google Scholar 

  5. S. Berardi, L. Boerio, Using Subtyping in Program Optimization, Proceedings of TLCA '95, Eds, M. Dezani and G. Plotkin, Edinburgh, April 1995, LNCS 902, pp. 63–77, Springer-Verlag.

    Google Scholar 

  6. S. Berardi, L. Boerio, Removing Redundant Code in a Pure Functional Language with Data Types, Technical Report, Turin University, 1996 (available via ftp at ftp.di.unito.it).

    Google Scholar 

  7. L. Boerio, Extending Pruning Techniques to Polymorphic Second Order λ-Calculus, Proceedings of ESOP '94, Edinburgh, April 1994, LNCS 788, D. Sannella (ed.), Springer-Verlag, pp. 120–134.

    Google Scholar 

  8. L. Boerio, Optimizing Programs Extracted from Proofs, Ph. D. Thesis in Computer Science, University of Turin, February 1995, Turin (available via ftp at ftp.di.unito.it).

    Google Scholar 

  9. J. Y. Girard, Interpretation Fonctionelle et Elimination des Coupures dans l'Aritmetique d'Ordre Superieur, Ph. D. Thesis, Université Paris VII, 1971, Paris.

    Google Scholar 

  10. M. J. C. Gordon, R. Milner, C. P. Wadsworth, Edinburgh LCF, LNCS 78, Springer-Verlag, 1979.

    Google Scholar 

  11. L.S. Hunt, D. Sands, Binding Time Analysis: A New PERspective, Proceedings of the ACM Symposium on Partial Evaluation and Semantics-based Program Manipulation, 1991.

    Google Scholar 

  12. J. C. Mitchell, Type Systems for Programming Languages, In: J. van Leeuwen ed., Handbook of Theoretical Computer Science, Elsevier Science Publ., 1990, 366–458.

    Google Scholar 

  13. C. Paulin-Mohring, Extracting F ω's, Programs from Proofs in the Calculus of Constructions, In: Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas, Association for Computing Machinery publisher, 11–13 January 1989, pp. 89–104.

    Google Scholar 

  14. J. C. Reynolds, Towards a Theory of Type Structure, in Colloque sur la Programmation, LNCS 19, Springer-Verlag, 1974.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Philippe de Groote J. Roger Hindley

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Berardi, S., Boerio, L. (1997). Minimum information code in a pure functional language with data types. In: de Groote, P., Roger Hindley, J. (eds) Typed Lambda Calculi and Applications. TLCA 1997. Lecture Notes in Computer Science, vol 1210. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62688-3_27

Download citation

  • DOI: https://doi.org/10.1007/3-540-62688-3_27

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-62688-6

  • Online ISBN: 978-3-540-68438-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics