A copy of this work was available on the public web and has been preserved in the Wayback Machine. The capture dates from 2019; you can also visit the original URL.
The file type is application/pdf
.
Filters
Reflections on LMS: exploring front-end alternatives
2016
Proceedings of the 2016 7th ACM SIGPLAN Symposium on Scala - SCALA 2016
In the context of Scala, the LMS (Lightweight Modular Staging) framework has contributed to "abstraction without regret"-high-level programming without performance penalty-in a number of challenging domains ...
Metaprogramming techniques to generate code at runtime in a general-purpose meta-language have seen a surge of interest in recent years, driven by the widening performance gap between high-level languages ...
Some notable systems include DyC [27] for C, JSpec/Tempo [68] , the JSC Java Supercompiler [39] , and Civet [69] for Java. ...
doi:10.1145/2998392.2998399
dblp:conf/scala/Rompf16
fatcat:ycr6nhzmbvgl3ao4xriw35736y
Surgical precision JIT compilers
2013
Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation - PLDI '14
We present Lancet, a JIT compiler framework for Java bytecode that enables such a tight, two-way integration with the running program. ...
In the case of Lancet, JIT macros also provide a natural interface to existing LMS-based toolchains such as the Delite parallelism and DSL framework, which can now serve as accelerator macros for arbitrary ...
Acknowledgments The authors would like to thank the Graal/Truffle team for many insightful discussions. ...
doi:10.1145/2594291.2594316
dblp:conf/pldi/RompfSBLCO14
fatcat:f5sjt2lx5vbhncoz5pv45aiuta
Functional parallels of sequential imperatives (short paper)
2017
Proceedings of the 2017 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation - PEPM 2017
Symbolic parallelism is a fresh look at the decade-old problem of turning sequential, imperative, code into associative reduction kernels, based on the realization that map/reduce is at its core a staging ...
Acknowledgments We thank the anonymous reviewers for their helpful suggestions. This research was supported by NSF through awards 1553471 and 1564207. ...
LMS draws inspiration from earlier work such as TaskGraph [1] , a C++ framework for program generation and optimization. ...
doi:10.1145/3018882.3018891
fatcat:bix3ziaztfbpfhyga2kkzevclu
Combinators for impure yet hygienic code generation
2014
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation - PEPM '14
Our framework is implemented as a Haskell library that embeds an extensible typed higher-order domain-specific language. It may be regarded as 'staged Haskell.' ...
We present a code-combinator framework that lets us express arbitrary monadic effects, including mutable references and delimited control, that move open code across generated binders. ...
Filardo and Jun Inoue for many helpful comments. We appreciate helpful discussions with Atsushi Igarashi, and Didier Rémy. We thank anonymous reviewers for very many suggestions. ...
doi:10.1145/2543728.2543740
dblp:conf/pepm/KameyamaKS14
fatcat:6go7toxctnde5alwxzswib2owi
Combinators for impure yet hygienic code generation
2015
Science of Computer Programming
Our framework is implemented as a Haskell library that embeds an extensible typed higher-order domain-specific language. It may be regarded as 'staged Haskell.' ...
We present a code-combinator framework that lets us express arbitrary monadic effects, including mutable references and delimited control, that move open code across generated binders. ...
Filardo and Jun Inoue for many helpful comments. We appreciate helpful discussions with Atsushi Igarashi, and Didier Rémy. We thank anonymous reviewers for very many suggestions. ...
doi:10.1016/j.scico.2015.08.007
fatcat:lygtrfcnsvd3tk3h4amwk6bcay
Lightweight Modular Staging and Embedded Compilers:Abstraction without Regret for High-Level High-Performance Programming
2012
Programs expressed in a high-level programming language need to be translated to a low-level machine dialect for execution. ...
Instead of writing down the program and relying on a compiler for translation, developers write a program generator, which produces a specialized, efficient, low-level program as its output. ...
Scala is used successfully for pure library-based DSLs, such as parser combinators [94] , actors [54] and testing frameworks. ...
doi:10.5075/epfl-thesis-5456
fatcat:bmnuaa34nbdyfixtrgmmm4vh4i
A SQL to C compiler in 500 lines of code
2019
The key enabler is a shift in perspective towards generative programming. The core of the query engine is an interpreter for relational algebra operations, written in Scala. ...
Using the open-source LMS (Lightweight Modular Staging) framework, we turn this interpreter into a query compiler with very low effort. ...
Acknowledgements We thank Grégory Essertel and Ruby Tahboub (Purdue University) for contributing the experiments reported in Section 6 and for scaling up the approach to a realistic SQL engine as summarized ...
doi:10.17863/cam.40623
fatcat:5ry7yehgsbg4vdsbv5jihorg4a
Live Functional Programming with Typed Holes
[article]
2018
arXiv
pre-print
This paper develops a dynamic semantics for incomplete functional programs, starting from the static semantics developed in recent work on Hazelnut. ...
Formally, the semantics borrows machinery from both gradual type theory (which supplies the basis for handling unfilled type holes) and contextual modal type theory (which supplies a logical basis for ...
This material was supported by a gift from Facebook, from the National Science Foundation under grant numbers CCF-1619282, SHF-1814900 and SHF-1817145, and from AFRL and DARPA under agreement #FA8750-16 ...
arXiv:1805.00155v4
fatcat:njcoo5a4lbe6zmlbw2liobzrdu
Automated Program Transformation for Improving Software Quality
2019
For example, static analyzerssuffer false positives, and automatically produced patches may be insufficiently precise to fix a bug. ...
Automated techniques like static analysis and dynamic fuzz testing have a proven track record for cutting costs and improving software quality. ...
Refal [35, 194] is a pattern matching language and tool for supercompilation. ...
doi:10.1184/r1/9989393.v1
fatcat:wvqcqeompnhungzw4ntekf2iru