I mentioned Lightweight Modular Staging in the meeting yesterday. The context was thinking about tools to clean up our template-based code generation and allow direct construction of COFFEE or LLVM IR. LMS is done in the context of Scala so it's not directly usable - but the ideas might be helpful. Here is the website: http://scala-lms.github.io/ LMS is being used in a number of interesting DSL projects at Stanford, via a framework for domain-specific optimisations called Delite: http://ppl.stanford.edu/main/projects.html A related and somewhat similar idea has been done in Lua, as described here: http://terralang.org/pldi071-devito.pdf You can play online here http://terralang.org/demo.html Does anyone know of a similar tool in Python? As a historical note, I claim our Taskgraph Library work got there first, in C++: http://www.doc.ic.ac.uk/~phjk/Software/TGL/ Paul
On 18/09/14 12:00, Kelly, Paul H J wrote:
I mentioned Lightweight Modular Staging in the meeting yesterday. The context was thinking about tools to clean up our template-based code generation and allow direct construction of COFFEE or LLVM IR.
LMS is done in the context of Scala so it's not directly usable - but the ideas might be helpful. Here is the website:
It feels churlish, although possibly entirely appropriate, to point at Greenspun's 10th rule. This effectively looks like a (new! exciting!) language syntax on top of scala to do a combination of: defmacro (http://clhs.lisp.se/Body/f_mexp_.htm) and define-compiler-macro (http://clhs.lisp.se/Body/m_define.htm) in a language where the code is not really data. Lawrence (I'll take my curmudgeon hat off now) Mitchell
participants (2)
- 
                
                Kelly, Paul H J
- 
                
                Lawrence Mitchell