{"id":"https://openalex.org/W2102958717","doi":"https://doi.org/10.1145/2635868.2635908","title":"A foundation for refactoring C with macros","display_name":"A foundation for refactoring C with macros","publication_year":2014,"publication_date":"2014-11-04","ids":{"openalex":"https://openalex.org/W2102958717","doi":"https://doi.org/10.1145/2635868.2635908","mag":"2102958717"},"language":"en","primary_location":{"id":"doi:10.1145/2635868.2635908","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2635868.2635908","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software 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/A5049637653","display_name":"Jeffrey Overbey","orcid":null},"institutions":[{"id":"https://openalex.org/I82497590","display_name":"Auburn University","ror":"https://ror.org/02v80fc35","country_code":"US","type":"education","lineage":["https://openalex.org/I82497590"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Jeffrey L. Overbey","raw_affiliation_strings":["Auburn University, USA"],"affiliations":[{"raw_affiliation_string":"Auburn University, USA","institution_ids":["https://openalex.org/I82497590"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5090520110","display_name":"Farnaz Behrang","orcid":null},"institutions":[{"id":"https://openalex.org/I82497590","display_name":"Auburn University","ror":"https://ror.org/02v80fc35","country_code":"US","type":"education","lineage":["https://openalex.org/I82497590"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Farnaz Behrang","raw_affiliation_strings":["Auburn University, USA"],"affiliations":[{"raw_affiliation_string":"Auburn University, USA","institution_ids":["https://openalex.org/I82497590"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5060527236","display_name":"Munawar Hafiz","orcid":null},"institutions":[{"id":"https://openalex.org/I82497590","display_name":"Auburn University","ror":"https://ror.org/02v80fc35","country_code":"US","type":"education","lineage":["https://openalex.org/I82497590"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Munawar Hafiz","raw_affiliation_strings":["Auburn University, USA"],"affiliations":[{"raw_affiliation_string":"Auburn University, USA","institution_ids":["https://openalex.org/I82497590"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5049637653"],"corresponding_institution_ids":["https://openalex.org/I82497590"],"apc_list":null,"apc_paid":null,"fwci":3.1556,"has_fulltext":false,"cited_by_count":8,"citation_normalized_percentile":{"value":0.93010275,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":89,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"75","last_page":"85"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9994000196456909,"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"}},"topics":[{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9994000196456909,"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"}},{"id":"https://openalex.org/T11986","display_name":"Scientific Computing and Data Management","score":0.9965999722480774,"subfield":{"id":"https://openalex.org/subfields/1802","display_name":"Information Systems and Management"},"field":{"id":"https://openalex.org/fields/18","display_name":"Decision Sciences"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}},{"id":"https://openalex.org/T12127","display_name":"Software System Performance and Reliability","score":0.996399998664856,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/code-refactoring","display_name":"Code refactoring","score":0.9774571657180786},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8157474994659424},{"id":"https://openalex.org/keywords/preprocessor","display_name":"Preprocessor","score":0.7771220207214355},{"id":"https://openalex.org/keywords/macro","display_name":"Macro","score":0.7463988065719604},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7410495281219482},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.45063772797584534},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.43617475032806396},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.3593593239784241},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.1198708713054657}],"concepts":[{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.9774571657180786},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8157474994659424},{"id":"https://openalex.org/C34736171","wikidata":"https://www.wikidata.org/wiki/Q918333","display_name":"Preprocessor","level":2,"score":0.7771220207214355},{"id":"https://openalex.org/C166955791","wikidata":"https://www.wikidata.org/wiki/Q629579","display_name":"Macro","level":2,"score":0.7463988065719604},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7410495281219482},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.45063772797584534},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.43617475032806396},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.3593593239784241},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.1198708713054657},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/2635868.2635908","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2635868.2635908","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"}],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":32,"referenced_works":["https://openalex.org/W220935706","https://openalex.org/W1494930385","https://openalex.org/W1495725173","https://openalex.org/W1521332670","https://openalex.org/W1525606436","https://openalex.org/W1536051636","https://openalex.org/W1799141850","https://openalex.org/W1948541244","https://openalex.org/W2009288394","https://openalex.org/W2016954568","https://openalex.org/W2029753690","https://openalex.org/W2043555680","https://openalex.org/W2049599421","https://openalex.org/W2055818134","https://openalex.org/W2058045936","https://openalex.org/W2098664130","https://openalex.org/W2100283823","https://openalex.org/W2101880963","https://openalex.org/W2113157806","https://openalex.org/W2114067856","https://openalex.org/W2119838293","https://openalex.org/W2120789318","https://openalex.org/W2126267752","https://openalex.org/W2133675710","https://openalex.org/W2144344516","https://openalex.org/W2146146776","https://openalex.org/W2147671787","https://openalex.org/W2155483096","https://openalex.org/W2165448973","https://openalex.org/W4246027634","https://openalex.org/W4248387565","https://openalex.org/W6677084613"],"related_works":["https://openalex.org/W4313549863","https://openalex.org/W2072205733","https://openalex.org/W2052246872","https://openalex.org/W1948541244","https://openalex.org/W1525606436","https://openalex.org/W1553115572","https://openalex.org/W194942058","https://openalex.org/W2088986462","https://openalex.org/W4249277012","https://openalex.org/W3081644756"],"abstract_inverted_index":{"This":[0],"paper":[1],"establishes":[2],"the":[3,32,44,64,67,83,97,103,109,138],"concept":[4],"of":[5,66,96,111],"\"preprocessor":[6],"dependences\"":[7],"as":[8,28],"a":[9,37,56,76,80,93],"foundation":[10],"for":[11,63],"building":[12],"automated":[13],"refactoring":[14,104,145],"tools":[15],"that":[16,42,59,137],"transform":[17],"source":[18],"code":[19,84,158],"containing":[20],"lexical":[21],"macros":[22,112],"and":[23,51,86,113,124,154],"conditional":[24,52,114],"compilation":[25,53,115],"directives,":[26],"such":[27],"those":[29],"provided":[30],"by":[31,126],"C":[33,68],"preprocessor.":[34],"We":[35],"define":[36],"preprocessor":[38,69],"dependence":[39],"graph":[40],"(PPDG)":[41],"models":[43],"relationships":[45,58],"among":[46],"macro":[47,49],"definitions,":[48],"invocations,":[50],"directives":[54],"in":[55,108,122,147],"file--the":[57],"must":[60],"be":[61,71],"maintained":[62],"semantics":[65],"to":[70,100,129],"preserved.":[72],"For":[73],"many":[74],"refactorings,":[75],"tool":[77],"can":[78],"construct":[79],"PPDG":[81],"from":[82],"before":[85],"after":[87],"it":[88,142],"is":[89,140],"transformed,":[90],"then":[91],"perform":[92],"linear-time":[94],"comparison":[95],"two":[98],"graphs":[99],"determine":[101],"whether":[102],"will":[105],"operate":[106],"correctly":[107],"presence":[110],"directives.":[116],"The":[117],"proposed":[118],"technique":[119,139],"was":[120],"implemented":[121],"OpenRefactory/C":[123],"tested":[125],"applying":[127],"refactorings":[128],"GNU":[130],"Coreutils":[131],"version":[132],"8.21.":[133],"Empirical":[134],"results":[135],"indicate":[136],"effective;":[141],"successfully":[143],"handled":[144],"scenarios":[146],"which":[148],"Eclipse":[149],"CDT,":[150],"Visual":[151],"Assist":[152],"X,":[153],"XRefactory":[155],"all":[156],"refactored":[157],"incorrectly.":[159]},"counts_by_year":[{"year":2024,"cited_by_count":1},{"year":2020,"cited_by_count":1},{"year":2019,"cited_by_count":1},{"year":2018,"cited_by_count":1},{"year":2017,"cited_by_count":1},{"year":2016,"cited_by_count":2},{"year":2015,"cited_by_count":1}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
