{"id":"https://openalex.org/W4390604895","doi":"https://doi.org/10.1145/3632928","title":"Flan: An Expressive and Efficient Datalog Compiler for Program Analysis","display_name":"Flan: An Expressive and Efficient Datalog Compiler for Program Analysis","publication_year":2024,"publication_date":"2024-01-02","ids":{"openalex":"https://openalex.org/W4390604895","doi":"https://doi.org/10.1145/3632928"},"language":"en","primary_location":{"id":"doi:10.1145/3632928","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632928","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632928","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","license_id":"https://openalex.org/licenses/cc-by","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":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3632928","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5006533172","display_name":"Supun Abeysinghe","orcid":null},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":true,"raw_author_name":"Supun Abeysinghe","raw_affiliation_strings":["Purdue University, West Lafayette, USA"],"raw_orcid":"https://orcid.org/0000-0001-6054-2432","affiliations":[{"raw_affiliation_string":"Purdue University, West Lafayette, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5093657664","display_name":"Anxhelo Xhebraj","orcid":"https://orcid.org/0009-0008-6670-6408"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Anxhelo Xhebraj","raw_affiliation_strings":["Purdue University, West Lafayette, USA"],"raw_orcid":"https://orcid.org/0009-0008-6670-6408","affiliations":[{"raw_affiliation_string":"Purdue University, West Lafayette, USA","institution_ids":["https://openalex.org/I219193219"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5003153354","display_name":"Tiark Rompf","orcid":"https://orcid.org/0000-0002-2068-3238"},"institutions":[{"id":"https://openalex.org/I219193219","display_name":"Purdue University West Lafayette","ror":"https://ror.org/02dqehb95","country_code":"US","type":"education","lineage":["https://openalex.org/I219193219"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Tiark Rompf","raw_affiliation_strings":["Purdue University, West Lafayette, USA"],"raw_orcid":"https://orcid.org/0000-0002-2068-3238","affiliations":[{"raw_affiliation_string":"Purdue University, West Lafayette, USA","institution_ids":["https://openalex.org/I219193219"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":3,"corresponding_author_ids":["https://openalex.org/A5006533172"],"corresponding_institution_ids":["https://openalex.org/I219193219"],"apc_list":null,"apc_paid":null,"fwci":3.7948,"has_fulltext":true,"cited_by_count":8,"citation_normalized_percentile":{"value":0.93988799,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":96,"max":98},"biblio":{"volume":"8","issue":"POPL","first_page":"2577","last_page":"2609"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9988999962806702,"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"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9988999962806702,"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/T10126","display_name":"Logic, programming, and type systems","score":0.9987999796867371,"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/T11424","display_name":"Security and Verification in Computing","score":0.9965000152587891,"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/datalog","display_name":"Datalog","score":0.977806568145752},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8779422044754028},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.8094063401222229},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.624241828918457},{"id":"https://openalex.org/keywords/modularity","display_name":"Modularity (biology)","score":0.5218302607536316},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.5202435255050659},{"id":"https://openalex.org/keywords/flexibility","display_name":"Flexibility (engineering)","score":0.5044058561325073},{"id":"https://openalex.org/keywords/language-construct","display_name":"Language construct","score":0.48900139331817627},{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.4390799403190613},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.42743104696273804},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.2597106397151947},{"id":"https://openalex.org/keywords/key","display_name":"Key (lock)","score":0.2504976689815521},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.12666964530944824},{"id":"https://openalex.org/keywords/set","display_name":"Set (abstract data type)","score":0.08830326795578003}],"concepts":[{"id":"https://openalex.org/C148230440","wikidata":"https://www.wikidata.org/wiki/Q1172264","display_name":"Datalog","level":2,"score":0.977806568145752},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8779422044754028},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.8094063401222229},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.624241828918457},{"id":"https://openalex.org/C2779478453","wikidata":"https://www.wikidata.org/wiki/Q6889748","display_name":"Modularity (biology)","level":2,"score":0.5218302607536316},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.5202435255050659},{"id":"https://openalex.org/C2780598303","wikidata":"https://www.wikidata.org/wiki/Q65921492","display_name":"Flexibility (engineering)","level":2,"score":0.5044058561325073},{"id":"https://openalex.org/C48859967","wikidata":"https://www.wikidata.org/wiki/Q6486712","display_name":"Language construct","level":2,"score":0.48900139331817627},{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.4390799403190613},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.42743104696273804},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.2597106397151947},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.2504976689815521},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.12666964530944824},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.08830326795578003},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C105795698","wikidata":"https://www.wikidata.org/wiki/Q12483","display_name":"Statistics","level":1,"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/C54355233","wikidata":"https://www.wikidata.org/wiki/Q7162","display_name":"Genetics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3632928","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632928","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632928","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","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3632928","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3632928","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3632928","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","license_id":"https://openalex.org/licenses/cc-by","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":[{"id":"https://openalex.org/G3949357892","display_name":null,"funder_award_id":"1553471, 1564207, 1918483, 1910216","funder_id":"https://openalex.org/F4320306076","funder_display_name":"National Science Foundation"},{"id":"https://openalex.org/G7364598548","display_name":null,"funder_award_id":"DE-SC0018050","funder_id":"https://openalex.org/F4320306084","funder_display_name":"U.S. Department of Energy"}],"funders":[{"id":"https://openalex.org/F4320306076","display_name":"National Science Foundation","ror":"https://ror.org/021nxhr62"},{"id":"https://openalex.org/F4320306084","display_name":"U.S. Department of Energy","ror":"https://ror.org/01bj3aw27"}],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W4390604895.pdf","grobid_xml":"https://content.openalex.org/works/W4390604895.grobid-xml"},"referenced_works_count":87,"referenced_works":["https://openalex.org/W1484019856","https://openalex.org/W1552077729","https://openalex.org/W1556604985","https://openalex.org/W1660714679","https://openalex.org/W1671718115","https://openalex.org/W1998162300","https://openalex.org/W2008070495","https://openalex.org/W2008865455","https://openalex.org/W2029786195","https://openalex.org/W2035741122","https://openalex.org/W2036157748","https://openalex.org/W2059720667","https://openalex.org/W2070262175","https://openalex.org/W2080573945","https://openalex.org/W2096314727","https://openalex.org/W2102178883","https://openalex.org/W2105079611","https://openalex.org/W2106771621","https://openalex.org/W2129086731","https://openalex.org/W2131817760","https://openalex.org/W2136271630","https://openalex.org/W2136575791","https://openalex.org/W2146492010","https://openalex.org/W2151562310","https://openalex.org/W2154697693","https://openalex.org/W2158047578","https://openalex.org/W2158600037","https://openalex.org/W2161956202","https://openalex.org/W2162621793","https://openalex.org/W2163521620","https://openalex.org/W2166091242","https://openalex.org/W2216017971","https://openalex.org/W2299299451","https://openalex.org/W2340838390","https://openalex.org/W2399381860","https://openalex.org/W2417567569","https://openalex.org/W2433992225","https://openalex.org/W2513927163","https://openalex.org/W2517279098","https://openalex.org/W2622559577","https://openalex.org/W2794610196","https://openalex.org/W2798416929","https://openalex.org/W2898152370","https://openalex.org/W2898896770","https://openalex.org/W2903272482","https://openalex.org/W2903965607","https://openalex.org/W2912940102","https://openalex.org/W2916507006","https://openalex.org/W2948308868","https://openalex.org/W2955447707","https://openalex.org/W2963066364","https://openalex.org/W2979609173","https://openalex.org/W2987138394","https://openalex.org/W2996212942","https://openalex.org/W2998145234","https://openalex.org/W2999478521","https://openalex.org/W3005050519","https://openalex.org/W3009296938","https://openalex.org/W3017193247","https://openalex.org/W3021830120","https://openalex.org/W3094660140","https://openalex.org/W3099525000","https://openalex.org/W3109485936","https://openalex.org/W3109650547","https://openalex.org/W3117137355","https://openalex.org/W3122286897","https://openalex.org/W3139323122","https://openalex.org/W3163302786","https://openalex.org/W3206289870","https://openalex.org/W3215883039","https://openalex.org/W4205872049","https://openalex.org/W4206031975","https://openalex.org/W4206770190","https://openalex.org/W4220851630","https://openalex.org/W4221038596","https://openalex.org/W4236576706","https://openalex.org/W4241352414","https://openalex.org/W4244579861","https://openalex.org/W4246166885","https://openalex.org/W4247889999","https://openalex.org/W4295124867","https://openalex.org/W4299678562","https://openalex.org/W4379536906","https://openalex.org/W4381327058","https://openalex.org/W4384302786","https://openalex.org/W4387667131","https://openalex.org/W4387674126"],"related_works":["https://openalex.org/W4390604895","https://openalex.org/W4300015701","https://openalex.org/W2279674553","https://openalex.org/W2101310065","https://openalex.org/W2023906867","https://openalex.org/W2089272214","https://openalex.org/W2749943653","https://openalex.org/W2129621054","https://openalex.org/W3023843260","https://openalex.org/W2293614426"],"abstract_inverted_index":{"Datalog":[0,37,54,94,114,139,195,302],"has":[1,78],"gained":[2],"prominence":[3],"in":[4,129,199,311],"program":[5],"analysis":[6],"due":[7,154],"to":[8,58,72,80,155,172,205,300,315,317],"its":[9],"expressiveness":[10,189],"and":[11,32,90,100,115,162,170,190,262,271,282,297,309],"ease":[12],"of":[13,26,35,63,83,104,152,159,188,217,233,251,255,295,314,322],"use.":[14],"Its":[15],"generic":[16],"fixpoint":[17],"resolution":[18],"algorithm":[19],"over":[20,164],"relational":[21],"domains":[22],"simplifies":[23],"the":[24,81,108,150,156,185,215,226,231,241,249,312],"expression":[25],"many":[27],"complex":[28,75],"analyses.":[29],"The":[30],"performance":[31,153,191,308],"scalability":[33],"issues":[34],"early":[36],"approaches":[38],"have":[39],"been":[40],"addressed":[41],"by":[42,275],"tools":[43],"such":[44,86,268],"as":[45,87,269],"Souffl\u00e9":[46,126],"through":[47],"specialized":[48,174,207,238,280],"code":[49,175,208,239],"generation.":[50],"Still,":[51],"while":[52,236],"pure":[53],"is":[55,66],"expressive":[56],"enough":[57],"support":[59],"a":[60,67,116,120,177,194,293],"wide":[61],"range":[62,313],"analyses,":[64],"there":[65],"growing":[68],"need":[69,109],"for":[70,110,209,240,320],"extensions":[71,106,235],"accommodate":[73],"increasingly":[74],"analyses":[76],"This":[77],"led":[79],"development":[82],"various":[84],"extensions,":[85],"Flix,":[88],"Datafun,":[89],"Formulog,":[91],"which":[92],"enhance":[93],"with":[95,137,192,219,225,264,285],"features":[96],"like":[97,125,279],"arbitrary":[98,258],"lattices":[99],"SMT":[101],"constraints.":[102],"Most":[103],"these":[105],"recognize":[107],"full":[111],"interoperability":[112],"between":[113],"full-fledged":[117],"programming":[118,204],"language,":[119],"functionality":[121],"that":[122,201,229],"high-performance":[123],"systems":[124,319],"lack.":[127],"Specifically,":[128],"most":[130],"cases,":[131],"they":[132],"construct":[133],"languages":[134],"from":[135],"scratch":[136],"first-class":[138],"support,":[140],"allowing":[141],"greater":[142],"flexibility.":[143],"However,":[144],"this":[145,181],"flexibility":[146,169,216],"often":[147],"comes":[148],"at":[149],"cost":[151],"conflicting":[157],"requirements":[158],"prioritizing":[160],"modularity":[161],"abstraction":[163],"efficiency.":[165],"Consequently,":[166],"achieving":[167],"both":[168],"compilation":[171],"highly-performant":[173],"poses":[176],"significant":[178],"challenge.":[179],"In":[180],"work,":[182],"we":[183],"reconcile":[184],"competing":[186],"demands":[187],"Flan,":[193],"compiler":[196],"fully":[197],"embedded":[198],"Scala":[200],"leverages":[202],"multi-stage":[203],"generate":[206],"enhanced":[210],"performance.":[211],"Our":[212,304],"approach":[213],"combines":[214],"Flix":[218],"Souffl\u00e9\u2019s":[220],"performance,":[221],"offering":[222],"seamless":[223],"integration":[224],"host":[227],"language":[228],"enables":[230],"addition":[232,250],"powerful":[234],"generating":[237],"entire":[242],"computation.":[243],"Flan\u2019s":[244],"simple":[245],"operator":[246],"interface":[247],"allows":[248],"an":[252],"extensive":[253],"set":[254],"features,":[256],"including":[257],"aggregates,":[259],"user-defined":[260],"functions,":[261],"lattices,":[263],"multiple":[265],"execution":[266],"strategies":[267],"binary":[270],"multi-way":[272],"joins,":[273],"supported":[274],"different":[276],"indexing":[277],"structures":[278],"trees":[281],"hash":[283],"tables,":[284],"minimal":[286],"effort.":[287],"We":[288],"evaluate":[289],"our":[290],"system":[291],"on":[292],"variety":[294],"benchmarks":[296],"compare":[298],"it":[299],"established":[301],"engines.":[303],"results":[305],"demonstrate":[306],"competitive":[307],"speedups":[310],"compared":[316],"state-of-the-art":[318],"workloads":[321],"practical":[323],"importance.":[324]},"counts_by_year":[{"year":2026,"cited_by_count":1},{"year":2025,"cited_by_count":4},{"year":2024,"cited_by_count":3}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
