{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,25]],"date-time":"2023-10-25T05:49:43Z","timestamp":1698212983490},"reference-count":29,"publisher":"Wiley","issue":"12","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":4716,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1993,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Janus is a language designed for distributed constraint programming. This paper describes QD\u2010Janus, a sequential implementation of Janus in Prolog. The compiler uses a number of novel analyses and optimizations to improve the performance of the system. The choice of Prolog as the target language for a compiler, although unusual, is motivated by the following: (i) the semantic gap between Janus and Prolog is much smaller than that between Janus and, say, C or machine language\u2014this simplifies the compilation process significantly, and makes it possible to develop a system with reasonable performance fairly quickly; (ii) recent progress in Prolog implementation techniques, and the development of Prolog systems whose speeds are comparable to those of imperative languages, indicates that the translation to Prolog need not entail a significant performance loss compared to native code compilers; and (iii) compilation to Prolog can benefit immediately from a significant body of work on, and implementations of, parallel Prolog systems. Our experience indicates that translation of logic programming languages to Prolog, accompanied by the development of good program analysis and optimization tools, is an effective way to quickly develop flexible and portable implementations with good performance and low cost.<\/jats:p>","DOI":"10.1002\/spe.4380231204","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T20:20:06Z","timestamp":1163794806000},"page":"1337-1360","source":"Crossref","is-referenced-by-count":13,"title":["QD\u2010Janus: A sequential implementation of Janus in Prolog"],"prefix":"10.1002","volume":"23","author":[{"given":"Saumya K.","family":"Debray","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","first-page":"431","volume-title":"Proc. 1990 North American Conference on Logic Programming","author":"Saraswat V.","year":"1990"},{"key":"e_1_2_1_3_2","unstructured":"V. A.Saraswat \u2018Concurrent constraint programming languages\u2019 Ph.D. Thesis Department of Computer Science Carnegie\u2010Mellon University 1989. ACM Doctoral Dissertation Award series MIT Press."},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/72551.72555"},{"key":"e_1_2_1_5_2","doi-asserted-by":"crossref","unstructured":"J.JaffarandJ. L.Lassez \u2018Constraint logic programming\u2019 Proc. Fourteenth ACM Symposium on Principles of Programming Languages January1987 pp.111\u2013119.","DOI":"10.1145\/41625.41635"},{"key":"e_1_2_1_6_2","unstructured":"V. A.Saraswat \u2018Compiling CP (\u2193 | &) on top of Prolog\u2019 Technical Report CMU\u2010CS\u201087\u2010174 Computer Science Department Carnegie\u2010Mellon University Pittsburgh October1987."},{"key":"e_1_2_1_7_2","first-page":"301","volume-title":"Proc. European Symposium on Programming","author":"Tanaka J.","year":"1986"},{"key":"e_1_2_1_8_2","first-page":"119","volume-title":"Proc. Second International Symposium on Logic Programming, Boston","author":"Ueda K.","year":"1985"},{"key":"e_1_2_1_9_2","first-page":"174","volume-title":"Proc. Seventh International Conference on Logic Programming, Jerusalem","author":"Taylor A.","year":"1990"},{"key":"e_1_2_1_10_2","first-page":"501","volume-title":"Proc. 1990 North American Conference on Logic Programming","author":"Van Roy P.","year":"1990"},{"key":"e_1_2_1_11_2","first-page":"757","volume-title":"Proc. 1990 North American Conference on Logic Programming, Austin, TX","author":"Ali K. A. M.","year":"1990"},{"key":"e_1_2_1_12_2","first-page":"253","volume-title":"Proc. Seventh International Conference on Logic Programming, Jerusalem","author":"Hermenegildo M. V.","year":"1990"},{"key":"e_1_2_1_13_2","unstructured":"B.RamkumarandL. V.Kal\u00e9 \u2018Compiled execution of the reduce\u2010OR process model on multiprocessors\u2019 Proc. 1989 North American Conference on Logic Programming Cleveland October1989."},{"key":"e_1_2_1_14_2","first-page":"825","volume-title":"Proc. Eighth International Conference on Logic Programming, Paris","author":"Costa V. Santos","year":"1991"},{"key":"e_1_2_1_15_2","unstructured":"S.Kliger \u2018Compiling concurrent logic programming languages\u2019 Ph.D. Thesis The Weizmann Institute of Science Rehovot Israel October1992."},{"key":"e_1_2_1_16_2","first-page":"399","volume-title":"Proc. Joint International Conference and Symposium on Logic Programming, Washington DC","author":"Gudeman D.","year":"1992"},{"key":"e_1_2_1_17_2","doi-asserted-by":"crossref","unstructured":"S. K.Debray \u2018Implementing logic programming languages: the quiche\u2010eating approach\u2019 Proc. ICLP\u201093 Workshop on Practical Implementations and Systems Experience Budapest Hungary June1993.","DOI":"10.1007\/978-1-4615-2690-2_5"},{"key":"e_1_2_1_18_2","first-page":"140","volume-title":"Concurrent Prolog: Collected Papers","author":"Ueda K.","year":"1987"},{"key":"e_1_2_1_19_2","first-page":"497","volume-title":"Proc. 1989 North American Conference on Logic Programming. Cleveland, Ohio","author":"Foster I.","year":"1989"},{"key":"e_1_2_1_20_2","volume-title":"SICStus Prolog User's Manual","author":"Carlsson M.","year":"1988"},{"key":"e_1_2_1_21_2","series-title":"Lecture Notes in Computer Science vol. 217","volume-title":"Programs as Data Objects","author":"Hughes J.","year":"1985"},{"key":"e_1_2_1_22_2","doi-asserted-by":"crossref","unstructured":"G.Lindstrom \u2018Static evaluation of functional programs\u2019 Proc. ACM SIGPLAN '86 Symp. on Compiler Construction July1986. pp.196\u2013206.","DOI":"10.1145\/13310.13331"},{"key":"e_1_2_1_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/65979.65983"},{"key":"e_1_2_1_24_2","first-page":"669","volume-title":"Proc. fifth International Conference on Logic Programming, Seattle","author":"Janssens G.","year":"1988"},{"key":"e_1_2_1_25_2","article-title":"Denotational abstract interpretation of logic programs","author":"Marriott K.","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"e_1_2_1_26_2","unstructured":"C. S.Mellish \u2018The automatic generation of mode declarations for Prolog programs\u2019 DAI Research Paper 163 Department of Artificial Intelligence University of Edinburgh August1981."},{"key":"e_1_2_1_27_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF03037136"},{"key":"e_1_2_1_28_2","doi-asserted-by":"crossref","unstructured":"S. K.Debray \u2018Compiler optimizations for low\u2010level redundancy elimination: an application of meta\u2010level prolog primitives\u2019 Proc. Third Workshop on Metaprogramming in Logic (META\u201092) Uppsala June1992.","DOI":"10.1007\/3-540-56282-6_8"},{"key":"e_1_2_1_29_2","first-page":"513","volume-title":"Concurrent prolog: Collected Papers","author":"Houri A.","year":"1987"},{"key":"e_1_2_1_30_2","volume-title":"Parallel Logic Programming","author":"Tick E.","year":"1992"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380231204","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380231204","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,25]],"date-time":"2023-10-25T00:09:37Z","timestamp":1698192577000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380231204"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1993,12]]},"references-count":29,"journal-issue":{"issue":"12","published-print":{"date-parts":[[1993,12]]}},"alternative-id":["10.1002\/spe.4380231204"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380231204","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1993,12]]}}}