{"id":"https://openalex.org/W7160380913","doi":"https://doi.org/10.1145/3814987.3814988","title":"Compile-Time Java Stream Fusion via mapMulti","display_name":"Compile-Time Java Stream Fusion via mapMulti","publication_year":2026,"publication_date":"2026-06-11","ids":{"openalex":"https://openalex.org/W7160380913","doi":"https://doi.org/10.1145/3814987.3814988"},"language":null,"primary_location":{"id":"doi:10.1145/3814987.3814988","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3814987.3814988","pdf_url":null,"source":null,"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 15th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis","raw_type":"proceedings-article"},"type":"conference-paper","indexed_in":["arxiv","crossref"],"open_access":{"is_oa":true,"oa_status":"gold","oa_url":"https://doi.org/10.1145/3814987.3814988","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5135384294","display_name":"Yegor Bugayenko","orcid":null},"institutions":[{"id":"https://openalex.org/I2250955327","display_name":"Huawei Technologies (China)","ror":"https://ror.org/00cmhce21","country_code":"CN","type":"company","lineage":["https://openalex.org/I2250955327"]},{"id":"https://openalex.org/I4210116741","display_name":"Innopolis University","ror":"https://ror.org/02b7jh107","country_code":"RU","type":"education","lineage":["https://openalex.org/I4210116741"]}],"countries":["CN","RU"],"is_corresponding":false,"raw_author_name":"Yegor Bugayenko","raw_affiliation_strings":["Huawei, Shenzhen, China","Innopolis University, Kazan, Russian Federation"],"raw_orcid":"https://orcid.org/0000-0001-6370-0678","affiliations":[{"raw_affiliation_string":"Huawei, Shenzhen, China","institution_ids":["https://openalex.org/I2250955327"]},{"raw_affiliation_string":"Innopolis University, Kazan, Russian Federation","institution_ids":["https://openalex.org/I4210116741"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5134771452","display_name":"Maxim Trunnikov","orcid":"https://orcid.org/0000-0001-8545-4797"},"institutions":[{"id":"https://openalex.org/I2250955327","display_name":"Huawei Technologies (China)","ror":"https://ror.org/00cmhce21","country_code":"CN","type":"company","lineage":["https://openalex.org/I2250955327"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Maxim Trunnikov","raw_affiliation_strings":["Huawei, Shenzhen, China"],"raw_orcid":"https://orcid.org/0000-0001-8545-4797","affiliations":[{"raw_affiliation_string":"Huawei, Shenzhen, China","institution_ids":["https://openalex.org/I2250955327"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5135384578","display_name":"Vladimir Zakharov","orcid":null},"institutions":[{"id":"https://openalex.org/I2250955327","display_name":"Huawei Technologies (China)","ror":"https://ror.org/00cmhce21","country_code":"CN","type":"company","lineage":["https://openalex.org/I2250955327"]}],"countries":["CN"],"is_corresponding":false,"raw_author_name":"Vladimir Zakharov","raw_affiliation_strings":["Huawei, Shenzhen, China"],"raw_orcid":"https://orcid.org/0009-0007-2420-5675","affiliations":[{"raw_affiliation_string":"Huawei, Shenzhen, China","institution_ids":["https://openalex.org/I2250955327"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":true,"cited_by_count":0,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"15","last_page":"21"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.43689998984336853,"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"}},"topics":[{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.43689998984336853,"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/T10317","display_name":"Advanced Database Systems and Queries","score":0.2847999930381775,"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"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.0640999972820282,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.7432000041007996},{"id":"https://openalex.org/keywords/pipeline","display_name":"Pipeline (software)","score":0.6913999915122986},{"id":"https://openalex.org/keywords/java-bytecode","display_name":"Java bytecode","score":0.6452000141143799},{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.5303000211715698},{"id":"https://openalex.org/keywords/stream-processing","display_name":"Stream processing","score":0.42260000109672546},{"id":"https://openalex.org/keywords/abstraction","display_name":"Abstraction","score":0.41130000352859497},{"id":"https://openalex.org/keywords/loop-unrolling","display_name":"Loop unrolling","score":0.3869999945163727},{"id":"https://openalex.org/keywords/java-annotation","display_name":"Java annotation","score":0.37770000100135803}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8633999824523926},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.7432000041007996},{"id":"https://openalex.org/C43521106","wikidata":"https://www.wikidata.org/wiki/Q2165493","display_name":"Pipeline (software)","level":2,"score":0.6913999915122986},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.6590999960899353},{"id":"https://openalex.org/C2777472213","wikidata":"https://www.wikidata.org/wiki/Q137496","display_name":"Java bytecode","level":5,"score":0.6452000141143799},{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.5303000211715698},{"id":"https://openalex.org/C107027933","wikidata":"https://www.wikidata.org/wiki/Q2006448","display_name":"Stream processing","level":2,"score":0.42260000109672546},{"id":"https://openalex.org/C124304363","wikidata":"https://www.wikidata.org/wiki/Q673661","display_name":"Abstraction","level":2,"score":0.41130000352859497},{"id":"https://openalex.org/C76970557","wikidata":"https://www.wikidata.org/wiki/Q1869750","display_name":"Loop unrolling","level":3,"score":0.3869999945163727},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.37770000100135803},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.3734999895095825},{"id":"https://openalex.org/C60945770","wikidata":"https://www.wikidata.org/wiki/Q2517517","display_name":"Java Modeling Language","level":5,"score":0.3668000102043152},{"id":"https://openalex.org/C175309249","wikidata":"https://www.wikidata.org/wiki/Q725864","display_name":"Pipeline transport","level":2,"score":0.3433000147342682},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.3292999863624573},{"id":"https://openalex.org/C2777212361","wikidata":"https://www.wikidata.org/wiki/Q5127848","display_name":"Class (philosophy)","level":2,"score":0.3190000057220459},{"id":"https://openalex.org/C168773036","wikidata":"https://www.wikidata.org/wiki/Q264164","display_name":"Recursion (computer science)","level":2,"score":0.3181000053882599},{"id":"https://openalex.org/C2778361913","wikidata":"https://www.wikidata.org/wiki/Q7248437","display_name":"Program transformation","level":2,"score":0.3111000061035156},{"id":"https://openalex.org/C15524039","wikidata":"https://www.wikidata.org/wiki/Q865817","display_name":"Java applet","level":3,"score":0.3019999861717224},{"id":"https://openalex.org/C172482141","wikidata":"https://www.wikidata.org/wiki/Q379273","display_name":"Generics in Java","level":5,"score":0.30160000920295715},{"id":"https://openalex.org/C102379954","wikidata":"https://www.wikidata.org/wiki/Q2589940","display_name":"Call graph","level":2,"score":0.2939000129699707},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.28839999437332153},{"id":"https://openalex.org/C89198739","wikidata":"https://www.wikidata.org/wiki/Q3079880","display_name":"Data stream mining","level":2,"score":0.27720001339912415},{"id":"https://openalex.org/C2778484313","wikidata":"https://www.wikidata.org/wiki/Q1172540","display_name":"Data stream","level":2,"score":0.26489999890327454},{"id":"https://openalex.org/C139571649","wikidata":"https://www.wikidata.org/wiki/Q1156793","display_name":"Program optimization","level":3,"score":0.2590000033378601},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.2513999938964844}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/3814987.3814988","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3814987.3814988","pdf_url":null,"source":null,"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 15th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis","raw_type":"proceedings-article"},{"id":"pmh:oai:arXiv.org:2605.02691","is_oa":true,"landing_page_url":"https://arxiv.org/abs/2605.02691","pdf_url":"https://arxiv.org/pdf/2605.02691","source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":"2331-8422","issn":["2331-8422"],"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":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"text"}],"best_oa_location":{"id":"doi:10.1145/3814987.3814988","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3814987.3814988","pdf_url":null,"source":null,"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 15th ACM SIGPLAN International Workshop on the State Of the Art in Program Analysis","raw_type":"proceedings-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"The":[0],"Java":[1,76,117],"Stream":[2],"API,":[3],"introduced":[4],"in":[5,132,156,162],"Java~8,":[6],"makes":[7],"data":[8],"processing":[9],"more":[10],"expressive":[11],"and":[12,107,135,152,159],"concise":[13],"compared":[14],"to":[15,29,69,129,169],"imperative":[16,82],"loops.":[17,83],"However,":[18],"this":[19,45,62,85],"abstraction":[20],"can":[21],"come":[22],"with":[23],"significant":[24],"performance":[25,155],"overhead,":[26],"often":[27],"due":[28],"the":[30,66,170],"creation":[31],"of":[32,98,124,172],"multiple":[33],"intermediate":[34,58],"objects":[35,131],"during":[36],"pipeline":[37],"execution.":[38],"In":[39,84],"functional":[40],"languages":[41],"such":[42],"as":[43,143],"Haskell,":[44],"problem":[46],"is":[47],"addressed":[48],"through":[49],"stream":[50,73,79],"fusion,":[51],"a":[52,94,111],"compile-time":[53],"optimization":[54,74],"that":[55,92],"eliminates":[56],"unnecessary":[57],"structures.":[59],"Inspired":[60],"by":[61,77],"idea,":[63],"Streamliner":[64],"was":[65],"first":[67],"tool":[68],"perform":[70],"ahead-of-time,":[71],"bytecode-to-bytecode":[72],"for":[75],"unrolling":[78,99],"pipelines":[80],"into":[81,101,110],"paper,":[86],"we":[87],"introduce":[88],"an":[89],"open-source":[90],"optimizer":[91,148],"takes":[93],"different":[95],"approach.":[96],"Instead":[97],"streams":[100,142],"loops,":[102],"it":[103,168],"merges":[104],"consecutive":[105],"map()":[106],"filter()":[108],"operations":[109],"single":[112],"mapMulti()":[113],"call,":[114],"available":[115],"since":[116],"16.":[118],"Our":[119],"method":[120],"avoids":[121],"several":[122],"limitations":[123],"Streamliner,":[125],"including":[126],"its":[127,136],"sensitivity":[128],"escaping":[130],"lambda":[133],"expressions":[134],"restrictions":[137],"on":[138,149],"assigning":[139],"or":[140],"passing":[141],"variables.":[144],"We":[145,165],"evaluated":[146],"our":[147],"nine":[150],"benchmarks":[151],"observed":[153],"superior":[154],"two":[157],"cases":[158],"comparable":[160],"results":[161],"most":[163],"others.":[164],"also":[166],"applied":[167],"bytecode":[171],"Apache":[173],"Kafka,":[174],"successfully":[175],"executing":[176],"all":[177],"31,799":[178],"unit":[179],"tests":[180],"without":[181],"failures.":[182]},"counts_by_year":[],"updated_date":"2026-07-28T07:46:37.118299","created_date":"2026-05-07T00:00:00"}
