Abstract
We present a non-standard type assignment system and simplifications mappings for detecting and removing useless-code in simply typed functional programs with algebraic datatypes and recursive functions. We characterize two classes of useless-code: the dead-code, that is code that is never executed under the lazy-call-by-name evaluation, and the minimum-information-code, that is code that contributes to the computation only with a minimum amount of constant information.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
S. Berardi. Pruning Simply Typed Lambda Terms. Journal of Logic and Computation, 6(5):663–681, 1996.
S. Berardi and L. Boerio. Using Subtyping in Program Optimization. In TLCA’95, LNCS 902. Springer9Verlag, 1995.
S. Berardi and L. Boerio. Minimum Information Code in a Pure Functional Language with Data Types. In TLCA’97, LNCS 1210. Springer-Verlag, 1997. 83, 83, 84, 96, 96, 96, 96, 96, 97
S. K. Biswas. A Demand-Driven Set-Based Analysis. In POPL’97, pages 372–385. ACM, 1997.
L. Boerio. Optimizing Programs Extracted from Proofs. PhD thesis, Università di Torino, 1995.
M. Coppo, F. Damiani, and P. Giannini. Refinement Types for Program Analysis. In SAS’96, LNCS 1145, pages 143–158. Springer-Verlag, 1996.
F. Damiani. Non-standard type inference for functional programs. PhD thesis, Università di Torino, February 1998.
F. Damiani and F. Prost. Detecting and Removing Dead Code using Rank 2 Intersection. In TYPES’96, LNCS 1512. Springer-Verlag, 1998.
B. Barras et al. The Coq Proof Assistant Reference Manual Version 6.2. INRIA-Rocquencourt-CNRS-ENS Lyon, may 1998.
A. D. Gordon. Bisimilarity as a Theory of Functional Programs. Mini-Course. Technical Report NS-95-3 BRICS Notes Series, Computer Science Department of Aarhus University, 1995.
G. Kahn. Natural semantics. In K. Fuchi and M. Nivat, editors, Programming Of Future Generation Computer. Elsevier Sciences B.V. (North-Holland), 1988.
C. Paulin-Mohring. Extracting Fω’s Programs from Proofs in the Calculus of Constructions. In POPL’89. ACM, 1989.
A. M. Pitts. Operationally-based theories of program equivalence. In A. M. Pitts and P. Dybjer, editors, Semantics and Logics of Computation, pages 241–298. Cambridge University Press, 1997.
G. D. Plotkin. LCF considered as a programming language. Theoretical Computer Science, 5(3):223–255, 1977.
G. D. Plotkin. A structural approach to operational semantics. Technical Report DAIMI FN-19, Aarhus University, 1981.
Y. Takayama. Extraction of Redundancy-free Programs from Constructive Natural Deduction Proofs. Journal of Symbolic Computation, 12:29–69, 1991.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Damiani, F. (1999). Useless-Code Detection and Elimination for PCF with Algebraic Data Types. In: Girard, JY. (eds) Typed Lambda Calculi and Applications. TLCA 1999. Lecture Notes in Computer Science, vol 1581. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48959-2_8
Download citation
DOI: https://doi.org/10.1007/3-540-48959-2_8
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-65763-7
Online ISBN: 978-3-540-48959-7
eBook Packages: Springer Book Archive