{"id":"https://openalex.org/W126504055","doi":null,"title":"Static computation and reflection","display_name":"Static computation and reflection","publication_year":2008,"publication_date":"2008-01-01","ids":{"openalex":"https://openalex.org/W126504055","mag":"126504055"},"language":"en","primary_location":{"id":"mag:126504055","doi":null,"is_oa":false,"landing_page_url":"https://scholarworks.iu.edu/dspace/bitstream/2022/8278/1/umi-indiana-2294.pdf","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null},"volume":null,"type":"article","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":"https://openalex.org/A5074260102","display_name":"Andrew Lumsdaine","orcid":"https://orcid.org/0000-0002-9153-6622","observed_orcids":["https://orcid.org/0000-0002-9153-6622"]},"institutions":[{"id":"https://openalex.org/I592451","display_name":"Indiana University","ror":"https://ror.org/01kg8sb98","country_code":"US","type":"education","lineage":["https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Andrew Lumsdaine","raw_affiliation_strings":["\u2021Indiana University"],"raw_orcid":"https://orcid.org/0000-0002-9153-6622","affiliations":[{"raw_affiliation_string":"\u2021Indiana University","institution_ids":["https://openalex.org/I592451"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5051937731","display_name":"Ronald Garcia","orcid":"https://orcid.org/0000-0002-0982-1118","observed_orcids":["https://orcid.org/0000-0002-0982-1118"]},"institutions":[{"id":"https://openalex.org/I592451","display_name":"Indiana University","ror":"https://ror.org/01kg8sb98","country_code":"US","type":"education","lineage":["https://openalex.org/I592451"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Ronald Garcia","raw_affiliation_strings":["\u2021Indiana University"],"raw_orcid":"https://orcid.org/0000-0002-0982-1118","affiliations":[{"raw_affiliation_string":"\u2021Indiana University","institution_ids":["https://openalex.org/I592451"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I592451"],"apc_list":null,"apc_paid":null,"fwci":0.6622,"has_fulltext":false,"cited_by_count":3,"citation_normalized_percentile":{"value":0.75335198,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":93,"max":95},"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"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/T11450","display_name":"Model-Driven Software Engineering Techniques","score":0.0,"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.0,"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/template-metaprogramming","display_name":"template metaprogramming","score":0.9890000224113464},{"id":"https://openalex.org/keywords/c","display_name":"C++","score":0.8920000195503235},{"id":"https://openalex.org/keywords/reflection","display_name":"reflection","score":0.6940000057220459},{"id":"https://openalex.org/keywords/type-analysis","display_name":"type analysis","score":0.7860000133514404},{"id":"https://openalex.org/keywords/generative-programming","display_name":"generative programming","score":0.9829999804496765},{"id":"https://openalex.org/keywords/programming-language-design","display_name":"programming language design","score":0.621999979019165},{"id":"https://openalex.org/keywords/core-calculus","display_name":"core calculus","score":0.6740000247955322},{"id":"https://openalex.org/keywords/code-generation","display_name":"code generation","score":0.597000002861023},{"id":"https://openalex.org/keywords/compiler-optimization","display_name":"compiler optimization","score":0.4059999883174896},{"id":"https://openalex.org/keywords/type-systems","display_name":"type systems","score":0.3869999945163727}],"concepts":[{"id":"https://openalex.org/C35390924","wikidata":"https://www.wikidata.org/wiki/Q661075","display_name":"Metaprogramming","level":2,"score":0.9584829807281494},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8630297183990479},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7977722883224487},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.7057957053184509},{"id":"https://openalex.org/C7051814","wikidata":"https://www.wikidata.org/wiki/Q1051282","display_name":"Generic programming","level":2,"score":0.583892822265625},{"id":"https://openalex.org/C135257023","wikidata":"https://www.wikidata.org/wiki/Q691358","display_name":"Domain-specific language","level":2,"score":0.5563303828239441},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.4965830445289612},{"id":"https://openalex.org/C184337299","wikidata":"https://www.wikidata.org/wiki/Q1437428","display_name":"Semantics (computer science)","level":2,"score":0.4762325882911682},{"id":"https://openalex.org/C145428669","wikidata":"https://www.wikidata.org/wiki/Q471748","display_name":"Exception handling","level":2,"score":0.45428940653800964},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.4356389045715332},{"id":"https://openalex.org/C124304363","wikidata":"https://www.wikidata.org/wiki/Q673661","display_name":"Abstraction","level":2,"score":0.4337310791015625},{"id":"https://openalex.org/C65682993","wikidata":"https://www.wikidata.org/wiki/Q1056451","display_name":"Reflection (computer programming)","level":2,"score":0.42566049098968506},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.4221063256263733},{"id":"https://openalex.org/C36503486","wikidata":"https://www.wikidata.org/wiki/Q11235244","display_name":"Domain (mathematical analysis)","level":2,"score":0.4141170382499695},{"id":"https://openalex.org/C200833197","wikidata":"https://www.wikidata.org/wiki/Q333707","display_name":"Compile time","level":3,"score":0.4119122624397278},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.2237415909767151},{"id":"https://openalex.org/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","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/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"mag:126504055","doi":null,"is_oa":false,"landing_page_url":"https://scholarworks.iu.edu/dspace/bitstream/2022/8278/1/umi-indiana-2294.pdf","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":null}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":87,"referenced_works":["https://openalex.org/W25798763","https://openalex.org/W42051484","https://openalex.org/W53500718","https://openalex.org/W70764853","https://openalex.org/W98733118","https://openalex.org/W190038403","https://openalex.org/W1481474677","https://openalex.org/W1484092744","https://openalex.org/W1500250067","https://openalex.org/W1524613989","https://openalex.org/W1532108614","https://openalex.org/W1536203724","https://openalex.org/W1543596436","https://openalex.org/W1546727036","https://openalex.org/W1547017255","https://openalex.org/W1548485674","https://openalex.org/W1551706119","https://openalex.org/W1556604985","https://openalex.org/W1557561422","https://openalex.org/W1562955084","https://openalex.org/W1567903304","https://openalex.org/W1571331450","https://openalex.org/W1572663059","https://openalex.org/W1579220051","https://openalex.org/W1581501197","https://openalex.org/W1595252915","https://openalex.org/W1595372275","https://openalex.org/W1649645444","https://openalex.org/W1651395156","https://openalex.org/W1752645131","https://openalex.org/W1759843179","https://openalex.org/W1777933108","https://openalex.org/W1783388813","https://openalex.org/W1963538417","https://openalex.org/W1996404651","https://openalex.org/W2018364122","https://openalex.org/W2020156556","https://openalex.org/W2029786195","https://openalex.org/W2030749249","https://openalex.org/W2040440925","https://openalex.org/W2040559529","https://openalex.org/W2041042116","https://openalex.org/W2065428406","https://openalex.org/W2065507335","https://openalex.org/W2068465106","https://openalex.org/W2068810256","https://openalex.org/W2073544767","https://openalex.org/W2076988379","https://openalex.org/W2077436409","https://openalex.org/W2081246285","https://openalex.org/W2088735483","https://openalex.org/W2093680667","https://openalex.org/W2096314727","https://openalex.org/W2100673699","https://openalex.org/W2104076942","https://openalex.org/W2108934288","https://openalex.org/W2109507516","https://openalex.org/W2113098044","https://openalex.org/W2116616150","https://openalex.org/W2116918412","https://openalex.org/W2123586642","https://openalex.org/W2128151625","https://openalex.org/W2128224544","https://openalex.org/W2129364310","https://openalex.org/W2133625592","https://openalex.org/W2134342348","https://openalex.org/W2136171121","https://openalex.org/W2144724266","https://openalex.org/W2145691535","https://openalex.org/W2151716725","https://openalex.org/W2152608870","https://openalex.org/W2159400269","https://openalex.org/W2159430067","https://openalex.org/W2160646753","https://openalex.org/W2162883867","https://openalex.org/W2162889701","https://openalex.org/W2166822586","https://openalex.org/W2168374629","https://openalex.org/W2171334441","https://openalex.org/W2171433297","https://openalex.org/W2180471721","https://openalex.org/W2403746331","https://openalex.org/W2546906162","https://openalex.org/W2613359208","https://openalex.org/W2914964273","https://openalex.org/W2992566793","https://openalex.org/W3145454088"],"related_works":["https://openalex.org/W3022244809","https://openalex.org/W7052402143","https://openalex.org/W7098391286","https://openalex.org/W7005517321","https://openalex.org/W3009676122","https://openalex.org/W1530078320","https://openalex.org/W7100644203","https://openalex.org/W2128012221","https://openalex.org/W2100845624","https://openalex.org/W7100079621"],"abstract_inverted_index":{"Most":[0],"programming":[1,91,140,192],"languages":[2],"do":[3],"not":[4],"allow":[5],"programs":[6,27,203],"to":[7,28,50,96,101,161,204],"inspect":[8,206],"their":[9],"static":[10,30,37,143,154],"type":[11,72,145,207],"information":[12],"or":[13],"perform":[14,32,209],"computations":[15],"on":[16,114],"it.":[17],"C++,":[18],"however,":[19],"lets":[20],"programmers":[21],"write":[22],"template":[23,48,86,133,181,199],"metaprograms,":[24],"which":[25],"enable":[26],"encode":[29],"information,":[31,208],"compile-time":[33],"computations,":[34,210],"and":[35,45,59,74,81,93,103,110,129,149,171,211,222],"make":[36],"decisions":[38],"about":[39],"run-time":[40,61],"behavior.":[41],"Many":[42],"C++":[43,71,76,132],"libraries":[44],"applications":[46],"use":[47],"metaprogramming":[49,64,87],"build":[51],"specialized":[52],"abstraction":[53],"mechanisms,":[54],"implement":[55],"domain-specific":[56,153],"safety":[57],"checks,":[58],"improve":[60],"performance.":[62],"\r\nTemplate":[63],"is":[65,79,99,216],"an":[66,228],"emergent":[67],"capability":[68],"of":[69,131,152,180,189,198],"the":[70,75,127,150,177,187,196],"system,":[73],"language":[77,120,215],"specification":[78],"informal":[80],"imprecise.":[82],"As":[83],"a":[84,190,219],"result,":[85],"often":[88,94],"involves":[89],"heroic":[90],"feats":[92],"leads":[95],"code":[97,108],"that":[98,174,201],"difficult":[100],"read":[102],"maintain.":[104],"Furthermore,":[105],"many":[106],"template-based":[107],"generation":[109],"optimization":[111],"techniques":[112,130],"rely":[113],"particular":[115],"compiler":[116],"implementations,":[117],"rather":[118],"than":[119],"semantics,":[121],"for":[122,167],"performance":[123],"gains.":[124],"\r\nMotivated":[125],"by":[126,195],"capabilities":[128,224],"metaprogramming,":[134,200],"this":[135,184],"thesis":[136,185],"documents":[137,158],"some":[138],"common":[139],"patterns,":[141],"including":[142,164],"computation,":[144],"analysis,":[146],"generative":[147],"programming,":[148],"encoding":[151],"checks.":[155],"It":[156],"also":[157],"notable":[159],"shortcomings":[160],"current":[162],"practice,":[163],"limited":[165],"support":[166],"reflection,":[168],"semantic":[169],"ambiguity,":[170],"other":[172],"issues":[173],"arise":[175],"from":[176],"pioneering":[178],"nature":[179],"metaprogramming.":[182],"Finally,":[183],"presents":[186],"design":[188],"foundational":[191],"language,":[193],"motivated":[194],"analysis":[197],"allows":[202],"statically":[205],"generate":[212],"code.":[213],"The":[214],"specified":[217],"as":[218],"core":[220],"calculus":[221],"its":[223],"are":[225],"presented":[226],"in":[227],"idealized":[229],"setting.":[230]},"counts_by_year":[{"year":2014,"cited_by_count":2}],"updated_date":"2026-11-04T10:54:05.112534","created_date":"2016-06-24T00:00:00"}
