作者: MIGUEL AREIAS , RICARDO ROCHA
DOI: 10.1017/S147106841800039X
关键词: Key (cryptography) 、 Computer science 、 Logic programming 、 Prolog 、 Parallelism (grammar) 、 Recursion 、 Programming language 、 Data structure 、 Concurrency 、 Table (database)
摘要: One of the main advantages Prolog is its potential for implicit exploitation parallelism and, as a high-level language, also often used means to explicitly control concurrent tasks. Tabling powerful implementation technique that overcomes some limitations traditional systems in dealing with recursion and redundant sub-computations. Given these advantages, question arises if tabling has concurrency/parallelism. On one hand, still exploits search space but, on other model necessarily far more complex since it introduces concurrency access tables. In this paper, we summarize Yap's contributions tabled evaluation describe design challenges several alternative table designs explicit which represent different trade-offs between memory usage. We motivate using fixed-size lock-free data structures, elaborate key role engine's allocator plays such environments, discuss how mode-directed support can be extended evaluation. Finally, present our future perspectives towards an efficient novel framework integrates both single engine. Under consideration Theory Practice Logic Programming (TPLP).