{"id":"https://openalex.org/W2741376011","doi":"https://doi.org/10.1145/3106237.3106283","title":"Kmax: finding all configurations of Kbuild makefiles statically","display_name":"Kmax: finding all configurations of Kbuild makefiles statically","publication_year":2017,"publication_date":"2017-08-02","ids":{"openalex":"https://openalex.org/W2741376011","doi":"https://doi.org/10.1145/3106237.3106283","mag":"2741376011"},"language":"en","primary_location":{"id":"doi:10.1145/3106237.3106283","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3106237.3106283","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2017 11th Joint Meeting 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/A5016175378","display_name":"Paul Gazzillo","orcid":"https://orcid.org/0000-0003-1425-8873"},"institutions":[{"id":"https://openalex.org/I32971472","display_name":"Yale University","ror":"https://ror.org/03v76x132","country_code":"US","type":"education","lineage":["https://openalex.org/I32971472"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Paul Gazzillo","raw_affiliation_strings":["Yale University, USA"],"affiliations":[{"raw_affiliation_string":"Yale University, USA","institution_ids":["https://openalex.org/I32971472"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5016175378"],"corresponding_institution_ids":["https://openalex.org/I32971472"],"apc_list":null,"apc_paid":null,"fwci":5.3199,"has_fulltext":false,"cited_by_count":27,"citation_normalized_percentile":{"value":0.96023517,"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":"279","last_page":"290"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9998999834060669,"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.9998999834060669,"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/T10639","display_name":"Advanced Software Engineering Methodologies","score":0.9991000294685364,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9991000294685364,"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/computer-science","display_name":"Computer science","score":0.7735469937324524},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.5255022048950195},{"id":"https://openalex.org/keywords/reverse-engineering","display_name":"Reverse engineering","score":0.49039554595947266},{"id":"https://openalex.org/keywords/feature","display_name":"Feature (linguistics)","score":0.4882502853870392},{"id":"https://openalex.org/keywords/overhead","display_name":"Overhead (engineering)","score":0.451416015625},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.43534982204437256},{"id":"https://openalex.org/keywords/heuristics","display_name":"Heuristics","score":0.43153858184814453},{"id":"https://openalex.org/keywords/software-system","display_name":"Software system","score":0.42659008502960205},{"id":"https://openalex.org/keywords/static-analysis","display_name":"Static analysis","score":0.42238831520080566},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.3516591191291809},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.15049421787261963}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7735469937324524},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.5255022048950195},{"id":"https://openalex.org/C207850805","wikidata":"https://www.wikidata.org/wiki/Q269608","display_name":"Reverse engineering","level":2,"score":0.49039554595947266},{"id":"https://openalex.org/C2776401178","wikidata":"https://www.wikidata.org/wiki/Q12050496","display_name":"Feature (linguistics)","level":2,"score":0.4882502853870392},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.451416015625},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.43534982204437256},{"id":"https://openalex.org/C127705205","wikidata":"https://www.wikidata.org/wiki/Q5748245","display_name":"Heuristics","level":2,"score":0.43153858184814453},{"id":"https://openalex.org/C149091818","wikidata":"https://www.wikidata.org/wiki/Q2429814","display_name":"Software system","level":3,"score":0.42659008502960205},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.42238831520080566},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.3516591191291809},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.15049421787261963},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","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}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3106237.3106283","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3106237.3106283","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"score":0.5199999809265137,"display_name":"Industry, innovation and infrastructure","id":"https://metadata.un.org/sdg/9"}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":56,"referenced_works":["https://openalex.org/W30803841","https://openalex.org/W66489457","https://openalex.org/W1547743088","https://openalex.org/W1561032926","https://openalex.org/W1809751277","https://openalex.org/W1966982815","https://openalex.org/W1983306745","https://openalex.org/W1999296854","https://openalex.org/W2003113483","https://openalex.org/W2006617204","https://openalex.org/W2009093319","https://openalex.org/W2009288394","https://openalex.org/W2009489720","https://openalex.org/W2009982135","https://openalex.org/W2043100293","https://openalex.org/W2048064553","https://openalex.org/W2048848542","https://openalex.org/W2049599421","https://openalex.org/W2053362126","https://openalex.org/W2060239975","https://openalex.org/W2075309900","https://openalex.org/W2077436409","https://openalex.org/W2079105093","https://openalex.org/W2092858671","https://openalex.org/W2096449544","https://openalex.org/W2097146584","https://openalex.org/W2098345837","https://openalex.org/W2102863244","https://openalex.org/W2115771296","https://openalex.org/W2120951650","https://openalex.org/W2123763923","https://openalex.org/W2136601052","https://openalex.org/W2146146776","https://openalex.org/W2147671787","https://openalex.org/W2148965601","https://openalex.org/W2149155803","https://openalex.org/W2149802898","https://openalex.org/W2151725765","https://openalex.org/W2153684747","https://openalex.org/W2157771728","https://openalex.org/W2162422574","https://openalex.org/W2165448973","https://openalex.org/W2169622310","https://openalex.org/W2251360670","https://openalex.org/W2261238734","https://openalex.org/W2294668324","https://openalex.org/W2511206070","https://openalex.org/W2553615676","https://openalex.org/W2618435232","https://openalex.org/W3004291881","https://openalex.org/W3151121979","https://openalex.org/W4206358530","https://openalex.org/W4237492309","https://openalex.org/W4237541904","https://openalex.org/W4244639453","https://openalex.org/W4245921527"],"related_works":["https://openalex.org/W2363831530","https://openalex.org/W2280422768","https://openalex.org/W3143197806","https://openalex.org/W4252555497","https://openalex.org/W2363845219","https://openalex.org/W3121175838","https://openalex.org/W3016293053","https://openalex.org/W2381057835","https://openalex.org/W2401723157","https://openalex.org/W1789649838"],"abstract_inverted_index":{"Feature-oriented":[0],"software":[1],"design":[2],"is":[3,63,76,107,180,199],"a":[4,96,108],"useful":[5],"paradigm":[6],"for":[7,60,103,131],"building":[8],"and":[9,20,31,40,70,101,124,167,177,189,203,209],"reasoning":[10],"about":[11],"highly-configurable":[12],"software.":[13],"By":[14],"making":[15,142],"variability":[16,90,110],"explicit,":[17],"feature-oriented":[18],"tools":[19],"languages":[21],"make":[22],"program":[23],"analysis":[24,99,111,144],"tasks":[25],"easier,":[26],"such":[27,36,47],"as":[28,37,48],"bug-finding,":[29],"maintenance,":[30],"more.":[32],"But":[33],"critical":[34],"software,":[35],"Linux,":[38],"coreboot,":[39],"BusyBox":[41,168],"rely":[42],"instead":[43],"on":[44,164],"brittle":[45],"tools,":[46],"Makefiles,":[49],"to":[50,138,173,184,195],"encode":[51],"variability,":[52],"impeding":[53],"variability-aware":[54],"tool":[55,102,183],"development.":[56],"Summarizing":[57],"Makefile":[58],"behavior":[59],"all":[61,74,132,186],"configurations":[62,75,191],"difficult,":[64],"because":[65],"Makefiles":[66,149],"have":[67],"unusual":[68],"semantics,":[69],"exhaustive":[71],"enumeration":[72],"of":[73,87,118,162],"intractable":[77],"in":[78,91],"practice.":[79],"Existing":[80],"approaches":[81],"use":[82],"ad-hoc":[83],"heuristics,":[84],"missing":[85],"much":[86],"the":[88,139,151,165,181],"encoded":[89],"Makefiles.":[92,105],"We":[93],"present":[94],"Kmax,":[95],"new":[97],"static":[98],"algorithm":[100],"Kbuild":[104,152],"It":[106,179],"family-based":[109],"algorithm,":[112],"where":[113],"paths":[114],"are":[115],"Boolean":[116],"expressions":[117],"configuration":[119,136],"options,":[120],"called":[121],"reaching":[122],"configurations,":[123],"its":[125],"abstract":[126],"state":[127],"enumerates":[128],"string":[129],"values":[130],"configurations.":[133],"Kmax":[134,163,198],"localizes":[135],"explosion":[137],"statement":[140],"level,":[141],"precise":[143],"tractable.":[145],"The":[146],"implementation":[147],"analyzes":[148],"from":[150,192],"build":[153,169],"system":[154],"used":[155],"by":[156],"several":[157],"low-level":[158],"systems":[159,170],"projects.":[160],"Evaluation":[161],"Linux":[166],"shows":[171],"it":[172],"be":[174],"accurate,":[175],"precise,":[176,204],"fast.":[178],"first":[182],"collect":[185],"source":[187],"files":[188],"their":[190],"Linux.":[193],"Compared":[194],"previous":[196],"approaches,":[197],"far":[200],"more":[201],"accurate":[202],"performs":[205],"with":[206],"little":[207],"overhead,":[208],"scales":[210],"better.":[211]},"counts_by_year":[{"year":2025,"cited_by_count":4},{"year":2024,"cited_by_count":4},{"year":2023,"cited_by_count":1},{"year":2022,"cited_by_count":4},{"year":2021,"cited_by_count":3},{"year":2020,"cited_by_count":3},{"year":2019,"cited_by_count":4},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
