Theoretical Computer Science
Control-flow analysis of higher-order languages of taming lambda
Control-flow analysis of higher-order languages of taming lambda
Type inference with polymorphic recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementation of the typed call-by-value λ-calculus using a stack of regions
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
A type system equivalent to flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Foundations of programming languages
Foundations of programming languages
Linear-time subtransitive control flow analysis
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
From polyvariant flow information to intersection and union types
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polymorphic splitting: an effective polyvariant flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proofs about a folklore let-polymorphic type inference algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
Constraint systems for useless variable elimination
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Equality-based flow analysis versus recursive types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficiency of a Good But Not Linear Set Union Algorithm
Journal of the ACM (JACM)
Lambda-dropping: transforming recursive equations into programs with block structure
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
The Definition of Standard ML
Redundant Argument Filtering of Logic Programs
LOPSTR '96 Proceedings of the 6th International Workshop on Logic Programming Synthesis and Transformation
Refinement Types for Program Analysis
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Garbage Collection via Dynamic Type Inference - A Fomal Treatment
TIC '98 Proceedings of the Second International Workshop on Types in Compilation
Program Specialization via Program Slicing
Selected Papers from the Internaltional Seminar on Partial Evaluation
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
Control-Flow Analysis and Type Systems
SAS '95 Proceedings of the Second International Symposium on Static Analysis
On the Cubic Bottleneck in Subtyping and Flow Analysis
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
Strictification of circular programs
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Hi-index | 0.00 |
Useless-variable elimination is a transformation that eliminates variables whose values does not affect the result of a computation. We present a type-based method for useless-variable elimination and prove its correctness. The algorithm is a surprisingly simple extension of the usual type-reconstruction algorithm. Our method has several attractive features. First, it is simple, so that the proof of the correctness is clear and the method can be easily extended to deal with a polymorphic language. Second, it is efficient: for a simply-typed λ-calculus, it runs in time almost linear in the size of an input expression. Moreover, our transformation is optimal in a certain sense among those that preserve well-typedness, both for the simply-typed language and for an ML-style polymorphically-typed language.