{"id":"https://openalex.org/W6995876836","doi":null,"title":"Practicable Prolog specialisation","display_name":"Practicable Prolog specialisation","publication_year":2005,"publication_date":"2005-01-01","ids":{"openalex":"https://openalex.org/W6995876836"},"language":"de","primary_location":{"id":"pmh:oai:eprints.soton.ac.uk:465695","doi":null,"is_oa":false,"landing_page_url":"https://eprints.soton.ac.uk/id/eprint/465695/1/983059.pdf","pdf_url":"https://eprints.soton.ac.uk/id/eprint/465695/1/983059.pdf","source":{"id":"https://openalex.org/S4306401019","display_name":"ePrints Soton (University of Southampton)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I43439940","host_organization_name":"University of Southampton","host_organization_lineage":["https://openalex.org/I43439940"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":null,"raw_type":"Thesis"},"volume":null,"type":"dissertation","is_traditional":true,"indexed_in":[],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://hdl.handle.net/10068/920552","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Craig, Stephen-John","orcid":null,"observed_orcids":[]},"institutions":[],"countries":[],"is_corresponding":true,"raw_author_name":"Craig, Stephen-John","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.9961000084877014,"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.9961000084877014,"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.0006000000284984708,"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/T10904","display_name":"Embedded Systems Design Techniques","score":0.00039999998989515007,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/partial-evaluation","display_name":"partial evaluation","score":0.8970000147819519},{"id":"https://openalex.org/keywords/termination-analysis","display_name":"termination analysis","score":0.8650000095367432},{"id":"https://openalex.org/keywords/constraint-logic-programming","display_name":"constraint logic programming","score":0.9100000262260437},{"id":"https://openalex.org/keywords/graphical-development-environment","display_name":"graphical development environment","score":0.7080000042915344},{"id":"https://openalex.org/keywords/software-reuse","display_name":"software reuse","score":0.3089999854564667}],"concepts":[{"id":"https://openalex.org/C195701839","wikidata":"https://www.wikidata.org/wiki/Q4008398","display_name":"Partial evaluation","level":2,"score":0.8147000074386597},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7876999974250793},{"id":"https://openalex.org/C81721847","wikidata":"https://www.wikidata.org/wiki/Q163468","display_name":"Prolog","level":2,"score":0.7251999974250793},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6728000044822693},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.5501000285148621},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.5196999907493591},{"id":"https://openalex.org/C98045186","wikidata":"https://www.wikidata.org/wiki/Q205663","display_name":"Process (computing)","level":2,"score":0.5087000131607056},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.5077000260353088},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.48570001125335693},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.460099995136261},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4309999942779541},{"id":"https://openalex.org/C2776036281","wikidata":"https://www.wikidata.org/wiki/Q48769818","display_name":"Constraint (computer-aided design)","level":2,"score":0.41760000586509705},{"id":"https://openalex.org/C48103436","wikidata":"https://www.wikidata.org/wiki/Q599031","display_name":"State (computer science)","level":2,"score":0.4115000069141388},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.40230000019073486},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.3831999897956848},{"id":"https://openalex.org/C2778361913","wikidata":"https://www.wikidata.org/wiki/Q7248437","display_name":"Program transformation","level":2,"score":0.37959998846054077},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.36820000410079956},{"id":"https://openalex.org/C2776937632","wikidata":"https://www.wikidata.org/wiki/Q4117718","display_name":"Program synthesis","level":2,"score":0.36489999294281006},{"id":"https://openalex.org/C139571649","wikidata":"https://www.wikidata.org/wiki/Q1156793","display_name":"Program optimization","level":3,"score":0.3544999957084656},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3343999981880188},{"id":"https://openalex.org/C173404611","wikidata":"https://www.wikidata.org/wiki/Q528588","display_name":"Constraint programming","level":3,"score":0.33180001378059387},{"id":"https://openalex.org/C527412718","wikidata":"https://www.wikidata.org/wiki/Q855395","display_name":"Interpretation (philosophy)","level":2,"score":0.33059999346733093},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.30169999599456787},{"id":"https://openalex.org/C2775924081","wikidata":"https://www.wikidata.org/wiki/Q55608371","display_name":"Control (management)","level":2,"score":0.2964000105857849},{"id":"https://openalex.org/C2780654840","wikidata":"https://www.wikidata.org/wiki/Q333341","display_name":"Abstract interpretation","level":2,"score":0.29170000553131104},{"id":"https://openalex.org/C143587482","wikidata":"https://www.wikidata.org/wiki/Q1543216","display_name":"Iterative and incremental development","level":2,"score":0.2904999852180481},{"id":"https://openalex.org/C529173508","wikidata":"https://www.wikidata.org/wiki/Q638608","display_name":"Software development","level":3,"score":0.28439998626708984},{"id":"https://openalex.org/C2780767217","wikidata":"https://www.wikidata.org/wiki/Q5532421","display_name":"Generality","level":2,"score":0.2750000059604645},{"id":"https://openalex.org/C75608658","wikidata":"https://www.wikidata.org/wiki/Q44395","display_name":"Pascal (unit)","level":2,"score":0.27459999918937683},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.26820001006126404},{"id":"https://openalex.org/C115901376","wikidata":"https://www.wikidata.org/wiki/Q184199","display_name":"Automation","level":2,"score":0.26499998569488525},{"id":"https://openalex.org/C77618280","wikidata":"https://www.wikidata.org/wiki/Q1155772","display_name":"Scheme (mathematics)","level":2,"score":0.26489999890327454},{"id":"https://openalex.org/C3746660","wikidata":"https://www.wikidata.org/wiki/Q1068763","display_name":"Rule of inference","level":2,"score":0.26460000872612},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.25949999690055847},{"id":"https://openalex.org/C116253237","wikidata":"https://www.wikidata.org/wiki/Q1437424","display_name":"Formal specification","level":2,"score":0.2556000053882599},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.25519999861717224},{"id":"https://openalex.org/C176783269","wikidata":"https://www.wikidata.org/wiki/Q5164378","display_name":"Constraint logic programming","level":4,"score":0.2531000077724457}],"mesh":[],"locations_count":2,"locations":[{"id":"pmh:oai:eprints.soton.ac.uk:465695","doi":null,"is_oa":false,"landing_page_url":"https://eprints.soton.ac.uk/id/eprint/465695/1/983059.pdf","pdf_url":"https://eprints.soton.ac.uk/id/eprint/465695/1/983059.pdf","source":{"id":"https://openalex.org/S4306401019","display_name":"ePrints Soton (University of Southampton)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I43439940","host_organization_name":"University of Southampton","host_organization_lineage":["https://openalex.org/I43439940"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"acceptedVersion","is_accepted":true,"is_published":false,"raw_source_name":null,"raw_type":"Thesis"},{"id":"pmh:hdl:10068/920552","doi":null,"is_oa":true,"landing_page_url":"http://hdl.handle.net/10068/920552","pdf_url":null,"source":{"id":"https://openalex.org/S4377196900","display_name":"OpenGrey (Institut de l'Information Scientifique et Technique)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I1295345811","host_organization_name":"Institut de l'Information Scientifique et Technique","host_organization_lineage":["https://openalex.org/I1295345811"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"U - Thesis"}],"best_oa_location":{"id":"pmh:hdl:10068/920552","doi":null,"is_oa":true,"landing_page_url":"http://hdl.handle.net/10068/920552","pdf_url":null,"source":{"id":"https://openalex.org/S4377196900","display_name":"OpenGrey (Institut de l'Information Scientifique et Technique)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I1295345811","host_organization_name":"Institut de l'Information Scientifique et Technique","host_organization_lineage":["https://openalex.org/I1295345811"],"host_organization_lineage_names":[],"type":"repository"},"license":"cc-by-nc-nd","license_id":"https://openalex.org/licenses/cc-by-nc-nd","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"U - Thesis"},"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/W1981221339","https://openalex.org/W1486252159","https://openalex.org/W7098728488","https://openalex.org/W2037317228","https://openalex.org/W7098424645","https://openalex.org/W2048831705","https://openalex.org/W2115694727","https://openalex.org/W2042965083","https://openalex.org/W2091064840","https://openalex.org/W2535272995"],"abstract_inverted_index":{"In":[0,218],"software":[1],"development":[2,155],"an":[3,67,141,221],"emphasis":[4],"is":[5,21,33,66,83,90,97,112,161,180,258,276,283,308,320],"placed":[6],"on":[7,140,208,213],"creating":[8],"reusable":[9,34],"general":[10,57],"programs":[11,53,75,160,293],"which":[12,54,241],"solve":[13],"a":[14,22,37,104,214,225,326],"wide":[15],"class":[16],"of":[17,41,94,144,184,210,216,228,235,295,317,325,328],"problems,":[18],"however":[19],"it":[20,275],"struggle":[23],"to":[24,98,103,117,148,165,220,287,303],"balance":[25],"generality":[26],"with":[27,190],"efficiency.":[28],"Highly":[29],"parameterised":[30],"molecular":[31],"code":[32,48,267,269],"but":[35],"suffers":[36],"penalty":[38],"in":[39,43,122],"terms":[40],"efficiency,":[42],"contrast":[44],"carefully":[45],"optimising":[46],"the":[47,85,119,145,150,185,196,211,233,248,263,279,306,318,323],"by":[49,76,87,254],"hand":[50],"produces":[51],"faster":[52,266],"are":[55],"less":[56],"and":[58,114,132,168,205,252,256,271,310,315],"have":[59],"fewer":[60],"opportunities":[61],"for":[62,70,157,176,194,223,247,265,291],"reuse.":[63],"Partial":[64],"evaluation":[65,82,101,110,137],"automatic":[68],"technique":[69],"program":[71,147],"optimisation":[72],"that":[73,278,300],"optimises":[74],"exploiting":[77],"known":[78],"data.":[79],"While":[80],"partial":[81,100,109,136,281,289],"improving,":[84],"uptake":[86],"mainstream":[88],"users":[89,164],"disappointing.":[91],"The":[92,199,260,285,313],"aim":[93],"this":[95],"thesis":[96],"make":[99],"accessible":[102],"wider":[105],"audience.":[106],"A":[107,153,238],"basic":[108],"algorithm":[111,175,200,222],"given":[113,181],"then":[115],"extended":[116],"handle":[118],"features":[120],"encountered":[121],"real":[123],"life":[124],"Prolog":[125,250],"implementations":[126],"including":[127],"constraint":[128],"logic":[129,159,292],"programming,":[130],"coroutining":[131],"non-declarative":[133],"constructs.":[134],"Offline":[135],"methods":[138],"rely":[139],"annotated":[142,171],"version":[143],"source":[146,172],"control":[149,246],"specialisation":[151,245,272,324],"process.":[152],"graphical":[154],"environment":[156],"specialising":[158],"presented":[162],"allowing":[163],"create,":[166],"visualise":[167],"modify":[169],"their":[170],"programs.":[173],"An":[174],"automatically":[177],"generating":[178,224],"annotations":[179,229],"using":[182,322],"state":[183],"art":[186],"termination":[187],"analysis,":[188],"combined":[189],"type-based":[191],"abstract":[192],"interpretation":[193],"propagating":[195],"binding":[197],"types.":[198],"has":[201],"been":[202,298],"fully":[203],"implemented":[204],"we":[206,230],"report":[207],"performance":[209],"process":[212],"series":[215,327],"benchmarks.":[217],"addition":[219],"safe":[226],"set":[227],"also":[231],"investigate":[232],"generation":[234],"optimal":[236],"annotations.":[237],"self-tuning":[239],"system,":[240],"derives":[242],"its":[243],"own":[244],"particular":[249],"compiler":[251],"architecture":[253],"trial":[255],"error":[257],"developed.":[259],"system":[261,307],"balances":[262],"desire":[264],"against":[268],"explosion":[270],"time.":[273],"Additionally":[274],"demonstrated":[277],"developed":[280],"evaluator":[282],"self-applicable.":[284],"attempts":[286],"self-apply":[288],"evaluators":[290],"have,":[294],"yet,":[296],"not":[297],"all":[299],"successful.":[301],"Compared":[302],"earlier":[304],"attempts,":[305],"effective":[309],"surprisingly":[311],"simple.":[312],"power":[314],"efficiency":[316],"implementation":[319],"evaluated":[321],"non-trivial":[329],"interpreters.":[330]},"counts_by_year":[],"updated_date":"2026-11-06T12:05:46.655746","created_date":"2025-10-10T00:00:00"}
