Blogs (28) >>
ECOOP 2016
Sun 17 - Fri 22 July 2016 Rome, Italy
Wed 20 Jul 2016 15:55 - 16:20 at Auditorium Loyola - Session 3 Chair(s): Colin Gordon

This paper describes QL, a language for querying complex, potentially recursive data structures. QL compiles to Datalog and runs on a standard relational database, yet it provides familiar-looking object-oriented features such as classes and methods, reinterpreted in logical terms: classes are logical properties describing sets of values, subclassing is implication, and virtual calls are dispatched dynamically by considering the most specific classes containing the receiver. Furthermore, types in QL are prescriptive and actively influence program evaluation rather than just describing it. In combination, these features enable the development of concise queries based on reusable libraries, which are written in a purely declarative style, yet can be efficiently executed even on very large data sets. In particular, we have used QL to implement static analyses for various programming languages, which scale to millions of lines of code.

Note: The version of the paper included in the proceedings contains some misprints and typographical glitches that are fixed in the version available on the Semmle website, which should be considered the canonical version.

Wed 20 Jul

15:30 - 16:45: Research Track - Session 3 at Auditorium Loyola
Chair(s): Colin GordonDrexel University
ecoop-2016-papers15:30 - 15:55
Carl Friedrich Bolz-TereickKing's College London , Darya MelicherCarnegie Mellon University, Laurence TrattKing's College London
Link to publication DOI Pre-print Media Attached
ecoop-2016-papers15:55 - 16:20
Link to publication DOI Pre-print
ecoop-2016-papers16:20 - 16:45
Janwillem SwalensVrije Universiteit Brussel, Joeri De KosterVrije Universiteit Brussel, Wolfgang De MeuterVrije Universiteit Brussel
Link to publication DOI Pre-print Media Attached