Abstract
We have implemented a two-stage language, Paradise, for building reusable components which are used to price financial products. Paradise is embedded in Haskell and makes heavy use of type-class based overloading, allowing the second stage to be compiled into a variety of backend platforms.
Paradise has enabled us to begin moving away from implementation directly in monolithic Excel spreadsheets and towards a more modular and retargetable approach.
Supplemental Material
Available for Download
Supplemental material for: Paradise: a two-stage DSL embedded in Haskell
- P. Bjesse, K. Claessen, M. Sheeran, and S. Singh. Lava: Hardware design in Haskell. In Proc. ICFP '98, pages 174--184. ACM Press, 1998. Google Scholar
Digital Library
- C. Elliott, S. Finne, and O. de Moor. Compiling embedded languages. Journal of Functional Programming, 13(2), 2003. Google Scholar
Digital Library
- S. Kamin. Standard ML as a meta-programming language. Technical report, University of Illinois at Urbana-Champaign, 1996.Google Scholar
- D. Leijen and E. Meijer. Domain specific embedded compilers. In Proc. 2nd USENIX Conference on Domain Specific Languages (DSL'99), pages 109--122, 1999. Google Scholar
Digital Library
- S. Peyton Jones, D. Vytiniotis, S. Weirich, and G. Washburn. Simple unification-based type inference for GADTs. In Proc. ICFP '06, pages 50--61. ACM Press, 2006. Google Scholar
Digital Library
- F. Pfenning and C. Elliott. Higher-order abstract syntax. In Proc. PLDI '88, pages 199--208. ACM Press, 1988. Google Scholar
Digital Library
- T. Sheard and S. Peyton Jones. Template metaprogramming for Haskell. In Proc. Haskell Workshop '02, pages 1--16. ACM Press, 2002. Google Scholar
Digital Library
Index Terms
Paradise: a two-stage DSL embedded in Haskell
Recommendations
Paradise: a two-stage DSL embedded in Haskell
ICFP '08: Proceedings of the 13th ACM SIGPLAN international conference on Functional programmingWe have implemented a two-stage language, Paradise, for building reusable components which are used to price financial products. Paradise is embedded in Haskell and makes heavy use of type-class based overloading, allowing the second stage to be ...
Metaprogramming with combinators
GPCE 2021: Proceedings of the 20th ACM SIGPLAN International Conference on Generative Programming: Concepts and ExperiencesThere are a wide array of methods for writing code generators. We advocate for a point in the design space, which we call metaprogramming with combinators, where programmers use (and write) combinator libraries that directly manipulate object language ...
Layout-sensitive language extensibility with SugarHaskell
Haskell '12: Proceedings of the 2012 Haskell SymposiumProgrammers need convenient syntax to write elegant and concise programs. Consequently, the Haskell standard provides syntactic sugar for some scenarios (e.g., do notation for monadic code), authors of Haskell compilers provide syntactic sugar for more ...







Comments