On the correctness and efficiency of lock-free expandable tries for tabled logic programs

dc.contributor.author Miguel Gonçalves Areias en
dc.contributor.author Ricardo Rocha en
dc.date.accessioned 2017-11-20T14:29:33Z
dc.date.available 2017-11-20T14:29:33Z
dc.date.issued 2014 en
dc.description.abstract Tabling is an implementation technique that improves the declarativeness and expressiveness of Prolog in dealing with recursion and redundant sub-computations. A critical component in the implementation of an efficient tabling framework is the design of the data structures and algorithms to access and manipulate tabled data. One of the most successful data structures for tabling is tries. In previous work, our initial approach to deal with concurrent table accesses, implemented on top of the Yap Prolog system, was to use lock-based trie data structures. In this work, we propose a new design based on lock-free data structures and, in particular, we focus our discussion on the correctness and efficiency of extending Yap's tabling framework to support lock-free expandable tries. Experimental results show that our new lock-free design can effectively reduce the execution time and scale better, when increasing the number of threads, than the original lock-based design. © 2014 Springer International Publishing. en
dc.identifier.uri http://repositorio.inesctec.pt/handle/123456789/3711
dc.identifier.uri http://dx.doi.org/10.1007/978-3-319-04132-2_12 en
dc.language eng en
dc.relation 5128 en
dc.relation 5509 en
dc.rights info:eu-repo/semantics/openAccess en
dc.title On the correctness and efficiency of lock-free expandable tries for tabled logic programs en
dc.type conferenceObject en
dc.type Publication en
Files