Envié esto a comp.lang.c++.moderated
Más allá de que se publique o no, me gustaría también lanzar un thread acá (perdón que no lo traduje, estoy hasta las manos, por supuesto sigámoslo en castellano quienes estén interesados).
Technologies such as OpenMP , Cilk Plus , CUDA  and SIMD vectorization require language extensions (or compiler support).
I am also aware of the work of a project  which addresses OpenMP by incorporating it into the language.
I was looking into a possible general solution at language level to be able to both implement the technologies and use them without extensions or special compiler support. Another goal is to be technology-agnostic, that is, a solution that enables the implementation of any of those technologies as a library level.
Main thing here is that statements (and flow control operators) are objects.
In this project, I developed a "for" and a "parallel for" using plain C++ (with almost no C++11 feature intentionally), the latter segmenting the work and launching threads to get the job done.
By using the template facilities in the project, I was able to:
- mimick overloading of the "for" statement
- program pattern matching to identify the suitable optimizations (e.g. when to apply certain optimizations)
- program transformations
Far from trying to implement a program transformation library, I'm trying to see what could the language offer to natively perform what I tried to evaluate with a template metaprogramming library, adhering the 2-faced language principle, so the user just provides a program with regular statements (for, while, etc.), and includes a library that overloads them to provide some optimization semantic (parallelism, vectorization, etc.); and using another library, the original program already compiles, and the optimization semantic changes.
With this mail, I'm proposing to start a discussion about the required language extensions to be able to implement a transformation library (which could be any of the technologies beforementioned). As far as I could see with my experiment, I could identify flow-control operators overloading, statements pattern recognitioin and transformations as the needs to accomplish this goal.
In the web of the project, the interested reader can find a very initial proposed syntax.
Who’s got the sweetest disposition?
One guess, that’s who?
Who’d never, ever start an argument?
Who never shows a bit of temperament?
Who's never wrong but always right?
Who'd never dream of starting a fight?
Who get stuck with all the bad luck?
¿Eres miembro de "CyC++ Buenos Aires" verdad? Si no lo eres, has recibido este mesaje por error.
Has recibido este mensaje porque estás suscrito al grupo "CyC++ Buenos Aires" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cppba+unsubscribe <at> googlegroups.com.