{"id":"https://openalex.org/W70417731","doi":"https://doi.org/10.3217/jucs-012-07-0764","title":"The Design of the YAP Compiler: An Optimizing Compiler for Logic Programming Languages","display_name":"The Design of the YAP Compiler: An Optimizing Compiler for Logic Programming Languages","publication_year":2020,"publication_date":"2020-04-07","ids":{"openalex":"https://openalex.org/W70417731","doi":"https://doi.org/10.3217/jucs-012-07-0764","mag":"70417731"},"language":"en","primary_location":{"id":"pmh:oai:CiteSeerX.psu:10.1.1.100.5154","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.100.5154","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.jucs.org/jucs_12_7/the_design_of_the/jucs_12_07_0764_0787_dasilva.pdf","raw_type":"text"},"type":"article","indexed_in":["datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://doi.org/10.3217/jucs-012-07-0764","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5074854183","display_name":"Anderson Faustino da Silva","orcid":"https://orcid.org/0000-0002-8588-8197"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Anderson Faustino da Silva","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5059093687","display_name":"V\u0131\u0301tor Santos Costa","orcid":"https://orcid.org/0000-0002-3344-8237"},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Vitor Santos Costa","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":10,"citation_normalized_percentile":{"value":0.00031535,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":89,"max":94},"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9998000264167786,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10142","display_name":"Formal Methods in Verification","score":0.9987999796867371,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9987000226974487,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.9151266813278198},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.874548614025116},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7920786142349243},{"id":"https://openalex.org/keywords/dead-code-elimination","display_name":"Dead code elimination","score":0.6497685313224792},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.6254754066467285},{"id":"https://openalex.org/keywords/prolog","display_name":"Prolog","score":0.6199718117713928},{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.6012318730354309},{"id":"https://openalex.org/keywords/dynamic-compilation","display_name":"Dynamic compilation","score":0.5694374442100525},{"id":"https://openalex.org/keywords/compiler-construction","display_name":"Compiler construction","score":0.5536497831344604},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.5030269026756287},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.48227885365486145},{"id":"https://openalex.org/keywords/logic-programming","display_name":"Logic programming","score":0.46002498269081116},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.4490169882774353},{"id":"https://openalex.org/keywords/interprocedural-optimization","display_name":"Interprocedural optimization","score":0.44900354743003845},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.3470580577850342},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.1601307988166809},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.12219381332397461},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.09787878394126892},{"id":"https://openalex.org/keywords/loop-optimization","display_name":"Loop optimization","score":0.08604887127876282},{"id":"https://openalex.org/keywords/object-code","display_name":"Object code","score":0.08586713671684265}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9151266813278198},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.874548614025116},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7920786142349243},{"id":"https://openalex.org/C2144512","wikidata":"https://www.wikidata.org/wiki/Q1143090","display_name":"Dead code elimination","level":5,"score":0.6497685313224792},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.6254754066467285},{"id":"https://openalex.org/C81721847","wikidata":"https://www.wikidata.org/wiki/Q163468","display_name":"Prolog","level":2,"score":0.6199718117713928},{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.6012318730354309},{"id":"https://openalex.org/C8767382","wikidata":"https://www.wikidata.org/wiki/Q1058454","display_name":"Dynamic compilation","level":3,"score":0.5694374442100525},{"id":"https://openalex.org/C9957790","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler construction","level":3,"score":0.5536497831344604},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.5030269026756287},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.48227885365486145},{"id":"https://openalex.org/C128838566","wikidata":"https://www.wikidata.org/wiki/Q275603","display_name":"Logic programming","level":2,"score":0.46002498269081116},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.4490169882774353},{"id":"https://openalex.org/C111564260","wikidata":"https://www.wikidata.org/wiki/Q4288856","display_name":"Interprocedural optimization","level":5,"score":0.44900354743003845},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.3470580577850342},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.1601307988166809},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.12219381332397461},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.09787878394126892},{"id":"https://openalex.org/C29331672","wikidata":"https://www.wikidata.org/wiki/Q3354468","display_name":"Loop optimization","level":4,"score":0.08604887127876282},{"id":"https://openalex.org/C154526789","wikidata":"https://www.wikidata.org/wiki/Q157965","display_name":"Object code","level":4,"score":0.08586713671684265}],"mesh":[],"locations_count":2,"locations":[{"id":"pmh:oai:CiteSeerX.psu:10.1.1.100.5154","is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.100.5154","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://www.jucs.org/jucs_12_7/the_design_of_the/jucs_12_07_0764_0787_dasilva.pdf","raw_type":"text"},{"id":"doi:10.3217/jucs-012-07-0764","is_oa":true,"landing_page_url":"https://doi.org/10.3217/jucs-012-07-0764","pdf_url":null,"source":{"id":"https://openalex.org/S4306400660","display_name":"TUGraz OPEN Library (Graz University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I4092182","host_organization_name":"Graz University of Technology","host_organization_lineage":["https://openalex.org/I4092182"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"DataPaper"}],"best_oa_location":{"id":"doi:10.3217/jucs-012-07-0764","is_oa":true,"landing_page_url":"https://doi.org/10.3217/jucs-012-07-0764","pdf_url":null,"source":{"id":"https://openalex.org/S4306400660","display_name":"TUGraz OPEN Library (Graz University of Technology)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I4092182","host_organization_name":"Graz University of Technology","host_organization_lineage":["https://openalex.org/I4092182"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"DataPaper"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":36,"referenced_works":["https://openalex.org/W22826074","https://openalex.org/W53359417","https://openalex.org/W57588021","https://openalex.org/W59162145","https://openalex.org/W1483869398","https://openalex.org/W1517590008","https://openalex.org/W1540383537","https://openalex.org/W1576113161","https://openalex.org/W1589263172","https://openalex.org/W1598886868","https://openalex.org/W1650027297","https://openalex.org/W1969456304","https://openalex.org/W1982205631","https://openalex.org/W2009418036","https://openalex.org/W2013724146","https://openalex.org/W2023578426","https://openalex.org/W2048692754","https://openalex.org/W2049890071","https://openalex.org/W2050289144","https://openalex.org/W2058360616","https://openalex.org/W2058847156","https://openalex.org/W2068219251","https://openalex.org/W2073888041","https://openalex.org/W2081810835","https://openalex.org/W2093334386","https://openalex.org/W2095625847","https://openalex.org/W2100111786","https://openalex.org/W2102890180","https://openalex.org/W2103362613","https://openalex.org/W2105090082","https://openalex.org/W2114067856","https://openalex.org/W2140191557","https://openalex.org/W2167997514","https://openalex.org/W2171595223","https://openalex.org/W2492021589","https://openalex.org/W3085129737"],"related_works":["https://openalex.org/W2151326751","https://openalex.org/W2170216784","https://openalex.org/W2988503985","https://openalex.org/W2104963439","https://openalex.org/W1533949297","https://openalex.org/W2058847156","https://openalex.org/W2149040884","https://openalex.org/W1969783449","https://openalex.org/W2901567138","https://openalex.org/W1571035569","https://openalex.org/W975088959","https://openalex.org/W2788011716","https://openalex.org/W1595073421","https://openalex.org/W1988494037","https://openalex.org/W2166890117","https://openalex.org/W2023456664","https://openalex.org/W2246751983","https://openalex.org/W2188615207","https://openalex.org/W2059420055","https://openalex.org/W2166845204"],"abstract_inverted_index":{"Abstract:":[0],"Several":[1],"techniques":[2],"for":[3,59,141],"implementing":[4],"Prolog":[5,32],"in":[6],"a":[7,56,66],"efficient":[8,31],"manner":[9],"have":[10,50],"been":[11],"devised":[12],"since":[13],"the":[14,75,92,107,114,143],"original":[15],"interpreter,":[16],"many":[17],"of":[18,84,91,99,109,145],"them":[19],"aimed":[20],"at":[21,106],"achieving":[22],"more":[23,70,79,111],"speed.":[24],"There":[25],"are":[26,55,69],"two":[27],"main":[28],"approaches":[29],"to":[30,36,46],"implementation:":[33],"(1)":[34],"compilers":[35,45],"bytecode":[37],"and":[38,54,74,138],"then":[39],"interpreting":[40],"it":[41],"(emulators)":[42],"or":[43],"(2)":[44],"native":[47],"code.":[48],"Emulators":[49],"smaller":[51],"load/compilation":[52],"time":[53],"good":[57],"solution":[58],"their":[60],"simplicity":[61],"when":[62],"speed":[63],"is":[64,77,87],"not":[65],"priority.":[67],"Compilers":[68],"complex":[71],"than":[72],"emulators,":[73],"difference":[76],"much":[78],"acute":[80],"if":[81],"some":[82],"form":[83],"code":[85,102],"analysis":[86],"performed":[88],"as":[89],"part":[90],"compilation,":[93],"which":[94],"impacts":[95],"development":[96],"time.":[97],"Generation":[98],"low":[100],"level":[101],"promises":[103],"faster":[104],"programs":[105],"expense":[108],"using":[110,121,132],"resources":[112],"during":[113],"compilation":[115,137],"phase.":[116],"In":[117],"our":[118],"work":[119],"besides":[120],"an":[122,128],"mixed":[123],"execution":[124],"mode,":[125],"we":[126],"design":[127],"optimizing":[129],"compiler":[130],"that":[131],"type":[133],"feedback":[134],"profiling,":[135],"dynamic":[136,139],"deoptimization":[140],"improving":[142],"performance":[144],"logic":[146],"programming":[147],"languages.":[148]},"counts_by_year":[{"year":2015,"cited_by_count":1},{"year":2013,"cited_by_count":1}],"updated_date":"2026-07-17T05:52:16.776730","created_date":"2016-06-24T00:00:00"}
