{"id":"https://openalex.org/W2102866602","doi":"https://doi.org/10.1145/1173706.1173748","title":"Reflective program generation with patterns","display_name":"Reflective program generation with patterns","publication_year":2006,"publication_date":"2006-10-22","ids":{"openalex":"https://openalex.org/W2102866602","doi":"https://doi.org/10.1145/1173706.1173748","mag":"2102866602"},"language":"en","primary_location":{"id":"doi:10.1145/1173706.1173748","doi":"https://doi.org/10.1145/1173706.1173748","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1173706.1173748","pdf_url":null,"source":{"id":"https://openalex.org/S7407086978","display_name":"International Conference on Generative Programming and Component Engineering (GPCE)","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 5th international conference on Generative programming and component engineering","raw_type":"proceedings-article"},"volume":null,"type":"conference-paper","is_traditional":true,"indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"http://infoscience.epfl.ch/record/192840","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5084249145","display_name":"Manuel A. F\u00e4hndrich","orcid":null,"observed_orcids":[]},"institutions":[{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Manuel F\u00e4hndrich","raw_affiliation_strings":["Microsoft Research","Microsoft research#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Microsoft Research","institution_ids":["https://openalex.org/I1290206253"]},{"raw_affiliation_string":"Microsoft research#TAB#","institution_ids":["https://openalex.org/I1290206253"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5091194125","display_name":"Michael Carbin","orcid":"https://orcid.org/0000-0002-6928-0456","observed_orcids":["https://orcid.org/0000-0002-6928-0456"]},"institutions":[{"id":"https://openalex.org/I97018004","display_name":"Stanford University","ror":"https://ror.org/00f54p054","country_code":"US","type":"education","lineage":["https://openalex.org/I97018004"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Michael Carbin","raw_affiliation_strings":["Stanford University"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Stanford University","institution_ids":["https://openalex.org/I97018004"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5089781126","display_name":"James R. Larus","orcid":"https://orcid.org/0000-0002-5820-2524","observed_orcids":["https://orcid.org/0000-0002-5820-2524"]},"institutions":[{"id":"https://openalex.org/I1290206253","display_name":"Microsoft (United States)","ror":"https://ror.org/00d0nc645","country_code":"US","type":"company","lineage":["https://openalex.org/I1290206253"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"James R. Larus","raw_affiliation_strings":["Microsoft Research","Microsoft research#TAB#"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Microsoft Research","institution_ids":["https://openalex.org/I1290206253"]},{"raw_affiliation_string":"Microsoft research#TAB#","institution_ids":["https://openalex.org/I1290206253"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":3.0346,"has_fulltext":false,"cited_by_count":46,"citation_normalized_percentile":{"value":0.92408236,"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":"275","last_page":"284"},"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.9707000255584717,"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.9707000255584717,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.014499999582767487,"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.006300000008195639,"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/code-generation","display_name":"code generation","score":0.7429999709129333},{"id":"https://openalex.org/keywords/pattern-matching","display_name":"pattern matching","score":0.6940000057220459},{"id":"https://openalex.org/keywords/templates","display_name":"templates","score":0.6639999747276306},{"id":"https://openalex.org/keywords/transforms","display_name":"transforms","score":0.621999979019165},{"id":"https://openalex.org/keywords/software-inspection","display_name":"software inspection","score":0.48399999737739563},{"id":"https://openalex.org/keywords/metadata","display_name":"metadata","score":0.6209999918937683},{"id":"https://openalex.org/keywords/type-safety","display_name":"type safety","score":0.8130000233650208},{"id":"https://openalex.org/keywords/java-reflection","display_name":"Java reflection","score":0.42500001192092896}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6492891907691956}],"mesh":[],"locations_count":3,"locations":[{"id":"doi:10.1145/1173706.1173748","doi":"https://doi.org/10.1145/1173706.1173748","is_oa":false,"landing_page_url":"https://doi.org/10.1145/1173706.1173748","pdf_url":null,"source":{"id":"https://openalex.org/S7407086978","display_name":"International Conference on Generative Programming and Component Engineering (GPCE)","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 5th international conference on Generative programming and component engineering","raw_type":"proceedings-article"},{"id":"pmh:oai:CiteSeerX.psu:10.1.1.73.1062","doi":null,"is_oa":false,"landing_page_url":"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.73.1062","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"http://people.csail.mit.edu/mcarbin/papers/gpce06.pdf","raw_type":"text"},{"id":"pmh:oai:infoscience.tind.io:192840","doi":null,"is_oa":true,"landing_page_url":"http://infoscience.epfl.ch/record/192840","pdf_url":null,"source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I5124864","host_organization_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","host_organization_lineage":["https://openalex.org/I5124864"],"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":"http://infoscience.epfl.ch/record/192840","raw_type":"Text"}],"best_oa_location":{"id":"pmh:oai:infoscience.tind.io:192840","doi":null,"is_oa":true,"landing_page_url":"http://infoscience.epfl.ch/record/192840","pdf_url":null,"source":{"id":"https://openalex.org/S4306400487","display_name":"Infoscience (Ecole Polytechnique F\u00e9d\u00e9rale de Lausanne)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":"https://openalex.org/I5124864","host_organization_name":"\u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne","host_organization_lineage":["https://openalex.org/I5124864"],"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":"http://infoscience.epfl.ch/record/192840","raw_type":"Text"},"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":23,"referenced_works":["https://openalex.org/W1527793496","https://openalex.org/W1610570299","https://openalex.org/W1864473657","https://openalex.org/W1963538417","https://openalex.org/W1974727660","https://openalex.org/W1978220811","https://openalex.org/W1995213245","https://openalex.org/W2007774531","https://openalex.org/W2011194979","https://openalex.org/W2026586474","https://openalex.org/W2029360780","https://openalex.org/W2029414465","https://openalex.org/W2038442738","https://openalex.org/W2048423324","https://openalex.org/W2066038668","https://openalex.org/W2096314727","https://openalex.org/W2127600624","https://openalex.org/W2160268991","https://openalex.org/W2169317663","https://openalex.org/W2488377087","https://openalex.org/W2911524086","https://openalex.org/W3162918618","https://openalex.org/W4231636159"],"related_works":["https://openalex.org/W6996220059","https://openalex.org/W2096768870","https://openalex.org/W2006600025","https://openalex.org/W4210565982","https://openalex.org/W7052402143","https://openalex.org/W7097556669","https://openalex.org/W2592078967","https://openalex.org/W7100255197","https://openalex.org/W4394661567","https://openalex.org/W2148543661"],"abstract_inverted_index":{"Runtime":[0],"reflection":[1,39,53,86,164],"facilities,":[2],"as":[3,17,19],"present":[4],"in":[5,41,149,173],"Java":[6,42],"and.NET,":[7],"are":[8],"powerful":[9],"mechanisms":[10],"for":[11,133],"inspecting":[12],"existing":[13],"code":[14,22,70,75,87,95,102,148,177],"and":[15,23,65,94,96,146,153,166,178,185],"metadata,":[16],"well":[18],"generating":[20],"new":[21,92],"metadata":[24,63,93,179],"on":[25,47],"the":[26,58,66,81,97,100,158,161,168,175],"fly.":[27],"Such":[28],"power":[29],"does":[30],"come":[31],"at":[32,157],"a":[33,45,111,120,134,138,150],"high":[34],"price":[35],"though.":[36],"The":[37],"runtime":[38,124],"support":[40],"and.NET":[43],"imposes":[44],"cost":[46],"all":[48,62],"programs,":[49],"whether":[50],"they":[51],"use":[52],"or":[54,90],"not,":[55],"simply":[56],"by":[57],"necessity":[59],"of":[60,72,83,113,163,170,189],"keeping":[61],"around":[64],"inability":[67],"to":[68,88,143,182],"optimize":[69],"because":[71],"future":[73],"possible":[74],"changes.":[76],"A":[77],"second\u2014often":[78],"overlooked\u2014cost":[79],"is":[80,103,180],"difficulty":[82],"writing":[84],"correct":[85],"inspect":[89],"emit":[91],"risk":[98],"that":[99,115,140,174],"emitted":[101],"not":[104],"well-formed.":[105],"In":[106],"this":[107],"paper":[108],"we":[109,127],"examine":[110],"subclass":[112],"problems":[114],"can":[116],"be":[117,183],"addressed":[118],"using":[119],"simpler":[121],"mechanism":[122],"than":[123],"reflection,":[125],"which":[126],"call":[128],"compile-time":[129],"reflection.":[130],"We":[131],"argue":[132],"high-level":[135],"construct":[136],"called":[137],"transform":[139],"allows":[141],"programmers":[142],"write":[144],"inspection":[145],"generation":[147],"pattern":[151],"matching":[152],"template":[154],"style,":[155],"avoiding":[156],"same":[159],"time":[160],"complexities":[162],"APIs":[165],"providing":[167],"benefits":[169],"staged":[171],"compilation":[172],"generated":[176],"known":[181],"well-formed":[184],"type":[186],"safe":[187],"ahead":[188],"time.":[190]},"counts_by_year":[{"year":2019,"cited_by_count":3},{"year":2017,"cited_by_count":1},{"year":2014,"cited_by_count":4},{"year":2013,"cited_by_count":2},{"year":2012,"cited_by_count":3}],"updated_date":"2026-11-12T12:28:57.059296","created_date":"2016-06-24T00:00:00"}
