> Soufflé synthesizes a native parallel C++ program from a logic specification.
а дальше?
А дальше — транслируете вашу программу в набор фактов Datalog. Формулируете задачу в виде набора правил — и позволяете решателю заняться остальным. Благо, там реализована эффективная компиляция в C++.
Ага, уже не говоря о том, что программирование в ограничениях — очень широкая область. И пролог-подобные системы здесь только один частный случай. В компиляторах можно использовать и другие виды решателей, для которых спецификация задачи дана в виде ограничений.
Интересный доклад с описанием проблематики представления функциональных алгоритмов в векторной форме. Описаны базовые идеи, проблемы, Accelerate и парочка приложений.