{"id":"https://openalex.org/W7098728488","doi":null,"title":"Offline specialisation in Prolog using a hand-written compiler generator. Theory and Practice of Logic Programming","display_name":"Offline specialisation in Prolog using a hand-written compiler generator. Theory and Practice of Logic Programming","publication_year":2013,"publication_date":"2013-09-14","ids":{"openalex":"https://openalex.org/W7098728488"},"language":"en","primary_location":{"id":"pmh:oai:CiteSeerX.psu:10.1.1.342.4451","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.342.4451","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://arxiv.org/pdf/cs/0208009v1.pdf","raw_type":"text"},"volume":null,"type":"preprint","is_traditional":true,"indexed_in":[],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Michael Leuschel","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Michael Leuschel","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"middle","author":{"id":"https://openalex.org/A5006632551","display_name":"Wim Vanhoof","orcid":"https://orcid.org/0000-0003-3769-6294","observed_orcids":["https://orcid.org/0000-0003-3769-6294"]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Wim Vanhoof","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5004343076","display_name":"Maurice Bruynooghe","orcid":"https://orcid.org/0000-0002-6881-1462","observed_orcids":["https://orcid.org/0000-0002-6881-1462"]},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Maurice Bruynooghe","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":null,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":true,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9932000041007996,"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"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.9932000041007996,"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"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.0010000000474974513,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"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/T10317","display_name":"Advanced Database Systems and Queries","score":0.0007999999797903001,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/partial-deduction","display_name":"partial deduction","score":0.8820000290870667},{"id":"https://openalex.org/keywords/logic-programming","display_name":"logic programming","score":0.6039999723434448},{"id":"https://openalex.org/keywords/prolog","display_name":"Prolog","score":0.9520000219345093},{"id":"https://openalex.org/keywords/compiler-generators","display_name":"compiler generators","score":0.6840000152587891},{"id":"https://openalex.org/keywords/binding-time-analysis","display_name":"binding-time analysis","score":0.8199999928474426},{"id":"https://openalex.org/keywords/lix","display_name":"LIX","score":0.5360000133514404}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7979999780654907},{"id":"https://openalex.org/C195701839","wikidata":"https://www.wikidata.org/wiki/Q4008398","display_name":"Partial evaluation","level":2,"score":0.7851999998092651},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7621999979019165},{"id":"https://openalex.org/C81721847","wikidata":"https://www.wikidata.org/wiki/Q163468","display_name":"Prolog","level":2,"score":0.760200023651123},{"id":"https://openalex.org/C128838566","wikidata":"https://www.wikidata.org/wiki/Q275603","display_name":"Logic programming","level":2,"score":0.6121000051498413},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5855000019073486},{"id":"https://openalex.org/C2780615836","wikidata":"https://www.wikidata.org/wiki/Q2471869","display_name":"USable","level":2,"score":0.5561000108718872},{"id":"https://openalex.org/C2987117450","wikidata":"https://www.wikidata.org/wiki/Q275603","display_name":"Logic program","level":3,"score":0.5110999941825867},{"id":"https://openalex.org/C2780992000","wikidata":"https://www.wikidata.org/wiki/Q17016113","display_name":"Generator (circuit theory)","level":3,"score":0.4415999948978424},{"id":"https://openalex.org/C189790780","wikidata":"https://www.wikidata.org/wiki/Q933932","display_name":"Horn clause","level":3,"score":0.3587999939918518},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.31279999017715454},{"id":"https://openalex.org/C77781355","wikidata":"https://www.wikidata.org/wiki/Q223335","display_name":"Structured programming","level":2,"score":0.29899999499320984},{"id":"https://openalex.org/C164155591","wikidata":"https://www.wikidata.org/wiki/Q2067766","display_name":"Satisfiability modulo theories","level":2,"score":0.296099990606308},{"id":"https://openalex.org/C2775940519","wikidata":"https://www.wikidata.org/wiki/Q17067742","display_name":"Logic model","level":2,"score":0.2833000123500824},{"id":"https://openalex.org/C195344581","wikidata":"https://www.wikidata.org/wiki/Q2555318","display_name":"Automated reasoning","level":2,"score":0.28299999237060547},{"id":"https://openalex.org/C173404611","wikidata":"https://www.wikidata.org/wiki/Q528588","display_name":"Constraint programming","level":3,"score":0.27959999442100525},{"id":"https://openalex.org/C182359184","wikidata":"https://www.wikidata.org/wiki/Q1756942","display_name":"Partial function","level":2,"score":0.2777999937534332},{"id":"https://openalex.org/C2779089604","wikidata":"https://www.wikidata.org/wiki/Q7169333","display_name":"Permission","level":2,"score":0.27730000019073486},{"id":"https://openalex.org/C115901376","wikidata":"https://www.wikidata.org/wiki/Q184199","display_name":"Automation","level":2,"score":0.27570000290870667},{"id":"https://openalex.org/C2776937632","wikidata":"https://www.wikidata.org/wiki/Q4117718","display_name":"Program synthesis","level":2,"score":0.27559998631477356},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.27549999952316284},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.26339998841285706},{"id":"https://openalex.org/C50033165","wikidata":"https://www.wikidata.org/wiki/Q15712089","display_name":"Inductive programming","level":3,"score":0.26010000705718994},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.258899986743927},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.2565000057220459},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.25519999861717224},{"id":"https://openalex.org/C2777394884","wikidata":"https://www.wikidata.org/wiki/Q762268","display_name":"Automatic programming","level":2,"score":0.25360000133514404}],"mesh":[],"locations_count":1,"locations":[{"id":"pmh:oai:CiteSeerX.psu:10.1.1.342.4451","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.342.4451","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://arxiv.org/pdf/cs/0208009v1.pdf","raw_type":"text"}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":["https://openalex.org/W7098424645","https://openalex.org/W2037317228","https://openalex.org/W2042965083","https://openalex.org/W7037618159","https://openalex.org/W7096003813","https://openalex.org/W1929307865","https://openalex.org/W6995876836","https://openalex.org/W2048831705","https://openalex.org/W7075296146","https://openalex.org/W1596577905"],"abstract_inverted_index":{"The":[0,76],"so":[1],"called":[2],"\u201ccogen":[3],"approach":[4,38,82],"\u201d":[5],"to":[6,42,53,69,83,96,116],"program":[7,149],"specialisation,":[8],"writing":[9],"a":[10,15,80,89,108,123,125,144],"compiler":[11],"generator":[12],"instead":[13,172],"of":[14,26,45,63,127,173],"specialiser,":[16],"has":[17],"been":[18],"used":[19,115],"with":[20,73,155],"considerable":[21],"success":[22],"in":[23,163],"partial":[24,49,85,92],"evaluation":[25],"both":[27],"functional":[28],"and":[29,51,87,133],"imperative":[30],"languages.":[31],"This":[32],"paper":[33,77],"demonstrates":[34],"that":[35],"the":[36,43,61,64,70,97,118,148,159,164,175],"cogen":[37,119],"is":[39,107,114],"also":[40],"applicable":[41],"specialisation":[44],"logic":[46,103],"programs":[47,66],"(called":[48],"deduction)":[50],"leads":[52],"effective":[54],"specialisers.":[55,75],"Moreover,":[56],"using":[57],"good":[58],"binding-time":[59],"annotations,":[60],"speed-ups":[62,71],"specialised":[65,145,165],"are":[67],"comparable":[68],"obtained":[72],"online":[74],"first":[78],"develops":[79],"generic":[81],"offline":[84,91,98],"deduction":[86,93],"then":[88],"specific":[90],"method,":[94],"leading":[95],"system":[99,120],"lix":[100],"for":[101,147,158],"pure":[102],"programs.":[104],"While":[105,167],"this":[106,153,168],"usable":[109],"specialiser":[110,146,154],"by":[111],"itself,":[112],"it":[113],"develop":[117],"logen.":[121],"Given":[122],"program,":[124],"specification":[126],"what":[128],"inputs":[129,161],"will":[130],"be":[131,140],"static,":[132],"an":[134],"annotation":[135],"specifying":[136],"which":[137],"calls":[138],"should":[139],"unfolded,":[141],"logen":[142],"generates":[143],"at":[150],"hand.":[151],"Running":[152],"particular":[156],"values":[157],"static":[160],"results":[162],"program.":[166],"requires":[169],"two":[170],"steps":[171],"one,":[174],"efficiency":[176]},"counts_by_year":[],"updated_date":"2026-10-12T09:40:04.860316","created_date":"2025-10-27T00:00:00"}
