{"id":"https://openalex.org/W2902618648","doi":"https://doi.org/10.1145/3360578","title":"Aroma: code recommendation via structural code search","display_name":"Aroma: code recommendation via structural code search","publication_year":2019,"publication_date":"2019-10-10","ids":{"openalex":"https://openalex.org/W2902618648","doi":"https://doi.org/10.1145/3360578","mag":"2902618648"},"language":"en","primary_location":{"id":"doi:10.1145/3360578","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3360578","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3360578","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"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":"cc-by-sa","license_id":"https://openalex.org/licenses/cc-by-sa","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3360578","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Sifei Luan","orcid":null},"institutions":[{"id":"https://openalex.org/I4210114444","display_name":"Meta (United States)","ror":"https://ror.org/01zbnvs85","country_code":"US","type":"company","lineage":["https://openalex.org/I4210114444"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Sifei Luan","raw_affiliation_strings":["Facebook, USA"],"affiliations":[{"raw_affiliation_string":"Facebook, USA","institution_ids":["https://openalex.org/I4210114444"]}]},{"author_position":"middle","author":{"id":null,"display_name":"Di Yang","orcid":null},"institutions":[{"id":"https://openalex.org/I204250578","display_name":"University of California, Irvine","ror":"https://ror.org/04gyf1771","country_code":"US","type":"education","lineage":["https://openalex.org/I204250578"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Di Yang","raw_affiliation_strings":["University of California at Irvine, USA"],"affiliations":[{"raw_affiliation_string":"University of California at Irvine, USA","institution_ids":["https://openalex.org/I204250578"]}]},{"author_position":"middle","author":{"id":null,"display_name":"Celeste Barnaby","orcid":null},"institutions":[{"id":"https://openalex.org/I4210114444","display_name":"Meta (United States)","ror":"https://ror.org/01zbnvs85","country_code":"US","type":"company","lineage":["https://openalex.org/I4210114444"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Celeste Barnaby","raw_affiliation_strings":["Facebook, USA"],"affiliations":[{"raw_affiliation_string":"Facebook, USA","institution_ids":["https://openalex.org/I4210114444"]}]},{"author_position":"middle","author":{"id":null,"display_name":"Koushik Sen","orcid":null},"institutions":[{"id":"https://openalex.org/I95457486","display_name":"University of California, Berkeley","ror":"https://ror.org/01an7q238","country_code":"US","type":"education","lineage":["https://openalex.org/I95457486"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Koushik Sen","raw_affiliation_strings":["University of California at Berkeley, USA"],"affiliations":[{"raw_affiliation_string":"University of California at Berkeley, USA","institution_ids":["https://openalex.org/I95457486"]}]},{"author_position":"last","author":{"id":null,"display_name":"Satish Chandra","orcid":null},"institutions":[{"id":"https://openalex.org/I4210114444","display_name":"Meta (United States)","ror":"https://ror.org/01zbnvs85","country_code":"US","type":"company","lineage":["https://openalex.org/I4210114444"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Satish Chandra","raw_affiliation_strings":["Facebook, USA"],"affiliations":[{"raw_affiliation_string":"Facebook, USA","institution_ids":["https://openalex.org/I4210114444"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":5,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I4210114444"],"apc_list":null,"apc_paid":null,"fwci":18.9996,"has_fulltext":true,"cited_by_count":99,"citation_normalized_percentile":{"value":0.99222669,"is_in_top_1_percent":true,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":98,"max":100},"biblio":{"volume":"3","issue":"OOPSLA","first_page":"1","last_page":"28"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9736999869346619,"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.9736999869346619,"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.008700000122189522,"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/T10533","display_name":"Teaching and Learning Programming","score":0.0031999999191612005,"subfield":{"id":"https://openalex.org/subfields/1706","display_name":"Computer Science Applications"},"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/snippet","display_name":"Snippet","score":0.8467000126838684},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.7020000219345093},{"id":"https://openalex.org/keywords/redundant-code","display_name":"Redundant code","score":0.6592000126838684},{"id":"https://openalex.org/keywords/object-code","display_name":"Object code","score":0.5282999873161316},{"id":"https://openalex.org/keywords/unreachable-code","display_name":"Unreachable code","score":0.520799994468689},{"id":"https://openalex.org/keywords/dead-code","display_name":"Dead code","score":0.5099999904632568},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.47029998898506165},{"id":"https://openalex.org/keywords/source-code","display_name":"Source code","score":0.4514000117778778},{"id":"https://openalex.org/keywords/plug-in","display_name":"Plug-in","score":0.3971000015735626}],"concepts":[{"id":"https://openalex.org/C2777822670","wikidata":"https://www.wikidata.org/wiki/Q1120538","display_name":"Snippet","level":2,"score":0.8467000126838684},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.838699996471405},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.7020000219345093},{"id":"https://openalex.org/C151578736","wikidata":"https://www.wikidata.org/wiki/Q1251793","display_name":"Redundant code","level":4,"score":0.6592000126838684},{"id":"https://openalex.org/C154526789","wikidata":"https://www.wikidata.org/wiki/Q157965","display_name":"Object code","level":4,"score":0.5282999873161316},{"id":"https://openalex.org/C50951305","wikidata":"https://www.wikidata.org/wiki/Q2482534","display_name":"Unreachable code","level":5,"score":0.520799994468689},{"id":"https://openalex.org/C23123220","wikidata":"https://www.wikidata.org/wiki/Q816826","display_name":"Information retrieval","level":1,"score":0.510200023651123},{"id":"https://openalex.org/C47434764","wikidata":"https://www.wikidata.org/wiki/Q1770035","display_name":"Dead code","level":5,"score":0.5099999904632568},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.4934000074863434},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.47029998898506165},{"id":"https://openalex.org/C43126263","wikidata":"https://www.wikidata.org/wiki/Q128751","display_name":"Source code","level":2,"score":0.4514000117778778},{"id":"https://openalex.org/C4924752","wikidata":"https://www.wikidata.org/wiki/Q184148","display_name":"Plug-in","level":2,"score":0.3971000015735626},{"id":"https://openalex.org/C121957198","wikidata":"https://www.wikidata.org/wiki/Q14365593","display_name":"KPI-driven code analysis","level":5,"score":0.38179999589920044},{"id":"https://openalex.org/C150292731","wikidata":"https://www.wikidata.org/wiki/Q1342704","display_name":"Code review","level":5,"score":0.37450000643730164},{"id":"https://openalex.org/C70992990","wikidata":"https://www.wikidata.org/wiki/Q1681587","display_name":"Systematic code","level":4,"score":0.36390000581741333},{"id":"https://openalex.org/C99613125","wikidata":"https://www.wikidata.org/wiki/Q165194","display_name":"Application programming interface","level":2,"score":0.35370001196861267},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.33250001072883606},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.33079999685287476},{"id":"https://openalex.org/C51929080","wikidata":"https://www.wikidata.org/wiki/Q2425187","display_name":"Codebase","level":3,"score":0.2872999906539917},{"id":"https://openalex.org/C137287247","wikidata":"https://www.wikidata.org/wiki/Q1329550","display_name":"Static program analysis","level":4,"score":0.2818000018596649},{"id":"https://openalex.org/C113843644","wikidata":"https://www.wikidata.org/wiki/Q901882","display_name":"Interface (matter)","level":4,"score":0.2766999900341034},{"id":"https://openalex.org/C103278499","wikidata":"https://www.wikidata.org/wiki/Q254465","display_name":"Similarity (geometry)","level":3,"score":0.2752000093460083},{"id":"https://openalex.org/C136764020","wikidata":"https://www.wikidata.org/wiki/Q466","display_name":"World Wide Web","level":1,"score":0.271699994802475},{"id":"https://openalex.org/C152752567","wikidata":"https://www.wikidata.org/wiki/Q116877","display_name":"Code refactoring","level":3,"score":0.2702000141143799},{"id":"https://openalex.org/C2777561058","wikidata":"https://www.wikidata.org/wiki/Q2652119","display_name":"Program comprehension","level":4,"score":0.2689000070095062},{"id":"https://openalex.org/C164120249","wikidata":"https://www.wikidata.org/wiki/Q995982","display_name":"Web search query","level":3,"score":0.2678000032901764}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3360578","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3360578","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3360578","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"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":"cc-by-sa","license_id":"https://openalex.org/licenses/cc-by-sa","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},{"id":"pmh:oai:arXiv.org:1812.01158","is_oa":true,"landing_page_url":"http://arxiv.org/abs/1812.01158","pdf_url":"https://arxiv.org/pdf/1812.01158","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"}],"best_oa_location":{"id":"doi:10.1145/3360578","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3360578","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3360578","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"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":"cc-by-sa","license_id":"https://openalex.org/licenses/cc-by-sa","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W2902618648.pdf","grobid_xml":"https://content.openalex.org/works/W2902618648.grobid-xml"},"referenced_works_count":35,"referenced_works":["https://openalex.org/W244339","https://openalex.org/W1872325575","https://openalex.org/W1970607969","https://openalex.org/W1977971855","https://openalex.org/W1995650922","https://openalex.org/W2006291142","https://openalex.org/W2050372846","https://openalex.org/W2059215200","https://openalex.org/W2080579313","https://openalex.org/W2084887015","https://openalex.org/W2097001189","https://openalex.org/W2115130131","https://openalex.org/W2120322286","https://openalex.org/W2128782367","https://openalex.org/W2138756793","https://openalex.org/W2162436321","https://openalex.org/W2166597811","https://openalex.org/W2175297521","https://openalex.org/W2246134316","https://openalex.org/W2246363069","https://openalex.org/W2247374552","https://openalex.org/W2366532918","https://openalex.org/W2511803001","https://openalex.org/W2548627465","https://openalex.org/W2612300213","https://openalex.org/W2762844179","https://openalex.org/W2794744252","https://openalex.org/W2795013376","https://openalex.org/W2796238535","https://openalex.org/W2805788202","https://openalex.org/W2807866521","https://openalex.org/W2899270295","https://openalex.org/W4240736797","https://openalex.org/W4244284466","https://openalex.org/W4301168982"],"related_works":[],"abstract_inverted_index":{"Programmers":[0],"often":[1],"write":[2],"code":[3,9,22,37,51,64,74,90,94,100,110,123,141,178,236],"that":[4,14,227],"has":[5],"similarity":[6],"to":[7,18,33,39,45,48,60,71,134,214],"existing":[8],"written":[10,36,65],"somewhere.":[11],"A":[12],"tool":[13,29,86],"could":[15,30],"help":[16,31,44,59,70],"programmers":[17,32,213],"search":[19,133],"such":[20],"similar":[21,63],"would":[23,76],"be":[24],"immensely":[25],"useful.":[26],"Such":[27],"a":[28,85,98,108,136,184,207],"extend":[34],"partially":[35],"snippets":[38,142,179,237],"completely":[40],"implement":[41],"necessary":[42],"functionality,":[43],"discover":[46],"extensions":[47],"the":[49,115,121,129,132,146,157,169],"partial":[50,109,122],"which":[52,75,143],"are":[53],"commonly":[54],"included":[55],"by":[56,66],"other":[57,67],"programmers,":[58,68],"cross-check":[61],"against":[62],"or":[69],"add":[72],"extra":[73],"fix":[77],"common":[78],"mistakes":[79],"and":[80,87,125,127,149,197,220,233],"errors.":[81],"We":[82,159,190],"propose":[83],"Aroma,":[84,219],"technique":[88],"for":[89,117,187,193,202],"recommendation":[91],"via":[92],"structural":[93],"search.":[95],"Aroma":[96,161,192,228],"indexes":[97],"huge":[99],"corpus":[101,116],"including":[102],"thousands":[103],"of":[104,131,139,153,231],"open-source":[105],"projects,":[106],"takes":[107],"snippet":[111,148],"as":[112,151,171,173],"input,":[113],"searches":[114],"method":[118],"bodies":[119],"containing":[120],"snippet,":[124],"clusters":[126],"intersects":[128],"results":[130,225],"recommend":[135],"small":[137],"set":[138],"succinct":[140],"both":[144],"contain":[145],"query":[147],"appear":[150],"part":[152],"several":[154],"methods":[155],"in":[156],"corpus.":[158],"evaluated":[160],"on":[162],"2000":[163],"randomly":[164],"selected":[165],"queries":[166,175],"created":[167],"from":[168,177,181],"corpus,":[170],"well":[172],"64":[174],"derived":[176],"obtained":[180],"Stack":[182],"Overflow,":[183],"popular":[185],"website":[186],"discussing":[188],"code.":[189],"implemented":[191],"4":[194],"different":[195],"languages,":[196],"developed":[198],"an":[199],"IDE":[200],"plugin":[201],"Aroma.":[203],"Furthermore,":[204],"we":[205,210],"conducted":[206],"study":[208],"where":[209],"asked":[211],"12":[212],"complete":[215],"programming":[216],"tasks":[217],"using":[218],"collected":[221],"their":[222],"feedback.":[223],"Our":[224],"indicate":[226],"is":[229],"capable":[230],"retrieving":[232],"recommending":[234],"relevant":[235],"efficiently.":[238]},"counts_by_year":[{"year":2025,"cited_by_count":10},{"year":2024,"cited_by_count":13},{"year":2023,"cited_by_count":22},{"year":2022,"cited_by_count":29},{"year":2021,"cited_by_count":19},{"year":2020,"cited_by_count":6}],"updated_date":"2026-03-20T23:20:44.827607","created_date":"2018-12-11T00:00:00"}
