{"id":"https://openalex.org/W4303450757","doi":"https://doi.org/10.1145/3565971","title":"Code Search: A Survey of Techniques for Finding Code","display_name":"Code Search: A Survey of Techniques for Finding Code","publication_year":2022,"publication_date":"2022-10-12","ids":{"openalex":"https://openalex.org/W4303450757","doi":"https://doi.org/10.1145/3565971"},"language":"en","primary_location":{"id":"doi:10.1145/3565971","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3565971","pdf_url":null,"source":{"id":"https://openalex.org/S157921468","display_name":"ACM Computing Surveys","issn_l":"0360-0300","issn":["0360-0300","1557-7341"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Computing Surveys","raw_type":"journal-article"},"type":"review","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/A5029745565","display_name":"Luca Di Grazia","orcid":"https://orcid.org/0000-0002-5306-8645"},"institutions":[{"id":"https://openalex.org/I100066346","display_name":"University of Stuttgart","ror":"https://ror.org/04vnq7t77","country_code":"DE","type":"education","lineage":["https://openalex.org/I100066346"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Luca Di Grazia","raw_affiliation_strings":["Department of Computer Science, University of Stuttgart, Germany"],"raw_orcid":"https://orcid.org/0000-0002-5306-8645","affiliations":[{"raw_affiliation_string":"Department of Computer Science, University of Stuttgart, Germany","institution_ids":["https://openalex.org/I100066346"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5013438083","display_name":"Michael Pradel","orcid":"https://orcid.org/0000-0003-1623-498X"},"institutions":[{"id":"https://openalex.org/I100066346","display_name":"University of Stuttgart","ror":"https://ror.org/04vnq7t77","country_code":"DE","type":"education","lineage":["https://openalex.org/I100066346"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Michael Pradel","raw_affiliation_strings":["Department of Computer Science, University of Stuttgart, Germany"],"raw_orcid":"https://orcid.org/0000-0003-1623-498X","affiliations":[{"raw_affiliation_string":"Department of Computer Science, University of Stuttgart, Germany","institution_ids":["https://openalex.org/I100066346"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":16.2519,"has_fulltext":false,"cited_by_count":56,"citation_normalized_percentile":{"value":0.99134083,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":100},"biblio":{"volume":"55","issue":"11","first_page":"1","last_page":"31"},"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/T12016","display_name":"Web Data Mining and Analysis","score":0.9987000226974487,"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/T10743","display_name":"Software Testing and Debugging Techniques","score":0.9944999814033508,"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.8751834034919739},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.6569469571113586},{"id":"https://openalex.org/keywords/kpi-driven-code-analysis","display_name":"KPI-driven code analysis","score":0.636414647102356},{"id":"https://openalex.org/keywords/search-engine-indexing","display_name":"Search engine indexing","score":0.5932341814041138},{"id":"https://openalex.org/keywords/code-reuse","display_name":"Code reuse","score":0.5505830645561218},{"id":"https://openalex.org/keywords/code-review","display_name":"Code review","score":0.536107063293457},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.5253593325614929},{"id":"https://openalex.org/keywords/static-program-analysis","display_name":"Static program analysis","score":0.5112535953521729},{"id":"https://openalex.org/keywords/reuse","display_name":"Reuse","score":0.5010902881622314},{"id":"https://openalex.org/keywords/information-retrieval","display_name":"Information retrieval","score":0.45937809348106384},{"id":"https://openalex.org/keywords/rank","display_name":"Rank (graph theory)","score":0.45435866713523865},{"id":"https://openalex.org/keywords/redundant-code","display_name":"Redundant code","score":0.44947925209999084},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.41579878330230713},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.3635343313217163},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3500470221042633},{"id":"https://openalex.org/keywords/software-development","display_name":"Software development","score":0.26197075843811035},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.19418615102767944},{"id":"https://openalex.org/keywords/computer-security","display_name":"Computer security","score":0.08906331658363342}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8751834034919739},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.6569469571113586},{"id":"https://openalex.org/C121957198","wikidata":"https://www.wikidata.org/wiki/Q14365593","display_name":"KPI-driven code analysis","level":5,"score":0.636414647102356},{"id":"https://openalex.org/C75165309","wikidata":"https://www.wikidata.org/wiki/Q2258979","display_name":"Search engine indexing","level":2,"score":0.5932341814041138},{"id":"https://openalex.org/C2778583558","wikidata":"https://www.wikidata.org/wiki/Q771245","display_name":"Code reuse","level":3,"score":0.5505830645561218},{"id":"https://openalex.org/C150292731","wikidata":"https://www.wikidata.org/wiki/Q1342704","display_name":"Code review","level":5,"score":0.536107063293457},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.5253593325614929},{"id":"https://openalex.org/C137287247","wikidata":"https://www.wikidata.org/wiki/Q1329550","display_name":"Static program analysis","level":4,"score":0.5112535953521729},{"id":"https://openalex.org/C206588197","wikidata":"https://www.wikidata.org/wiki/Q846574","display_name":"Reuse","level":2,"score":0.5010902881622314},{"id":"https://openalex.org/C23123220","wikidata":"https://www.wikidata.org/wiki/Q816826","display_name":"Information retrieval","level":1,"score":0.45937809348106384},{"id":"https://openalex.org/C164226766","wikidata":"https://www.wikidata.org/wiki/Q7293202","display_name":"Rank (graph theory)","level":2,"score":0.45435866713523865},{"id":"https://openalex.org/C151578736","wikidata":"https://www.wikidata.org/wiki/Q1251793","display_name":"Redundant code","level":4,"score":0.44947925209999084},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.41579878330230713},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.3635343313217163},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3500470221042633},{"id":"https://openalex.org/C529173508","wikidata":"https://www.wikidata.org/wiki/Q638608","display_name":"Software development","level":3,"score":0.26197075843811035},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.19418615102767944},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.08906331658363342},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"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/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C18903297","wikidata":"https://www.wikidata.org/wiki/Q7150","display_name":"Ecology","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3565971","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3565971","pdf_url":null,"source":{"id":"https://openalex.org/S157921468","display_name":"ACM Computing Surveys","issn_l":"0360-0300","issn":["0360-0300","1557-7341"],"is_oa":false,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"ACM Computing Surveys","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":113,"referenced_works":["https://openalex.org/W1539495021","https://openalex.org/W1588986231","https://openalex.org/W1644882639","https://openalex.org/W1660714679","https://openalex.org/W1951734032","https://openalex.org/W1965636883","https://openalex.org/W1971132977","https://openalex.org/W1977971855","https://openalex.org/W1984184199","https://openalex.org/W1986541713","https://openalex.org/W1993786160","https://openalex.org/W2002219703","https://openalex.org/W2008164297","https://openalex.org/W2008693679","https://openalex.org/W2019374535","https://openalex.org/W2022922578","https://openalex.org/W2026608875","https://openalex.org/W2060055745","https://openalex.org/W2065053490","https://openalex.org/W2066636486","https://openalex.org/W2068632118","https://openalex.org/W2070473038","https://openalex.org/W2080579313","https://openalex.org/W2084887015","https://openalex.org/W2088367430","https://openalex.org/W2100591395","https://openalex.org/W2106763308","https://openalex.org/W2111909698","https://openalex.org/W2115052242","https://openalex.org/W2122599295","https://openalex.org/W2123570619","https://openalex.org/W2123955623","https://openalex.org/W2134092629","https://openalex.org/W2139374478","https://openalex.org/W2141422241","https://openalex.org/W2151135734","https://openalex.org/W2151298976","https://openalex.org/W2151996389","https://openalex.org/W2152397470","https://openalex.org/W2154021641","https://openalex.org/W2158696395","https://openalex.org/W2164961799","https://openalex.org/W2169952536","https://openalex.org/W2170460608","https://openalex.org/W2175297521","https://openalex.org/W2176566274","https://openalex.org/W2201986180","https://openalex.org/W2298313545","https://openalex.org/W2342696155","https://openalex.org/W2420370654","https://openalex.org/W2534712034","https://openalex.org/W2547932336","https://openalex.org/W2548627465","https://openalex.org/W2585840180","https://openalex.org/W2604272474","https://openalex.org/W2739978563","https://openalex.org/W2751343396","https://openalex.org/W2795562547","https://openalex.org/W2805788202","https://openalex.org/W2808275365","https://openalex.org/W2809270416","https://openalex.org/W2886776702","https://openalex.org/W2888651608","https://openalex.org/W2900622615","https://openalex.org/W2902938971","https://openalex.org/W2911270308","https://openalex.org/W2912647675","https://openalex.org/W2913273467","https://openalex.org/W2913334895","https://openalex.org/W2913668833","https://openalex.org/W2930957955","https://openalex.org/W2944123291","https://openalex.org/W2954628458","https://openalex.org/W2956048495","https://openalex.org/W2963921594","https://openalex.org/W2968179027","https://openalex.org/W2997835522","https://openalex.org/W2998907024","https://openalex.org/W3000141146","https://openalex.org/W3008733198","https://openalex.org/W3011088748","https://openalex.org/W3093604544","https://openalex.org/W3094700537","https://openalex.org/W3098605233","https://openalex.org/W3099636232","https://openalex.org/W3104874136","https://openalex.org/W3105540914","https://openalex.org/W3121414853","https://openalex.org/W3126675481","https://openalex.org/W3161535705","https://openalex.org/W3167900421","https://openalex.org/W3174145130","https://openalex.org/W3176015924","https://openalex.org/W3199225770","https://openalex.org/W3217448992","https://openalex.org/W4205386858","https://openalex.org/W4206312123","https://openalex.org/W4213412050","https://openalex.org/W4225791314","https://openalex.org/W4234552385","https://openalex.org/W4239249613","https://openalex.org/W4239277337","https://openalex.org/W4241197470","https://openalex.org/W4243235114","https://openalex.org/W4244536387","https://openalex.org/W4246297465","https://openalex.org/W4246553962","https://openalex.org/W4250678240","https://openalex.org/W4284679990","https://openalex.org/W4287025935","https://openalex.org/W4312691533","https://openalex.org/W6685622690","https://openalex.org/W6799396147"],"related_works":["https://openalex.org/W2969257295","https://openalex.org/W2390085541","https://openalex.org/W2034209539","https://openalex.org/W2157322365","https://openalex.org/W2938801257","https://openalex.org/W4389650601","https://openalex.org/W4239921077","https://openalex.org/W2390554102","https://openalex.org/W3014537293","https://openalex.org/W2565892306"],"abstract_inverted_index":{"The":[0],"immense":[1],"amounts":[2],"of":[3,18,64,73,84,117,126,136],"source":[4],"code":[5,19,41,53,67,87,118],"provide":[6],"ample":[7],"challenges":[8,74,137],"and":[9,75,94,101,104,108,138],"opportunities":[10,139],"during":[11],"software":[12],"development.":[13],"To":[14,45],"handle":[15],"the":[16,82,124,131,144],"size":[17],"bases,":[20],"developers":[21,47],"commonly":[22],"search":[23,54,88,110,119],"for":[24,40,99],"code,":[25,51,103],"e.g.,":[26],"when":[27,38],"trying":[28],"to":[29,43,92,106,140],"find":[30],"where":[31],"a":[32,70],"particular":[33],"feature":[34],"is":[35],"implemented":[36],"or":[37],"looking":[39],"examples":[42],"reuse.":[44],"support":[46],"in":[48,120,143],"finding":[49],"relevant":[50],"various":[52],"engines":[55,89],"have":[56],"been":[57],"proposed.":[58],"This":[59],"article":[60,132],"surveys":[61],"30":[62],"years":[63],"research":[65],"on":[66,123],"search,":[68],"giving":[69],"comprehensive":[71],"overview":[72],"techniques":[76,98],"that":[77,86],"address":[78],"them.":[79],"We":[80],"discuss":[81],"kinds":[83],"queries":[85],"support,":[90],"how":[91],"preprocess":[93],"expand":[95],"queries,":[96],"different":[97],"indexing":[100],"retrieving":[102],"ways":[105],"rank":[107],"prune":[109],"results.":[111],"Moreover,":[112],"we":[113,129],"describe":[114],"empirical":[115],"studies":[116],"practice.":[121],"Based":[122],"discussion":[125],"prior":[127],"work,":[128],"conclude":[130],"with":[133],"an":[134],"outline":[135],"be":[141],"addressed":[142],"future.":[145]},"counts_by_year":[{"year":2026,"cited_by_count":5},{"year":2025,"cited_by_count":22},{"year":2024,"cited_by_count":15},{"year":2023,"cited_by_count":13},{"year":2022,"cited_by_count":1}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
