On 11/17/2011 12:34 PM, Nathan Ridge wrote:
What's equally interesting though is that scheme (or at least a subset of it) can be implemented in pure c++. No parsing, just pure DSEL in C++. Now, imagine a parser that targets this DSEL (through C++) -- a source to source translator. Essentially, your scheme code will be compiled into highly efficient C++.
I find this quite intriguing, and I'm naturally led to ask two questions:
1. Which subset of Scheme can be implemented in this way, with a DSEL?
2. Has anyone actually done this?
We've done this as well. Of course you understand that this does not really follow the lisp syntax, instead it's pure function call syntax.
But does a DSEL like this have the potential to support typical Scheme features like: - lazy evaluation (e.g. the "else" expression in an "if" is not evaluated if the condition is false)
Yes.
- pattern matching
Not sure. Probably, but I haven't looked into it.
- macros
No. Regards, -- Joel de Guzman http://www.boostpro.com http://boost-spirit.com