{"id":"https://openalex.org/W2056721518","doi":"https://doi.org/10.1145/2658761.2658763","title":"Code specialization for memory efficient hash tries (short paper)","display_name":"Code specialization for memory efficient hash tries (short paper)","publication_year":2014,"publication_date":"2014-08-29","ids":{"openalex":"https://openalex.org/W2056721518","doi":"https://doi.org/10.1145/2658761.2658763","mag":"2056721518"},"language":"en","primary_location":{"id":"doi:10.1145/2658761.2658763","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2658761.2658763","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"},"type":"preprint","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/A5031921941","display_name":"Michael J. Steindorfer","orcid":null},"institutions":[{"id":"https://openalex.org/I1341640284","display_name":"Centrum Wiskunde & Informatica","ror":"https://ror.org/00x7ekv49","country_code":"NL","type":"facility","lineage":["https://openalex.org/I1341640284","https://openalex.org/I2800991832"]}],"countries":["NL"],"is_corresponding":true,"raw_author_name":"Michael J. Steindorfer","raw_affiliation_strings":["CWI, Netherlands"],"affiliations":[{"raw_affiliation_string":"CWI, Netherlands","institution_ids":["https://openalex.org/I1341640284"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5074526787","display_name":"Jurgen Vinju","orcid":"https://orcid.org/0000-0002-2686-7409"},"institutions":[{"id":"https://openalex.org/I1341640284","display_name":"Centrum Wiskunde & Informatica","ror":"https://ror.org/00x7ekv49","country_code":"NL","type":"facility","lineage":["https://openalex.org/I1341640284","https://openalex.org/I2800991832"]}],"countries":["NL"],"is_corresponding":false,"raw_author_name":"Jurgen J. Vinju","raw_affiliation_strings":["CWI, Netherlands"],"affiliations":[{"raw_affiliation_string":"CWI, Netherlands","institution_ids":["https://openalex.org/I1341640284"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5031921941"],"corresponding_institution_ids":["https://openalex.org/I1341640284"],"apc_list":null,"apc_paid":null,"fwci":5.7263,"has_fulltext":false,"cited_by_count":8,"citation_normalized_percentile":{"value":0.95845899,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":90,"max":97},"biblio":{"volume":null,"issue":null,"first_page":"11","last_page":"14"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10260","display_name":"Software Engineering Research","score":0.9972000122070312,"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.9972000122070312,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.996999979019165,"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/T10101","display_name":"Cloud Computing and Resource Management","score":0.996999979019165,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8565531969070435},{"id":"https://openalex.org/keywords/hash-function","display_name":"Hash function","score":0.6867585182189941},{"id":"https://openalex.org/keywords/hash-tree","display_name":"Hash tree","score":0.6075417399406433},{"id":"https://openalex.org/keywords/memory-footprint","display_name":"Memory footprint","score":0.5900481343269348},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.5810428857803345},{"id":"https://openalex.org/keywords/hash-table","display_name":"Hash table","score":0.5760270953178406},{"id":"https://openalex.org/keywords/data-structure","display_name":"Data structure","score":0.5339993238449097},{"id":"https://openalex.org/keywords/scalability","display_name":"Scalability","score":0.5137161016464233},{"id":"https://openalex.org/keywords/trie","display_name":"Trie","score":0.5037824511528015},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.4715670943260193},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.45384448766708374},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.41702038049697876},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.34806692600250244},{"id":"https://openalex.org/keywords/database","display_name":"Database","score":0.14231616258621216}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8565531969070435},{"id":"https://openalex.org/C99138194","wikidata":"https://www.wikidata.org/wiki/Q183427","display_name":"Hash function","level":2,"score":0.6867585182189941},{"id":"https://openalex.org/C27353603","wikidata":"https://www.wikidata.org/wiki/Q16948622","display_name":"Hash tree","level":4,"score":0.6075417399406433},{"id":"https://openalex.org/C74912251","wikidata":"https://www.wikidata.org/wiki/Q6815727","display_name":"Memory footprint","level":2,"score":0.5900481343269348},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.5810428857803345},{"id":"https://openalex.org/C67388219","wikidata":"https://www.wikidata.org/wiki/Q207440","display_name":"Hash table","level":3,"score":0.5760270953178406},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.5339993238449097},{"id":"https://openalex.org/C48044578","wikidata":"https://www.wikidata.org/wiki/Q727490","display_name":"Scalability","level":2,"score":0.5137161016464233},{"id":"https://openalex.org/C190290938","wikidata":"https://www.wikidata.org/wiki/Q387015","display_name":"Trie","level":3,"score":0.5037824511528015},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.4715670943260193},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.45384448766708374},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.41702038049697876},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.34806692600250244},{"id":"https://openalex.org/C77088390","wikidata":"https://www.wikidata.org/wiki/Q8513","display_name":"Database","level":1,"score":0.14231616258621216}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1145/2658761.2658763","is_oa":false,"landing_page_url":"https://doi.org/10.1145/2658761.2658763","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences","raw_type":"proceedings-article"},{"id":"pmh:oai:HAL:hal-01111004v1","is_oa":false,"landing_page_url":"https://inria.hal.science/hal-01111004","pdf_url":null,"source":{"id":"https://openalex.org/S4306402512","display_name":"HAL (Le Centre pour la Communication Scientifique Directe)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I1294671590","host_organization_name":"Centre National de la Recherche Scientifique","host_organization_lineage":["https://openalex.org/I1294671590"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"GPCE - Proceedings of ACM International Conference on Generative Programming and Component Engineering 2014, Sep 2014, Vasteras, Sweden. pp.4","raw_type":"Conference papers"}],"best_oa_location":null,"sustainable_development_goals":[{"score":0.4300000071525574,"id":"https://metadata.un.org/sdg/9","display_name":"Industry, innovation and infrastructure"}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":9,"referenced_works":["https://openalex.org/W321635797","https://openalex.org/W1500250067","https://openalex.org/W1628797434","https://openalex.org/W1947321792","https://openalex.org/W2016995838","https://openalex.org/W2105045857","https://openalex.org/W2142947709","https://openalex.org/W2337480916","https://openalex.org/W6675806528"],"related_works":["https://openalex.org/W1539167344","https://openalex.org/W59193048","https://openalex.org/W2254826453","https://openalex.org/W3197499346","https://openalex.org/W2344633058","https://openalex.org/W4255109339","https://openalex.org/W2966566928","https://openalex.org/W4232234733","https://openalex.org/W1997069068","https://openalex.org/W1874152622"],"abstract_inverted_index":{"The":[0,88,95],"hash":[1,71,135],"trie":[2],"data":[3,42,202],"structure":[4],"is":[5,93,98],"a":[6,67,102,110,121,142,180],"common":[7],"part":[8],"in":[9,113,134,185],"standard":[10],"collection":[11],"libraries":[12],"of":[13,27,48,55,60,70,83,90,105,123,129,148,170,183,201],"JVM":[14,84],"programming":[15],"languages":[16],"such":[17],"as":[18,141],"Clojure":[19],"and":[20,30,51,153,172,204],"Scala.":[21],"It":[22],"enables":[23],"fast":[24],"immutable":[25],"implementations":[26],"maps,":[28],"sets,":[29],"vectors,":[31],"but":[32],"it":[33],"requires":[34],"considerably":[35],"more":[36],"memory":[37,86,114,186],"than":[38],"an":[39],"equivalent":[40],"array-based":[41],"structure.":[43],"This":[44],"hinders":[45],"the":[46,52,127,139,149,160,168],"scalability":[47],"functional":[49],"programs":[50],"further":[53],"adoption":[54],"this":[56,63,176],"otherwise":[57],"attractive":[58],"style":[59],"programming.":[61],"In":[62],"paper":[64],"we":[65,125],"present":[66],"product":[68],"family":[69,150],"tries.":[72,136],"We":[73,137],"generate":[74,152],"Java":[75],"source":[76],"code":[77,205],"to":[78,100,109,144,151,159,179,208],"specialize":[79],"them":[80],"using":[81],"knowledge":[82],"object":[85],"layout.":[87],"number":[89],"possible":[91],"specializations":[92],"exponential.":[94],"optimization":[96],"challenge":[97],"thus":[99],"find":[101],"minimal":[103],"set":[104,122],"variants":[106,147,155],"which":[107,146,154],"lead":[108],"maximal":[111],"loss":[112],"footprint":[115,187],"on":[116,167],"any":[117],"given":[118],"data.":[119],"Using":[120],"experiments":[124],"measured":[126],"distribution":[128],"internal":[130],"tree":[131],"node":[132],"sizes":[133],"used":[138],"results":[140],"guidance":[143],"decide":[145],"should":[156],"be":[157,209],"left":[158],"generic":[161],"implementation.":[162],"A":[163],"preliminary":[164],"validating":[165],"experiment":[166],"implementation":[169],"sets":[171],"maps":[173,189],"shows":[174],"that":[175],"technique":[177],"leads":[178],"median":[181],"decrease":[182],"55%":[184],"for":[188,192],"(and":[190],"78%":[191],"sets),":[193],"while":[194],"still":[195],"maintaining":[196],"comparable":[197],"performance.":[198],"Our":[199],"combination":[200],"analysis":[203],"specialization":[206],"proved":[207],"effective.":[210]},"counts_by_year":[{"year":2018,"cited_by_count":1},{"year":2016,"cited_by_count":3},{"year":2015,"cited_by_count":3},{"year":2014,"cited_by_count":1}],"updated_date":"2026-04-05T17:49:38.594831","created_date":"2025-10-10T00:00:00"}
