Algorithms
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Introduction to algorithms
Type Classes with Functional Dependencies
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
Towards A Discipline of Dynamic Programming
Informatik bewegt: Informatik 2002 - 32. Jahrestagung der Gesellschaft für Informatik e.v. (GI)
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
A discipline of dynamic programming over sequence data
Science of Computer Programming - Methods of software design: Techniques and applications
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Challenges in the compilation of a domain specific language for dynamic programming
Proceedings of the 2006 ACM symposium on Applied computing
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Data parallel Haskell: a status report
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Stream fusion: from lists to streams to nothing at all
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Call-pattern specialisation for Haskell programs
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
Real World Haskell
Discriminatory power of RNA family models
Bioinformatics
Regular, shape-polymorphic, parallel arrays in Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Semantics and Ambiguity of Stochastic RNA Family Models
IEEE/ACM Transactions on Computational Biology and Bioinformatics (TCBB)
Bellman's GAP: a declarative language for dynamic programming
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
A folding algorithm for extended RNA secondary structures
Bioinformatics
The HERMIT in the stream: fusing stream fusion's concatMap
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Hi-index | 0.00 |
We present a framework of dynamic programming combinators that provides a high-level environment to describe the recursions typical of dynamic programming over sequence data in a style very similar to algebraic dynamic programming (ADP). Using a combination of type-level programming and stream fusion leads to a substantial increase in performance, without sacrificing much of the convenience and theoretical underpinnings of ADP. We draw examples from the field of computational biology, more specifically RNA secondary structure prediction, to demonstrate how to use these combinators and what differences exist between this library, ADP, and other approaches. The final version of the combinator library allows writing algorithms with performance close to hand-optimized C code.