Filters








9 Hits in 1.6 sec

Reflections on LMS: exploring front-end alternatives

Tiark Rompf
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

Tiark Rompf, Arvind K. Sujeeth, Kevin J. Brown, HyoukJoong Lee, Hassan Chafi, Kunle Olukotun
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)

Tiark Rompf, Kevin J. Brown
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

Yukiyoshi Kameyama, Oleg Kiselyov, Chung-chieh Shan
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

Yukiyoshi Kameyama, Oleg Kiselyov, Chung-chieh Shan
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

Tiark Rompf
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

TIARK ROMPF, Nada Amin, Apollo-University Of Cambridge Repository, Apollo-University Of Cambridge Repository
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]

Cyrus Omar, Ian Voysey, Ravi Chugh, Matthew A. Hammer
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

Rijnard Van Tonder
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