{"id":"https://openalex.org/W2159612723","doi":"https://doi.org/10.1145/1621607.1621611","title":"Reusable, generic program analyses and transformations","display_name":"Reusable, generic program analyses and transformations","publication_year":2009,"publication_date":"2009-10-04","ids":{"openalex":"https://openalex.org/W2159612723","doi":"https://doi.org/10.1145/1621607.1621611","mag":"2159612723"},"language":"en","primary_location":{"id":"doi:10.1145/1621607.1621611","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1621607.1621611","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the eighth international conference on Generative programming and component engineering","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5013769127","display_name":"Jeremiah Willcock","orcid":null},"institutions":[{"id":"https://openalex.org/I4210119109","display_name":"Indiana University Bloomington","ror":"https://ror.org/02k40bc56","country_code":"US","type":"education","lineage":["https://openalex.org/I4210119109","https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Jeremiah James Willcock","raw_affiliation_strings":["Indiana University, Bloomington, IN, USA"],"affiliations":[{"raw_affiliation_string":"Indiana University, Bloomington, IN, USA","institution_ids":["https://openalex.org/I4210119109"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5074260102","display_name":"Andrew Lumsdaine","orcid":"https://orcid.org/0000-0002-9153-6622"},"institutions":[{"id":"https://openalex.org/I4210119109","display_name":"Indiana University Bloomington","ror":"https://ror.org/02k40bc56","country_code":"US","type":"education","lineage":["https://openalex.org/I4210119109","https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Andrew Lumsdaine","raw_affiliation_strings":["Indiana University, Bloomington, IN, USA"],"affiliations":[{"raw_affiliation_string":"Indiana University, Bloomington, IN, USA","institution_ids":["https://openalex.org/I4210119109"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5051201607","display_name":"Daniel J. Quinlan","orcid":"https://orcid.org/0000-0001-7467-9173"},"institutions":[{"id":"https://openalex.org/I1282311441","display_name":"Lawrence Livermore National Laboratory","ror":"https://ror.org/041nk4h53","country_code":"US","type":"facility","lineage":["https://openalex.org/I1282311441","https://openalex.org/I1330989302","https://openalex.org/I198811213","https://openalex.org/I4210138311"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Daniel J. Quinlan","raw_affiliation_strings":["Lawrence Livermore National Laboratory, Livermore, CA, USA"],"affiliations":[{"raw_affiliation_string":"Lawrence Livermore National Laboratory, Livermore, CA, USA","institution_ids":["https://openalex.org/I1282311441"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5013769127"],"corresponding_institution_ids":["https://openalex.org/I4210119109"],"apc_list":null,"apc_paid":null,"fwci":3.4894,"has_fulltext":false,"cited_by_count":20,"citation_normalized_percentile":{"value":0.93209782,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"5","last_page":"14"},"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9976000189781189,"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/T10260","display_name":"Software Engineering Research","score":0.9972000122070312,"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/compiler","display_name":"Compiler","score":0.9349297285079956},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8773128390312195},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.762611448764801},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7601969838142395},{"id":"https://openalex.org/keywords/optimizing-compiler","display_name":"Optimizing compiler","score":0.6603479981422424},{"id":"https://openalex.org/keywords/generic-programming","display_name":"Generic programming","score":0.6026988625526428},{"id":"https://openalex.org/keywords/program-transformation","display_name":"Program transformation","score":0.5175520777702332},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.5099602937698364},{"id":"https://openalex.org/keywords/compile-time","display_name":"Compile time","score":0.47551804780960083},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.4737725555896759},{"id":"https://openalex.org/keywords/compiler-correctness","display_name":"Compiler correctness","score":0.45185863971710205},{"id":"https://openalex.org/keywords/reuse","display_name":"Reuse","score":0.44143807888031006},{"id":"https://openalex.org/keywords/interface","display_name":"Interface (matter)","score":0.4201134741306305},{"id":"https://openalex.org/keywords/functional-programming","display_name":"Functional programming","score":0.4151104688644409},{"id":"https://openalex.org/keywords/transformation","display_name":"Transformation (genetics)","score":0.41119423508644104}],"concepts":[{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.9349297285079956},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8773128390312195},{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.762611448764801},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7601969838142395},{"id":"https://openalex.org/C190902152","wikidata":"https://www.wikidata.org/wiki/Q1325106","display_name":"Optimizing compiler","level":3,"score":0.6603479981422424},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.6026988625526428},{"id":"https://openalex.org/C2778361913","wikidata":"https://www.wikidata.org/wiki/Q7248437","display_name":"Program transformation","level":2,"score":0.5175520777702332},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.5099602937698364},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.47551804780960083},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.4737725555896759},{"id":"https://openalex.org/C68366613","wikidata":"https://www.wikidata.org/wiki/Q5156378","display_name":"Compiler correctness","level":3,"score":0.45185863971710205},{"id":"https://openalex.org/C206588197","wikidata":"https://www.wikidata.org/wiki/Q846574","display_name":"Reuse","level":2,"score":0.44143807888031006},{"id":"https://openalex.org/C113843644","wikidata":"https://www.wikidata.org/wiki/Q901882","display_name":"Interface (matter)","level":4,"score":0.4201134741306305},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4151104688644409},{"id":"https://openalex.org/C204241405","wikidata":"https://www.wikidata.org/wiki/Q461499","display_name":"Transformation (genetics)","level":3,"score":0.41119423508644104},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C104317684","wikidata":"https://www.wikidata.org/wiki/Q7187","display_name":"Gene","level":2,"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/C157915830","wikidata":"https://www.wikidata.org/wiki/Q2928001","display_name":"Bubble","level":2,"score":0.0},{"id":"https://openalex.org/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"score":0.0},{"id":"https://openalex.org/C129307140","wikidata":"https://www.wikidata.org/wiki/Q6795880","display_name":"Maximum bubble pressure method","level":3,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/1621607.1621611","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1621607.1621611","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the eighth international conference on Generative programming and component engineering","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":44,"referenced_works":["https://openalex.org/W140146526","https://openalex.org/W220935706","https://openalex.org/W1490452695","https://openalex.org/W1504726583","https://openalex.org/W1517760837","https://openalex.org/W1519861553","https://openalex.org/W1528098570","https://openalex.org/W1528503275","https://openalex.org/W1572663059","https://openalex.org/W1590646744","https://openalex.org/W1598339794","https://openalex.org/W1600454909","https://openalex.org/W1798190463","https://openalex.org/W1925894675","https://openalex.org/W1934931359","https://openalex.org/W1997142472","https://openalex.org/W2059895047","https://openalex.org/W2076988379","https://openalex.org/W2088224512","https://openalex.org/W2094426601","https://openalex.org/W2094455839","https://openalex.org/W2098686415","https://openalex.org/W2103705372","https://openalex.org/W2125346056","https://openalex.org/W2126899230","https://openalex.org/W2128151625","https://openalex.org/W2131631108","https://openalex.org/W2134429122","https://openalex.org/W2136390336","https://openalex.org/W2141575885","https://openalex.org/W2144540543","https://openalex.org/W2152885483","https://openalex.org/W2155762874","https://openalex.org/W2160670045","https://openalex.org/W2168374629","https://openalex.org/W2169336925","https://openalex.org/W2441671857","https://openalex.org/W2618896829","https://openalex.org/W2913602891","https://openalex.org/W2993781365","https://openalex.org/W4246027634","https://openalex.org/W4247332426","https://openalex.org/W4388701133","https://openalex.org/W6635577299"],"related_works":["https://openalex.org/W2139568978","https://openalex.org/W1822411953","https://openalex.org/W1551275920","https://openalex.org/W2145326977","https://openalex.org/W1688372159","https://openalex.org/W1599215552","https://openalex.org/W2318681340","https://openalex.org/W1528956417","https://openalex.org/W1505177643","https://openalex.org/W4246781209"],"abstract_inverted_index":{"The":[0],"optimizations":[1,22,28,39,49,75,86],"in":[2,87,136],"modern":[3],"compilers":[4,72,116],"are":[5,18,44,126,175],"constructed":[6],"for":[7,23],"a":[8,15,156],"predetermined":[9],"set":[10,37],"of":[11,38,78,89,159,173],"primitive":[12],"types.":[13],"As":[14],"result,":[16],"programmers":[17,43],"unable":[19,45],"to":[20,46,65,73,76,94,106,117,155,177],"exploit":[21],"user-defined":[24,119],"types":[25,79],"where":[26],"these":[27,55,103,124],"would":[29],"be":[30,134],"correct":[31],"and":[32,68,111,121,163],"beneficial.":[33],"Moreover,":[34],"because":[35],"the":[36,51,59,140,171],"is":[40],"also":[41],"fixed,":[42],"incorporate":[47,118],"new":[48],"into":[50],"compiler.":[52,141],"To":[53,70],"address":[54],"limitations,":[56],"we":[57,84,114,166],"apply":[58,74,154],"reuse":[60],"methodologies":[61],"from":[62],"generic":[63,90,137],"programming":[64],"compiler":[66,146],"analyses":[67],"optimizations.":[69],"enable":[71,115],"classes":[77],"rather":[80],"than":[81],"particular":[82],"types,":[83,160],"define":[85],"terms":[88],"interface":[91,104,130],"descriptions":[92,105],"(similar":[93],"C++":[95],"concepts":[96],"or":[97],"Haskell":[98],"type":[99],"classes).":[100],"By":[101],"extending":[102],"include":[107],"associated":[108,128],"program":[109],"analysis":[110],"transformation":[112],"fragments,":[113],"transformations":[120,125],"analyses.":[122],"Since":[123],"explicitly":[127],"with":[129],"descriptions,":[131],"they":[132],"can":[133,153],"applied":[135],"fashion":[138],"by":[139],"We":[142],"demonstrate":[143],"that":[144],"classical":[145],"optimizations,":[147],"when":[148],"generalized":[149],"using":[150],"this":[151],"framework,":[152],"broad":[157],"range":[158],"both":[161],"built-in":[162],"user-defined.":[164],"Finally,":[165],"present":[167],"an":[168],"initial":[169],"implementation,":[170],"principles":[172],"which":[174],"generalizable":[176],"other":[178],"compilers.":[179]},"counts_by_year":[{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":2},{"year":2016,"cited_by_count":1},{"year":2015,"cited_by_count":1},{"year":2014,"cited_by_count":4},{"year":2013,"cited_by_count":2},{"year":2012,"cited_by_count":3}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
