> I confess I'm having a hard time seeing how the code posted in > Manjunath's original email could result in something that can be > introspected at runtime. Does it generate byte code? A runtime > polymorphic AST? And the JIT ... does it actually generate machine code > that then gets executed?
At the end of the END block, you would have an AST. Yes, there will be a JIT and an associated run time to compile this and run on different platforms. >>> P.S : Someone more familiar with Rapidmind or other variants, can you >>> please explain how they do it in more detail? >>> >> Rapidmind is one huge vaporware. Nobody ever saw it running ... > > Manjunath asked about why this technique is popular in industry. I don't > know; I've never heard about it before. Is it because it's easier then > programming with expression templates? Maybe had proto been available You wouldn't believe how many of my otherwise expert C++ programmer friends get a disgusted look on their face when they see templates. I couldn't figure out why :( That being said, I see one obvious advantage with proto. With proto, when you write an expression like if_(a > b) [c = d + 2.0*a].else_[c = d-2.0*a] you can just "natively" execute it. But with RT-DSLs, you have to generate an AST by running the code, then JIT and only then you can execute it. If you wanted a system where you can just natively "interpret" you program, or generate code for different platforms, then proto makes the interpreter very fast. Whereas with RT-DSLs, even interpreting has to be differed to run time. Manjunath _______________________________________________ proto mailing list proto@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/proto