Automatic reordering for dataflow safety of Datalog
dc.contributor.author | Contrastin, MIstral | |
dc.contributor.author | Rice, AC | |
dc.contributor.author | Orchard, Dominic | |
dc.date.accessioned | 2018-11-26T12:01:45Z | |
dc.date.available | 2018-11-26T12:01:45Z | |
dc.date.issued | 2018-09-03 | |
dc.identifier.uri | https://www.repository.cam.ac.uk/handle/1810/285974 | |
dc.description.abstract | Clauses and subgoals in a Datalog program can be given in any order without affecting program meaning. However, practical applications of the language require the use of built-in or external predicates with particular dataflow requirements. These can be expressed as input or output modes on arguments. We describe a static analysis of moding for Datalog which can transform an ill-moded program into a well-moded program by reordering clause subgoals, satisfying dataflow requirements. We describe an incremental algorithm which efficiently finds a reordering if it exists. This frees the programmer to focus on the declarative specification of their program rather than on the implementation details of external predicates. We prove that our computed reorderings yield well-moded programs (soundness) and that if a program can be made well-moded, we compute a reordering to do so (completeness). | |
dc.description.sponsorship | This work was supported by the EPSRC [grant number EP/M026124/1] | |
dc.publisher | Association for Computing Machinery | |
dc.title | Automatic reordering for dataflow safety of Datalog | |
dc.type | Conference Object | |
prism.number | Article No.9 | |
prism.publicationName | Proceedings of the 20th International Symposium on Principles and Practice of Declarative Programming | |
dc.identifier.doi | 10.17863/CAM.33299 | |
dcterms.dateAccepted | 2018-06-25 | |
rioxxterms.versionofrecord | 10.1145/3236950.3236954 | |
rioxxterms.version | AM | |
rioxxterms.licenseref.uri | http://www.rioxx.net/licenses/all-rights-reserved | |
rioxxterms.licenseref.startdate | 2018-06-25 | |
dc.contributor.orcid | Rice, Andrew [0000-0002-4677-8032] | |
rioxxterms.type | Conference Paper/Proceeding/Abstract | |
pubs.funder-project-id | Engineering and Physical Sciences Research Council (EP/M026124/1) | |
cam.issuedOnline | 2018-09-03 | |
pubs.conference-name | 20th International Symposium on Principles and Practice of Declarative Programming | |
pubs.conference-start-date | 2018-09-03 | |
pubs.conference-finish-date | 2018-09-05 |
Files in this item
This item appears in the following Collection(s)
-
Cambridge University Research Outputs
Research outputs of the University of Cambridge