{"id":"https://openalex.org/W3008200134","doi":"https://doi.org/10.1145/3377555.3377901","title":"Relaxing the one definition rule in interpreted C++","display_name":"Relaxing the one definition rule in interpreted C++","publication_year":2020,"publication_date":"2020-02-22","ids":{"openalex":"https://openalex.org/W3008200134","doi":"https://doi.org/10.1145/3377555.3377901","mag":"3008200134"},"language":"en","primary_location":{"id":"doi:10.1145/3377555.3377901","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3377555.3377901","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 29th International Conference on Compiler Construction","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/A5083517343","display_name":"Javier L\u00f3pez-G\u00f3mez","orcid":null},"institutions":[{"id":"https://openalex.org/I50357001","display_name":"Universidad Carlos III de Madrid","ror":"https://ror.org/03ths8210","country_code":"ES","type":"education","lineage":["https://openalex.org/I50357001"]}],"countries":["ES"],"is_corresponding":false,"raw_author_name":"Javier L\u00f3pez-G\u00f3mez","raw_affiliation_strings":["University Carlos III of Madrid, Spain"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University Carlos III of Madrid, Spain","institution_ids":["https://openalex.org/I50357001"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5030379724","display_name":"Javier Fern\u00e1ndez","orcid":"https://orcid.org/0000-0001-8539-5491"},"institutions":[{"id":"https://openalex.org/I50357001","display_name":"Universidad Carlos III de Madrid","ror":"https://ror.org/03ths8210","country_code":"ES","type":"education","lineage":["https://openalex.org/I50357001"]}],"countries":["ES"],"is_corresponding":false,"raw_author_name":"Javier Fern\u00e1ndez","raw_affiliation_strings":["University Carlos III of Madrid, Spain"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University Carlos III of Madrid, Spain","institution_ids":["https://openalex.org/I50357001"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5011345927","display_name":"David del Rio Astorga","orcid":"https://orcid.org/0000-0003-0611-3332"},"institutions":[{"id":"https://openalex.org/I50357001","display_name":"Universidad Carlos III de Madrid","ror":"https://ror.org/03ths8210","country_code":"ES","type":"education","lineage":["https://openalex.org/I50357001"]}],"countries":["ES"],"is_corresponding":false,"raw_author_name":"David del Rio Astorga","raw_affiliation_strings":["University Carlos III of Madrid, Spain"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University Carlos III of Madrid, Spain","institution_ids":["https://openalex.org/I50357001"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5112580991","display_name":"Vassil Vassilev","orcid":null},"institutions":[{"id":"https://openalex.org/I20089843","display_name":"Princeton University","ror":"https://ror.org/00hx57361","country_code":"US","type":"education","lineage":["https://openalex.org/I20089843"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Vassil Vassilev","raw_affiliation_strings":["Princeton University, USA"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Princeton University, USA","institution_ids":["https://openalex.org/I20089843"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5085497201","display_name":"N. A. Naumann","orcid":"https://orcid.org/0000-0002-4725-0766"},"institutions":[{"id":"https://openalex.org/I67311998","display_name":"European Organization for Nuclear Research","ror":"https://ror.org/01ggx4157","country_code":"CH","type":"facility","lineage":["https://openalex.org/I67311998"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Axel Naumann","raw_affiliation_strings":["CERN, Switzerland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"CERN, Switzerland","institution_ids":["https://openalex.org/I67311998"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5100747301","display_name":"J. Daniel Garc\u00eda","orcid":"https://orcid.org/0000-0002-1873-9706"},"institutions":[{"id":"https://openalex.org/I50357001","display_name":"Universidad Carlos III de Madrid","ror":"https://ror.org/03ths8210","country_code":"ES","type":"education","lineage":["https://openalex.org/I50357001"]}],"countries":["ES"],"is_corresponding":false,"raw_author_name":"J. Daniel Garc\u00eda","raw_affiliation_strings":["University Carlos III of Madrid, Spain"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"University Carlos III of Madrid, Spain","institution_ids":["https://openalex.org/I50357001"]}]}],"institutions":[],"countries_distinct_count":3,"institutions_distinct_count":6,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.3241,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":{"value":0.60535005,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":94,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"212","last_page":"222"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.9988999962806702,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.9988999962806702,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"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.998199999332428,"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/T13650","display_name":"Computational Physics and Python Applications","score":0.9972000122070312,"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/computer-science","display_name":"Computer science","score":0.8199735879898071},{"id":"https://openalex.org/keywords/executable","display_name":"Executable","score":0.7909481525421143},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7299356460571289},{"id":"https://openalex.org/keywords/namespace","display_name":"Namespace","score":0.6859728693962097},{"id":"https://openalex.org/keywords/interpreter","display_name":"Interpreter","score":0.6476883292198181},{"id":"https://openalex.org/keywords/table","display_name":"Table (database)","score":0.6366800665855408},{"id":"https://openalex.org/keywords/usable","display_name":"USable","score":0.6140317320823669},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.5092055201530457},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.4827934503555298},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.4612369239330292},{"id":"https://openalex.org/keywords/declaration","display_name":"Declaration","score":0.4524971842765808},{"id":"https://openalex.org/keywords/translation","display_name":"Translation (biology)","score":0.423210084438324},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3815624713897705},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.36663782596588135},{"id":"https://openalex.org/keywords/database","display_name":"Database","score":0.22977444529533386},{"id":"https://openalex.org/keywords/world-wide-web","display_name":"World Wide Web","score":0.17431634664535522},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.14061108231544495}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8199735879898071},{"id":"https://openalex.org/C160145156","wikidata":"https://www.wikidata.org/wiki/Q778586","display_name":"Executable","level":2,"score":0.7909481525421143},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7299356460571289},{"id":"https://openalex.org/C2778383056","wikidata":"https://www.wikidata.org/wiki/Q873636","display_name":"Namespace","level":2,"score":0.6859728693962097},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.6476883292198181},{"id":"https://openalex.org/C45235069","wikidata":"https://www.wikidata.org/wiki/Q278425","display_name":"Table (database)","level":2,"score":0.6366800665855408},{"id":"https://openalex.org/C2780615836","wikidata":"https://www.wikidata.org/wiki/Q2471869","display_name":"USable","level":2,"score":0.6140317320823669},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.5092055201530457},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4827934503555298},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.4612369239330292},{"id":"https://openalex.org/C138147947","wikidata":"https://www.wikidata.org/wiki/Q1183659","display_name":"Declaration","level":2,"score":0.4524971842765808},{"id":"https://openalex.org/C149364088","wikidata":"https://www.wikidata.org/wiki/Q185917","display_name":"Translation (biology)","level":4,"score":0.423210084438324},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3815624713897705},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.36663782596588135},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.22977444529533386},{"id":"https://openalex.org/C136764020","wikidata":"https://www.wikidata.org/wiki/Q466","display_name":"World Wide Web","level":1,"score":0.17431634664535522},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.14061108231544495},{"id":"https://openalex.org/C185592680","wikidata":"https://www.wikidata.org/wiki/Q2329","display_name":"Chemistry","level":0,"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/C55493867","wikidata":"https://www.wikidata.org/wiki/Q7094","display_name":"Biochemistry","level":1,"score":0.0},{"id":"https://openalex.org/C105580179","wikidata":"https://www.wikidata.org/wiki/Q188928","display_name":"Messenger RNA","level":3,"score":0.0}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3377555.3377901","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3377555.3377901","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 29th International Conference on Compiler Construction","raw_type":"proceedings-article"},{"id":"pmh:oai:cds.cern.ch:2807614","is_oa":false,"landing_page_url":"http://cds.cern.ch/record/2807614","pdf_url":null,"source":{"id":"https://openalex.org/S4306402195","display_name":"CERN Document Server (European Organization for Nuclear Research)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I67311998","host_organization_name":"European Organization for Nuclear Research","host_organization_lineage":["https://openalex.org/I67311998"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":""}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":11,"referenced_works":["https://openalex.org/W649605789","https://openalex.org/W1964071625","https://openalex.org/W2014304376","https://openalex.org/W2097599414","https://openalex.org/W2104266030","https://openalex.org/W2110114082","https://openalex.org/W2115934293","https://openalex.org/W2141255496","https://openalex.org/W2242464395","https://openalex.org/W2963498916","https://openalex.org/W2980225691"],"related_works":["https://openalex.org/W2370740425","https://openalex.org/W2912172084","https://openalex.org/W2295002787","https://openalex.org/W4233446872","https://openalex.org/W3017834062","https://openalex.org/W4205941804","https://openalex.org/W174455462","https://openalex.org/W2142058655","https://openalex.org/W4239878326","https://openalex.org/W4232798715"],"abstract_inverted_index":{"Most":[0],"implementations":[1],"of":[2,14,47,62,73,94,114,146,217,224],"the":[3,23,37,95,106,112,150,163,184,193,225,232],"C++":[4,15,65,74,83,141,147,234],"programming":[5],"language":[6],"generate":[7],"binary":[8],"executable":[9],"code.":[10],"However,":[11],"interpreted":[12],"execution":[13],"sources":[16],"has":[17,30,209,228],"its":[18,218],"own":[19],"use":[20],"cases":[21],"as":[22,195],"Cling":[24,233],"interpreter":[25],"from":[26,36],"CERN's":[27],"ROOT":[28],"project":[29],"shown.":[31],"Some":[32],"limitations":[33],"are":[34,157],"derived":[35],"ODR":[38,55,96,107],"(One":[39],"Definition":[40],"Rule)":[41],"that":[42,90,174,189,208,237],"rules":[43],"out":[44],"multiple":[45],"definitions":[46,173],"entities":[48,75,148],"within":[49],"a":[50,63,85,122,139,201],"single":[51,86],"translation":[52,68,88,164],"unit":[53,89,165],"(TU).":[54],"is":[56,127,168,198,212,240],"there":[57],"to":[58,104,110,116,143,170,186],"ensure":[59],"uniform":[60,71],"view":[61,72],"given":[64,123],"entity":[66],"across":[67],"units.":[69],"Ensuring":[70],"helps":[76],"when":[77],"producing":[78],"ABI":[79],"compatible":[80],"binaries.":[81],"Interpreting":[82],"presumes":[84],"ever-growing":[87],"define":[91],"away":[92],"some":[93],"use-cases.":[97],"Therefore,":[98],"it":[99],"may":[100],"well":[101],"be":[102],"desirable":[103],"relax":[105],"and,":[108],"consequently,":[109],"support":[111],"ability":[113],"developers":[115],"override":[117],"any":[118,205],"existing":[119],"definition":[120,197,207],"for":[121,130],"declaration.":[124],"This":[125],"approach":[126],"especially":[128],"well-suited":[129],"iterative":[131],"prototyping.":[132],"In":[133],"this":[134,181],"paper,":[135],"we":[136],"extend":[137],"Cling,":[138],"Clang/LLVM-based":[140],"interpreter,":[142,235],"enable":[144],"redefinitions":[145],"at":[149],"prompt.":[151],"To":[152],"achieve":[153],"this,":[154],"top-level":[155],"declarations":[156],"nested":[158,199],"into":[159,231],"inline":[160],"namespaces":[161],"and":[162,242],"lookup":[166],"table":[167],"adjusted":[169],"invalidate":[171],"previous":[172,206],"would":[175],"otherwise":[176],"result":[177],"in":[178,200],"ambiguities.":[179],"Formally,":[180],"technique":[182,227,239],"refactors":[183],"code":[185],"an":[187],"equivalent":[188],"does":[190],"not":[191],"violate":[192],"ODR,":[194],"each":[196],"different":[202],"namespace.":[203],"Furthermore,":[204],"been":[210,229],"shadowed":[211],"still":[213],"accessible":[214],"by":[215],"means":[216],"fully-qualified":[219],"name.":[220],"A":[221],"prototype":[222],"implementation":[223],"presented":[226],"integrated":[230],"showing":[236],"our":[238],"feasible":[241],"usable.":[243]},"counts_by_year":[{"year":2023,"cited_by_count":2}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
