DudeMiester
Regular
Well I suppose you would have to either have a condition sepecification capable of overlapping or provide an explicit case for when those two optimisations overlap. I can only assume that existing compilers have some mechanism for applying optimisations that can handle overlaps. Figure out a way to expose that. Maybe something like parsing the code into a data structure that the plugins can analyse and transform. I'm pretty sure you could borrow techniques from dynamic languages to do this.
Also, my talk about MVC and all that wasn't my main point. I was trying to stress that DSLs are just abstractions. I mean take GLSL and Sh (from the university of waterloo). Clearly, C++ is general enough to allow you to integrate GLSL directly into C++ code. It seems apparent to me that GLSL is only there for intuitiveness and ease of use, but not for any functional reason. I think that you will find the same applies to all DSLs, and of course it should, since they are to C++ like C++ is to ASM.
It just seems to me that people get so wrapped up in these DSLs and other things, labelling them as some panacea, when in fact they are nothing more then tools to be employed when and where it is appropriate. I mean, if you compare DSLs to ASM, they much in common. ASM code varies from platform to platform and DSL code varies from context to context. Neither have the uniformity and generality of languages like C++, and that's why none of them will replace it. The only thing I think you will see is the addition of much better contextual/meta/compile-time data/functions (e.g. better type info) to C++ with the additional optimisations to match, and indeed this is the case.
Also, my talk about MVC and all that wasn't my main point. I was trying to stress that DSLs are just abstractions. I mean take GLSL and Sh (from the university of waterloo). Clearly, C++ is general enough to allow you to integrate GLSL directly into C++ code. It seems apparent to me that GLSL is only there for intuitiveness and ease of use, but not for any functional reason. I think that you will find the same applies to all DSLs, and of course it should, since they are to C++ like C++ is to ASM.
It just seems to me that people get so wrapped up in these DSLs and other things, labelling them as some panacea, when in fact they are nothing more then tools to be employed when and where it is appropriate. I mean, if you compare DSLs to ASM, they much in common. ASM code varies from platform to platform and DSL code varies from context to context. Neither have the uniformity and generality of languages like C++, and that's why none of them will replace it. The only thing I think you will see is the addition of much better contextual/meta/compile-time data/functions (e.g. better type info) to C++ with the additional optimisations to match, and indeed this is the case.
Last edited by a moderator: