Affiliation:
1. University of St Andrews, St Andrews, United Kingdom
Abstract
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
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference44 articles.
1. Paradise
2. Domain Specific Languages (DSLs) for Network Protocols (Position Paper)
3. }}H.-J. Boehm A. J. Demers Xerox Corporation Silicon Graphic and Hewlett-Packard Company. A garbage collector for C and C }}H.-J. Boehm A. J. Demers Xerox Corporation Silicon Graphic and Hewlett-Packard Company. A garbage collector for C and C
Cited by
11 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Symbolic Analysis for Data Plane Programs Specialization;ACM Transactions on Architecture and Code Optimization;2022-11-17
2. Dependent tagless final;Proceedings of the 2022 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation;2022-01-15
3. Jones-optimal partial evaluation by specialization-safe normalization;Proceedings of the ACM on Programming Languages;2018-01
4. Generative versus Interpretive Model-Driven Development: Moving Past ‘It Depends’;Communications in Computer and Information Science;2018
5. An Exploration of the ‘It’ in ‘It Depends’: Generative versus Interpretive Model-Driven Development;Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development;2017