{"id":"https://openalex.org/W2159591963","doi":"https://doi.org/10.1145/237721.237784","title":"Type-directed partial evaluation","display_name":"Type-directed partial evaluation","publication_year":1996,"publication_date":"1996-01-01","ids":{"openalex":"https://openalex.org/W2159591963","doi":"https://doi.org/10.1145/237721.237784","mag":"2159591963"},"language":"en","primary_location":{"id":"doi:10.1145/237721.237784","doi":"https://doi.org/10.1145/237721.237784","is_oa":true,"landing_page_url":"https://doi.org/10.1145/237721.237784","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/237721.237784","source":{"id":"https://openalex.org/S7407088133","display_name":"ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '96","raw_type":"proceedings-article"},"volume":null,"type":"conference-paper","is_traditional":true,"indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"bronze","oa_url":"https://dl.acm.org/doi/pdf/10.1145/237721.237784","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5016621051","display_name":"Olivier Danvy","orcid":"https://orcid.org/0000-0002-3890-3630","observed_orcids":["https://orcid.org/0000-0002-3890-3630"]},"institutions":[{"id":"https://openalex.org/I204337017","display_name":"Aarhus University","ror":"https://ror.org/01aj84f44","country_code":"DK","type":"education","lineage":["https://openalex.org/I204337017"]}],"countries":["DK"],"is_corresponding":true,"raw_author_name":"Olivier Danvy","raw_affiliation_strings":["Computer Science Department, Aarhus University, Ny Munkegade, Building 540, DK-8000 Aarhus C, Denmark"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Computer Science Department, Aarhus University, Ny Munkegade, Building 540, DK-8000 Aarhus C, Denmark","institution_ids":["https://openalex.org/I204337017"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5016621051"],"corresponding_institution_ids":["https://openalex.org/I204337017"],"apc_list":null,"apc_paid":null,"fwci":11.3636,"has_fulltext":true,"cited_by_count":170,"citation_normalized_percentile":{"value":0.99323077,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":87,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"242","last_page":"257"},"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.9994999766349792,"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.9994999766349792,"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/T12002","display_name":"Computability, Logic, AI Algorithms","score":0.0,"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/T11975","display_name":"Evolutionary Algorithms and Applications","score":0.0,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/residualization","display_name":"residualization","score":0.609000027179718},{"id":"https://openalex.org/keywords/simply-typed-lambda-calculus","display_name":"simply typed lambda calculus","score":0.8009999990463257},{"id":"https://openalex.org/keywords/evaluation-functionals","display_name":"evaluation functionals","score":0.7289999723434448},{"id":"https://openalex.org/keywords/higher-order-abstract-syntax","display_name":"higher-order abstract syntax","score":0.8980000019073486},{"id":"https://openalex.org/keywords/recursive-programs","display_name":"recursive programs","score":0.4830000102519989},{"id":"https://openalex.org/keywords/inductive-types","display_name":"inductive types","score":0.753000020980835},{"id":"https://openalex.org/keywords/parametricity","display_name":"parametricity","score":0.800000011920929},{"id":"https://openalex.org/keywords/compiler-optimization","display_name":"compiler optimization","score":0.7300000190734863},{"id":"https://openalex.org/keywords/decompilation","display_name":"decompilation","score":0.9210000038146973},{"id":"https://openalex.org/keywords/compiler-generation","display_name":"compiler generation","score":0.6359999775886536}],"concepts":[{"id":"https://openalex.org/C195701839","wikidata":"https://www.wikidata.org/wiki/Q4008398","display_name":"Partial evaluation","level":2,"score":0.9663113355636597},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7333468794822693},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5955954790115356},{"id":"https://openalex.org/C135790938","wikidata":"https://www.wikidata.org/wiki/Q242028","display_name":"Lambda calculus","level":2,"score":0.5926355123519897},{"id":"https://openalex.org/C182359184","wikidata":"https://www.wikidata.org/wiki/Q1756942","display_name":"Partial function","level":2,"score":0.5860164761543274},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.5421487092971802},{"id":"https://openalex.org/C2778361913","wikidata":"https://www.wikidata.org/wiki/Q7248437","display_name":"Program transformation","level":2,"score":0.5302350521087646},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.5281215310096741},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5245616436004639},{"id":"https://openalex.org/C136886441","wikidata":"https://www.wikidata.org/wiki/Q926129","display_name":"Normalization (sociology)","level":2,"score":0.5055067539215088},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.46310776472091675},{"id":"https://openalex.org/C198370458","wikidata":"https://www.wikidata.org/wiki/Q586459","display_name":"Type inference","level":3,"score":0.4378720819950104},{"id":"https://openalex.org/C93682546","wikidata":"https://www.wikidata.org/wiki/Q1056428","display_name":"Type theory","level":3,"score":0.43313878774642944},{"id":"https://openalex.org/C94633896","wikidata":"https://www.wikidata.org/wiki/Q7140378","display_name":"Partial order reduction","level":3,"score":0.4258055090904236},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.4146120548248291},{"id":"https://openalex.org/C2777299769","wikidata":"https://www.wikidata.org/wiki/Q3707858","display_name":"Type (biology)","level":2,"score":0.3393908739089966},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.2137938141822815},{"id":"https://openalex.org/C2776214188","wikidata":"https://www.wikidata.org/wiki/Q408386","display_name":"Inference","level":2,"score":0.18882787227630615},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.1784558892250061},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.16442224383354187},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.15756338834762573},{"id":"https://openalex.org/C144024400","wikidata":"https://www.wikidata.org/wiki/Q21201","display_name":"Sociology","level":0,"score":0.0},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C19165224","wikidata":"https://www.wikidata.org/wiki/Q23404","display_name":"Anthropology","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/237721.237784","doi":"https://doi.org/10.1145/237721.237784","is_oa":true,"landing_page_url":"https://doi.org/10.1145/237721.237784","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/237721.237784","source":{"id":"https://openalex.org/S7407088133","display_name":"ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '96","raw_type":"proceedings-article"}],"best_oa_location":{"id":"doi:10.1145/237721.237784","doi":"https://doi.org/10.1145/237721.237784","is_oa":true,"landing_page_url":"https://doi.org/10.1145/237721.237784","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/237721.237784","source":{"id":"https://openalex.org/S7407088133","display_name":"ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '96","raw_type":"proceedings-article"},"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":true,"pdf":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2159591963.pdf","grobid_xml":"https://content.openalex.org/works/W2159591963.grobid-xml"},"referenced_works_count":57,"referenced_works":["https://openalex.org/W46447294","https://openalex.org/W77859606","https://openalex.org/W1521319832","https://openalex.org/W1544361253","https://openalex.org/W1546727036","https://openalex.org/W1550946868","https://openalex.org/W1556604985","https://openalex.org/W1568246207","https://openalex.org/W1579170619","https://openalex.org/W1581327372","https://openalex.org/W1583092647","https://openalex.org/W1595465781","https://openalex.org/W1607247974","https://openalex.org/W1608933122","https://openalex.org/W1765415708","https://openalex.org/W1982122213","https://openalex.org/W1983574485","https://openalex.org/W1988177568","https://openalex.org/W1988292549","https://openalex.org/W1997143185","https://openalex.org/W1999336811","https://openalex.org/W2002529995","https://openalex.org/W2007759294","https://openalex.org/W2028175476","https://openalex.org/W2037984920","https://openalex.org/W2039952548","https://openalex.org/W2040479609","https://openalex.org/W2050613794","https://openalex.org/W2058824372","https://openalex.org/W2058958439","https://openalex.org/W2059237359","https://openalex.org/W2072379850","https://openalex.org/W2073005537","https://openalex.org/W2090036644","https://openalex.org/W2097112237","https://openalex.org/W2102151984","https://openalex.org/W2110482602","https://openalex.org/W2111304450","https://openalex.org/W2111443557","https://openalex.org/W2117161590","https://openalex.org/W2121569569","https://openalex.org/W2126126443","https://openalex.org/W2127206965","https://openalex.org/W2132750992","https://openalex.org/W2133828278","https://openalex.org/W2141636159","https://openalex.org/W2147795501","https://openalex.org/W2154273644","https://openalex.org/W2160249850","https://openalex.org/W2168866950","https://openalex.org/W2169415986","https://openalex.org/W2293168108","https://openalex.org/W2294422796","https://openalex.org/W3022794709","https://openalex.org/W3045675481","https://openalex.org/W3145454088","https://openalex.org/W4285719527"],"related_works":["https://openalex.org/W7096586533","https://openalex.org/W1581327372","https://openalex.org/W1868290069","https://openalex.org/W4236588429","https://openalex.org/W7098012023","https://openalex.org/W7098655315","https://openalex.org/W1783167788","https://openalex.org/W1518796682","https://openalex.org/W1601819690","https://openalex.org/W1545144190"],"abstract_inverted_index":{"We":[0,140,158],"present":[1],"a":[2,12,19,67,128,206],"strikingly":[3],"simple":[4,207],"partial":[5,24,40,72,86,94,134,173],"evaluator,":[6],"that":[7,96,147,151],"is":[8,26,88,122],"type-directed":[9,133],"and":[10,31,54,80,113,150,155,175,182,188,193,197,213],"reifies":[11],"compiled":[13],"program":[14],"into":[15],"the":[16,34,89,106,117],"text":[17],"of":[18,37,91,116,125],"residual,":[20],"specialized":[21,145],"program.":[22],"Our":[23],"evaluator":[25,87,95],"concise":[27],"(a":[28],"few":[29],"lines)":[30],"it":[32,142,164],"handles":[33],"flagship":[35],"examples":[36],"offline":[38,93],"monovariant":[39],"evaluation.":[41],"Its":[42,103],"source":[43],"programs":[44,146],"are":[45,148],"constrained":[46],"in":[47,66,100,127],"two":[48],"ways:":[49],"they":[50],"must":[51],"be":[52,63],"closed":[53],"monomorphically":[55],"typable.":[56],"Thus":[57],"dynamic":[58,101],"free":[59],"variables":[60],"need":[61],"to":[62,105,143,209],"factored":[64],"out":[65],"\"dynamic":[68],"initial":[69],"environment\".":[70],"Type-directed":[71],"evaluation":[73,77,118,135,174],"uses":[74],"no":[75],"symbolic":[76],"for":[78],"specialization,":[79],"naturally":[81],"processes":[82],"static":[83,98],"computational":[84,156],"effects.Our":[85],"part":[90],"an":[92,123],"residualizes":[97],"values":[99],"contexts.":[102],"restriction":[104],"simply":[107],"typed":[108],"lambda-calculus":[109,138],"coincides":[110],"with":[111],"Berger":[112],"Schwichtenberg's":[114],"\"inverse":[115],"functional\"":[119],"(LICS'91),":[120],"which":[121],"instance":[124],"normalization":[126,177],"logical":[129],"setting.":[130],"As":[131],"such,":[132],"essentially":[136],"achieves":[137],"normalization.":[139],"extend":[141],"produce":[144],"recursive":[149],"use":[152],"disjoint":[153],"sums":[154],"effects.":[157],"also":[159,204],"analyze":[160],"its":[161],"limitations:":[162],"foremost,":[163],"does":[165],"not":[166],"handle":[167],"inductive":[168],"types.This":[169],"paper":[170],"therefore":[171],"bridges":[172],"\u03bb-calculus":[176],"through":[178],"higher-order":[179],"abstract":[180],"syntax,":[181],"touches":[183],"upon":[184],"parametricity,":[185],"proof":[186],"theory,":[187],"type":[189],"theory":[190],"(including":[191,201],"subtyping":[192],"coercions),":[194],"compiler":[195,214],"optimization,":[196],"rut-time":[198],"code":[199],"generation":[200],"decompilation).":[202],"It":[203],"offers":[205],"solution":[208],"denotational":[210],"semantics-based":[211],"compilation":[212],"generation.":[215]},"counts_by_year":[{"year":2026,"cited_by_count":3},{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":1},{"year":2022,"cited_by_count":2},{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":4},{"year":2017,"cited_by_count":3},{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":1},{"year":2014,"cited_by_count":5},{"year":2013,"cited_by_count":4},{"year":2012,"cited_by_count":4}],"updated_date":"2026-11-12T12:28:57.059296","created_date":"2016-06-24T00:00:00"}
