Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Algebraic identities for program calculation
The Computer Journal - Special issue on Lazy functional programming
Two-level functional languages
Two-level functional languages
On the relation between functional and data parallel programming languages
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Powerlist: a structure for parallel recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
Isomorphisms of types: from &lgr;-calculus to information retrieval and language design
Isomorphisms of types: from &lgr;-calculus to information retrieval and language design
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-driven defunctionalization
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extracting and implementing list homomorphisms in parallel program development
Science of Computer Programming
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
From Transistors to Computer Architecture: Teaching Functional Circuit Specification in Hydra
FPLE '95 Proceedings of the First International Symposium on Functional Programming Languages in Education
Typed Intermediate Languages for Shape Analysis
TLCA '97 Proceedings of the Third International Conference on Typed Lambda Calculi and Applications
Parallel Programming Using Skeleton Functions
PARLE '93 Proceedings of the 5th International PARLE Conference on Parallel Architectures and Languages Europe
Tupling Functions with Multiple Recursion Parameters
WSA '93 Proceedings of the Third International Workshop on Static Analysis
SAS '00 Proceedings of the 7th International Symposium on Static Analysis
Symbolic Simulation of Microprocessor Models using TypeClasses in Haskell
Symbolic Simulation of Microprocessor Models using TypeClasses in Haskell
Transforming rapid prototypes to efficient parallel programs
Patterns and skeletons for parallel and distributed computing
Science of Computer Programming - Special issue on the first MetaOCaml workshop 2004
Polynomial size analysis of first-order functions
TLCA'07 Proceedings of the 8th international conference on Typed lambda calculi and applications
Hi-index | 0.00 |
We propose a calculus for the analysis of list lengths in functional programs. In contrast to common type-based approaches, it is based on the syntactical structure of the program. To our knowledge, no other approach provides such a detailed analysis of nested lists. The analysis of lists is preceded by a program transformation which makes sizes explicit as program values and eliminates the chain of cons operations. This permits alternative implementations of lists, e.g., by functions or arrays. The technique is being implemented in an experimental parallelizing compiler for the functional language HDC. We believe that analysis and parallelization work best if higher-order functions are used to compose the program from functional building blocks, so-called skeletons, instead of using unrestrained recursion. Skeletons, e.g., data-parallel combinators come with a theory of sizes and parallelization.