WG211/M14Reichenbach
A Domain-Specific Language for Extending PQL/Java (joint work with Hilmar Ackermann, Christian Müller, and Yannis Smaragdakis)
Abstract: PQL/Java is a compact but powerful declarative language extension for Java that automatically optimises and parallelises queries over Java containers. To support additional forms of queries (e.g., over SQL databases, incorporating Java 8 streams, or involving new custom operators), we have added a backend extension mechanism based on an extension specification language. This language serves both to express the semantics of new custom operators and to express relevant non-functional properties that we use during optimisation. To validate the extension specification language's efficacy, we have re-implemented the PQL/Java backend in it and added a number of new query operators, including support for database queries. In addition to reducing the burden towards extending our language, our new backend now enables dynamic compilation.