{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,1,12]],"date-time":"2025-01-12T05:21:57Z","timestamp":1736659317058,"version":"3.32.0"},"reference-count":31,"publisher":"Wiley","issue":"2","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":5019,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1993,2]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>We present the implementation of a Prolog system composed of interpreter and compiler. The originality of our work consists in the adoption of a new framework to realize the main components of the system. The framework relies on new mechanisms, called sleepers. With their help we have developed a complete Prolog interpreter in which all the control activities, from backtracking up to last\u2010call optimization, are performed by the sleeper mechanism. We have also produced a Prolog compiler by using a philosophy and tactics that are completely independent of hardware constraints; it exploits an incremental and abstract implementation technique, based on a delayed non\u2010local execution protocol. Our approach to Prolog system implementation has been extremely useful both in terms of software design and overall performance.<\/jats:p>","DOI":"10.1002\/spe.4380230202","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T20:23:16Z","timestamp":1163794996000},"page":"119-150","source":"Crossref","is-referenced-by-count":6,"title":["High\u2010level management of computation history for the design and implementation of a prolog system"],"prefix":"10.1002","volume":"23","author":[{"given":"Vincenzo","family":"Loia","sequence":"first","affiliation":[]},{"given":"Michel","family":"Quaggetto","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1987.233163"},{"key":"e_1_2_1_3_2","first-page":"61","volume-title":"Proc. Ninth International Conference on Software Engineering","author":"Perry D. E.","year":"1987"},{"key":"e_1_2_1_4_2","doi-asserted-by":"crossref","unstructured":"V.Loia G.CattaneoandM.Quaggetto \u2018Incremental high level implementation of Prolog in an open system framework\u2019 Proc. 4th IEEE International Conference on Software Engineering and Knowledge Engineering Capri Italy June 1992 pp.394\u2013403.","DOI":"10.1109\/SEKE.1992.227963"},{"key":"e_1_2_1_5_2","unstructured":"F.\u2010X.Testard\u2010Vaillant \u2018LASP: a history manipulation layer on top of Common Lisp\u2019 Th\u00e8se d'Habilitation \u00e0 diriger de Recherches Universit\u00e8 Paris 6 France 1991."},{"volume-title":"An abstract Prolog instruction set","year":"1983","author":"Warren D. H.","key":"e_1_2_1_6_2"},{"key":"e_1_2_1_7_2","unstructured":"M.Van Caneghem \u2018L'anatomie de Prolog II\u2019 Th\u00e8se d'Etat Facult\u00e9 des Sciences de Luminy Marseille 1984."},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-16492-8_107"},{"key":"e_1_2_1_9_2","first-page":"40","volume-title":"Proc. Fourth International Logic Programming Conference","author":"Carlsson M.","year":"1987"},{"key":"e_1_2_1_10_2","doi-asserted-by":"crossref","unstructured":"H. J.Komorowski \u2018Partial evaluation as a means for inferencing data structures in an applicative language: a theory and implementation in the case of Prolog\u2019 Proc. Ninth Annual ACM Symposium on Principles of Programming Languages Albuquerque New Mexico 1982 pp.255\u2013267.","DOI":"10.1145\/582153.582181"},{"key":"e_1_2_1_11_2","unstructured":"P.Coscia P.Franceschi G.Levi G.SarduandL.Torre \u2018Meta\u2010level definition and compilation of inference engines in the epsilon logic programming environment\u2019 in R. Kowalski and K. Bowen (eds) Proc. Fifth International Conference and Symposium Logic Programming 1988."},{"key":"e_1_2_1_12_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380210605"},{"key":"e_1_2_1_13_2","first-page":"83","volume-title":"Logic Programming","author":"Bruynooghe M.","year":"1982"},{"first-page":"99","volume-title":"Logic Programming","author":"Mellish C. S.","key":"e_1_2_1_14_2"},{"key":"e_1_2_1_15_2","unstructured":"D. H.Warren. \u2018Implementing Prolog: compiling predicates logic programs\u2019 D.A.I. research report no. 39\/40 University of Edinburgh 1977."},{"key":"e_1_2_1_16_2","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-16492-8_115"},{"key":"e_1_2_1_17_2","first-page":"1388","volume-title":"Proc. Fifth International Logic Programming Conference and Symposium","author":"Janssens G.","year":"1988"},{"key":"e_1_2_1_18_2","first-page":"127","volume-title":"Proc. Eighth International Logic Programming Conference","author":"Codognet P.","year":"1991"},{"volume-title":"Quintus Prolog Reference Manual","year":"1986","key":"e_1_2_1_19_2"},{"key":"e_1_2_1_20_2","unstructured":"M.Carlsson \u2018Compilation for Tricia and its abstract machine\u2019. Technical Report 35 Uppsala University 1986."},{"volume-title":"An overlapped Prolog processor","year":"1983","author":"Tick E.","key":"e_1_2_1_21_2"},{"key":"e_1_2_1_22_2","doi-asserted-by":"crossref","unstructured":"T. P.Dobry.A. M.DespainandY. N.Patt \u2018Design decisions influencing the micro\u2010architecture for a Prolog machine\u2019 17th Annual Microprogramming Workshop. IEEE 1984 pp.217\u2013231.","DOI":"10.1145\/384281.808231"},{"key":"e_1_2_1_23_2","unstructured":"V.Loia \u2018Description op\u00e9ratoire d'interpr\u00e8tes Prolog complets en terme de manipulation de l'histoire de la d\u00e9monstration\u2019 Th\u00e8se de Doctorat de l'Universite P. & M. Curie Paris VI LITP\u2010IBP TR no.90\u201342. Paris June1990."},{"key":"e_1_2_1_24_2","unstructured":"V.Loia M.QuaggettoandF.\u2010X.Testard\u2010Vaillant \u2018A Prolog debugging system is an open system\u2019.Workshop of the IV International Conference Logic Programming in TR ECRC IR\u2010LP\u201031\u201325 European Computer\u2010Industry Research Centre Publisher Eilat Israel June1990."},{"key":"e_1_2_1_25_2","unstructured":"D. H.Warren. \u2018An improved Prolog implementation which optimizes tail recursion\u2019 Workshop '80 Debrecen. Hungary 1980 pp.1\u201311."},{"key":"e_1_2_1_26_2","first-page":"253","volume-title":"Logic Programming","author":"Clark K. L.","year":"1982"},{"key":"e_1_2_1_27_2","first-page":"293","volume-title":"Information Processing","author":"Nilsson J.","year":"1983"},{"key":"e_1_2_1_28_2","first-page":"147","volume-title":"Implementation of Prolog","author":"Mellish C.","year":"1984"},{"volume-title":"Compile time garbage collection","year":"1986","author":"Bruynooghe M.","key":"e_1_2_1_29_2"},{"key":"e_1_2_1_30_2","doi-asserted-by":"crossref","unstructured":"J. L.WeinerandS.Ramakrishnan \u2018A piggy\u2010back compiler for Prolog\u2019 Proc. SIGPLAN '88 Conference on Programming Language Design and Implementation Atlanta Georgia June1988 pp.288\u2013286.","DOI":"10.1145\/53990.54019"},{"key":"e_1_2_1_31_2","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(85)90004-4"},{"key":"e_1_2_1_32_2","doi-asserted-by":"crossref","unstructured":"L.Cardelli \u2018Compiling a functional language\u2019 Proceedings of the ACM Symposium on LISP and Functional Language Austin TX U.S.A. August1984 pp.208\u2013217.","DOI":"10.1145\/800055.802037"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380230202","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380230202","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,11]],"date-time":"2025-01-11T23:56:50Z","timestamp":1736639810000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380230202"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1993,2]]},"references-count":31,"journal-issue":{"issue":"2","published-print":{"date-parts":[[1993,2]]}},"alternative-id":["10.1002\/spe.4380230202"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380230202","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"type":"print","value":"0038-0644"},{"type":"electronic","value":"1097-024X"}],"subject":[],"published":{"date-parts":[[1993,2]]}}}