Challenging problems in partial evaluation and mixed computation
New Generation Computing - Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
An algorithm for type-checking dependent types
Science of Computer Programming - Special issue on mathematics of program construction
Building domain-specific embedded languages
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Tagless staged interpreters for typed languages
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Tag Elimination and Jones-Optimality
PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
Termination Analysis for Offline Partial Evaluation of a Higher Order Functional Language
SAS '96 Proceedings of the Third International Symposium on Static Analysis
The nofib Benchmark Suite of Haskell Programs
Proceedings of the 1992 Glasgow Workshop on Functional Programming
Interactive Programs in Dependent Type Theory
Proceedings of the 14th Annual Conference of the EACSL on Computer Science Logic
Multistage programming: its theory and applications
Multistage programming: its theory and applications
Journal of Functional Programming
Journal of Functional Programming
Secrets of the Glasgow Haskell Compiler inliner
Journal of Functional Programming
Imperative program optimization by partial evaluation
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A monadic approach for avoiding code duplication when staging memoized functions
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A verified staged interpreter is a verified compiler
Proceedings of the 5th international conference on Generative programming and component engineering
Concoqtion: indexed types now!
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Type checking with open type functions
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Paradise: a two-stage DSL embedded in Haskell
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Proceedings of the first ACM SIGPLAN symposium on Haskell
A Supercompiler for Core Haskell
Implementation and Application of Functional Languages
Domain Specific Languages (DSLs) for Network Protocols (Position Paper)
ICDCSW '09 Proceedings of the 2009 29th IEEE International Conference on Distributed Computing Systems Workshops
Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages
Journal of Functional Programming
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
A Tutorial Implementation of a Dependently Typed Lambda Calculus
Fundamenta Informaticae - Dependently Typed Programming
Outrageous but meaningful coincidences: dependent type-safe syntax and evaluation
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
IDRIS ---: systems programming meets full dependent types
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Resource-Safe systems programming with embedded domain specific languages
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
Epic--A library for generating compilers
TFP'11 Proceedings of the 12th international conference on Trends in Functional Programming
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Functional instrumentation of actionscript programs with asil
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Typed syntactic meta-programming
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Programming and reasoning with algebraic effects and dependent types
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
A multivalued language with a dependent type system
Proceedings of the 2013 ACM SIGPLAN workshop on Dependently-typed programming
Hi-index | 0.00 |
Partial evaluation aims to improve the efficiency of a program by specialising it with respect to some known inputs. In this paper, we show that partial evaluation can be an effective and, unusually, easy to use technique for the efficient implementation of embedded domain-specific languages. We achieve this by exploiting dependent types and by following some simple rules in the definition of the interpreter for the domain-specific language. We present experimental evidence that partial evaluation of programs in domain-specific languages can yield efficient residual programs whose performance is competitive with their Java and C equivalents and which are also, through the use of dependent types, verifiably resource-safe. Using our technique, it follows that a verifiably correct and resource-safe program can also be an efficient program