{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,10,24]],"date-time":"2023-10-24T08:25:22Z","timestamp":1698135922242},"reference-count":14,"publisher":"Wiley","issue":"9","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":6633,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1988,9]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Profilers play an important role in the development of efficient programs. Profiling techniques developed for traditional languages are inadequate for logic programming languages, for a number of reasons: first, the flow of control in logic programming languages, involving back\u2010tracking and failure, is significantly more complex than in traditional languages; secondly, the time taken by a unification operation, the principal primitive operation of such languages, cannot be predicted statically because it depends on the size of the input; and finally, programs may change at run\u2010time because clauses may be added or deleted using primitives such as assert and retract. This paper describes a simple profiler for Prolog. The ideas outlined here may be used either to implement a simple interactive profiler, or integrated into Prolog compilers.<\/jats:p>","DOI":"10.1002\/spe.4380180903","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T20:52:19Z","timestamp":1163796739000},"page":"821-839","source":"Crossref","is-referenced-by-count":5,"title":["Profiling prolog programs"],"prefix":"10.1002","volume":"18","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","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380130803"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1147\/sj.223.0271"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/954587.954595"},{"key":"e_1_2_1_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/28569.315737"},{"key":"e_1_2_1_6_2","unstructured":"S. K.Debray \u2018The SB\u2010Prolog system Version 2.2.1: a user manual\u2019 Technical Report 87\u201315 Dept. of Computer Science University of Arizona Tucson AZ December1987."},{"key":"e_1_2_1_7_2","unstructured":"M. M.GorlickandC. F.Kesselman \u2018Timing Prolog programs without clocks\u2019 Proc. Fourth IEEE Symp. on Logic Programming San Francisco CA Sep.1987 pp.426\u2013432."},{"key":"e_1_2_1_8_2","volume-title":"The Icon Programming Language","author":"Griswold R.","year":"1983"},{"key":"e_1_2_1_9_2","unstructured":"R.Griswold \u2018Benchmarking Icon expressions\u2019 Icon Project Document 18a Dept. of Computer Science The University of Arizona October1987."},{"key":"e_1_2_1_10_2","volume-title":"Programming in Prolog","author":"Clocksin W. F.","year":"1981"},{"key":"e_1_2_1_11_2","unstructured":"S. W.Dietrich \u2018Extension tables: memo relations in logic programming\u2019 Proc. Fourth IEEE Symp. on Logic Programming San Francisco CA September1987 pp.264\u2013272."},{"key":"e_1_2_1_12_2","unstructured":"M.Carlsson \u2018On compiling indexing and cut for the WAM\u2019 Research Report R86011 Swedish Institute of Computer Science Spanga Sweden December1986."},{"key":"e_1_2_1_13_2","volume-title":"The Theory of Relational Database","author":"Maier D.","year":"1983"},{"key":"e_1_2_1_14_2","first-page":"194","volume-title":"Implementations of Prolog","author":"Bruynooghe M.","year":"1984"},{"key":"e_1_2_1_15_2","unstructured":"J.ChangandA. M.Despain \u2018Semi\u2010intelligent backtracking of Prolog based on static data dependency analysis\u2019 Proc. 1985 Symposium on Logic Programming Boston July1985. pp.10\u201321."}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380180903","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380180903","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,21]],"date-time":"2023-10-21T04:07:57Z","timestamp":1697861277000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380180903"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1988,9]]},"references-count":14,"journal-issue":{"issue":"9","published-print":{"date-parts":[[1988,9]]}},"alternative-id":["10.1002\/spe.4380180903"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380180903","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1988,9]]}}}