PQL/Java: A powerful and easy-to-use declarative parallel query language for Java

Joint work with Yannis Smaragdakis, Neil Immerman, and Hilmar Ackermann.

The popularisation of parallelism is arguably the most fundamental computing challenge for years to come. We present an approach where parallel programming takes place in a restricted (sub-Turing-complete), logic-based declarative language, embedded in Java. Our logic-based language, PQL, can express the parallel elements of a computing task, while regular Java code captures sequential elements. This approach offers a key property: the purely declarative nature of the language allows for aggressive optimization, in much the same way that relational queries are optimized by a database engine. At the same time, declarative queries can operate on plain Java data, extending patterns such as map-reduce to arbitrary levels of nesting and composition complexity. PQL/Java logo

Implementation and updated language specification with full domain inference specification will be released soon.

The language