Miranda: a non-strict functional language with polymorphic types
Proc. of a conference on Functional programming languages and computer architecture
ACE: an automatic complexity evaluator
ACM Transactions on Programming Languages and Systems (TOPLAS)
Complexity analysis for a lazy higher-order language
Proceedings of the third European symposium on programming on ESOP '90
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
A composition approach to time analysis of first order lazy functional programs
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Strictness analysis: a new perspective based on type inference
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Automatic average-case analysis of algorithms
Theoretical Computer Science - Theme issue on the algebraic and computing treatment of noncommutative power series
A new technique for strictness analysis
TAPSOFT '91 Proceedings of the international joint conference on theory and practice of software development on Advances in distributed computing (ADC) and colloquium on combining paradigms for software development (CCPSD): Vol. 2
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Polymorphic time systems for estimating program complexity
ACM Letters on Programming Languages and Systems (LOPLAS)
Two-level functional languages
Two-level functional languages
Inductive definitions, semantics and abstract interpretations
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Termination of term rewriting: interpretation and type elimination
Journal of Symbolic Computation - Special issue on conditional term rewriting systems
The type and effect discipline
Information and Computation
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Definition of Standard ML
From CML to Process Algebras (Extended Abstract)
CONCUR '93 Proceedings of the 4th International Conference on Concurrency Theory
Time Analysis, Cost Equivalence and Program Refinement
Proceedings of the 11th Conference on Foundations of Software Technology and Theoretical Computer Science
Proving Total Correctness of Programs in Weak Second-Order Logic
Proceedings of the REX Workshop on Sematics: Foundations and Applications
Argument-Bounded Algorithms as a Basis for Automated Termination Proofs
Proceedings of the 9th International Conference on Automated Deduction
An ideal model for recursive polymorphic types
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Termination analysis and specialization-point insertion in offline partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Distributed call-tracking for security
Computer Languages, Systems and Structures
Hi-index | 0.00 |
In principle termination analysis is easy: find a well-founded ordering and prove that calls decrease with respect to the ordering. We show how to embed termination information into a polymorphic type system for an eager higher-order functional language allowing multiple-argument functions and algebraic data types. The well-founded orderings are defined by pattern matching against the definition of the algebraic data types.We prove that the analysis is semantically sound with respect to a big-step (or natural) operational semantics. We compare our approach based on operational semantics to one based on denotational semantics and we identify the need for extending the semantic universe with new constructs whose sole purpose is to facilitate the proof. For dealing with partial correctness it suffices to consider approximations that are less defined than the desired fixed points; for dealing with total correctness we introduce functions that are more defined than the fixed points.