1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
@inproceedings{jung_brainy_2011,
title = {Brainy: Effective Selection of Data Structures},
url = {https://doi.org/10.1145/1993498.1993509},
doi = {10.1145/1993498.1993509},
series = {{PLDI} '11},
pages = {86--97},
booktitle = {Proceedings of the 32nd {ACM} {SIGPLAN} Conference on Programming Language Design and Implementation},
publisher = {Association for Computing Machinery},
author = {Jung, Changhee and Rus, Silvius and Railing, Brian P. and Clark, Nathan and Pande, Santosh},
year = {2011},
}
@inproceedings{thomas_framework_2005,
title = {A Framework for Adaptive Algorithm Selection in {STAPL}},
url = {https://doi.org/10.1145/1065944.1065981},
doi = {10.1145/1065944.1065981},
series = {{PPoPP} '05},
pages = {277--288},
booktitle = {Proceedings of the Tenth {ACM} {SIGPLAN} Symposium on Principles and Practice of Parallel Programming},
publisher = {Association for Computing Machinery},
author = {Thomas, Nathan and Tanase, Gabriel and Tkachyshyn, Olga and Perdue, Jack and Amato, Nancy M. and Rauchwerger, Lawrence},
year = {2005},
}
@inproceedings{osterlund_dynamically_2013,
title = {Dynamically transforming data structures},
doi = {10.1109/ASE.2013.6693099},
pages = {410--420},
booktitle = {2013 28th {IEEE}/{ACM} International Conference on Automated Software Engineering ({ASE})},
author = {Österlund, Erik and Löwe, Welf},
year = {2013},
}
@inproceedings{franke_collection_2022,
title = {Collection Skeletons: Declarative Abstractions for Data Collections},
url = {https://doi.org/10.1145/3567512.3567528},
doi = {10.1145/3567512.3567528},
series = {{SLE} 2022},
pages = {189--201},
booktitle = {Proceedings of the 15th {ACM} {SIGPLAN} International Conference on Software Language Engineering},
publisher = {Association for Computing Machinery},
author = {Franke, Björn and Li, Zhibo and Morton, Magnus and Steuwer, Michel},
year = {2022},
}
@article{qin_primrose_2023,
title = {Primrose: Selecting Container Data Types by Their Properties},
volume = {7},
url = {http://arxiv.org/abs/2205.09655},
doi = {10.22152/programming-journal.org/2023/7/11},
shorttitle = {Primrose},
number = {3},
journaltitle = {The Art, Science, and Engineering of Programming},
author = {Qin, Xueying and O'Connor, Liam and Steuwer, Michel},
date = {2023-02-15},
year = {2023}
}
@inproceedings{costa_collectionswitch_2018,
title = {{CollectionSwitch}: a framework for efficient and dynamic collection selection},
url = {https://dl.acm.org/doi/10.1145/3168825},
doi = {10.1145/3168825},
shorttitle = {{CollectionSwitch}},
eventtitle = {{CGO} '18: 16th Annual {IEEE}/{ACM} International Symposium on Code Generation and Optimization},
pages = {16--26},
booktitle = {Proceedings of the 2018 International Symposium on Code Generation and Optimization},
publisher = {{ACM}},
author = {Costa, Diego and Andrzejak, Artur},
date = {2018-02-24},
year = {2018}
}
@inproceedings{shacham_chameleon_2009,
title = {Chameleon: adaptive selection of collections},
url = {https://dl.acm.org/doi/10.1145/1542476.1542522},
doi = {10.1145/1542476.1542522},
shorttitle = {Chameleon},
eventtitle = {{PLDI} '09: {ACM} {SIGPLAN} Conference on Programming Language Design and Implementation},
pages = {408--418},
booktitle = {Proceedings of the 30th {ACM} {SIGPLAN} Conference on Programming Language Design and Implementation},
publisher = {{ACM}},
author = {Shacham, Ohad and Vechev, Martin and Yahav, Eran},
date = {2009-06-15},
year = {2009}
}
@incollection{hutchison_coco_2013,
title = {{CoCo}: Sound and Adaptive Replacement of Java Collections},
volume = {7920},
url = "http://link.springer.com/10.1007/978-3-642-39038-8_1",
shorttitle = {{CoCo}},
pages = {1--26},
booktitle = {{ECOOP} 2013 – Object-Oriented Programming},
publisher = {Springer Berlin Heidelberg},
author = {Xu, Guoqing},
date = {2023-10-17},
year = {2013},
doi = "10.1007/978-3-642-39038-8_1",
}
@inproceedings{l_liu_perflint_2009,
title = {Perflint: A Context Sensitive Performance Advisor for C++ Programs},
doi = {10.1109/CGO.2009.36},
eventtitle = {2009 International Symposium on Code Generation and Optimization},
pages = {265--274},
booktitle = {2009 International Symposium on Code Generation and Optimization},
author = {{L. Liu} and {S. Rus}},
date = {2009-03-22},
year = {2009}
}
@article{jung_brainy_2011-1,
title = {Brainy: effective selection of data structures},
volume = {46},
url = {https://dl.acm.org/doi/10.1145/1993316.1993509},
doi = {10.1145/1993316.1993509},
shorttitle = {Brainy},
pages = {86--97},
number = {6},
journaltitle = {{ACM} {SIGPLAN} Notices},
shortjournal = {{SIGPLAN} Notices},
author = {Jung, Changhee and Rus, Silvius and Railing, Brian P. and Clark, Nathan and Pande, Santosh},
date = {2011-06-04},
year = {2011}
}
@inproceedings{costa_empirical_2017,
title = {Empirical Study of Usage and Performance of Java Collections},
url = {https://doi.org/10.1145/3030207.3030221},
doi = {10.1145/3030207.3030221},
series = {{ICPE} '17},
pages = {389--400},
booktitle = {Proceedings of the 8th {ACM}/{SPEC} on International Conference on Performance Engineering},
publisher = {Association for Computing Machinery},
author = {Costa, Diego and Andrzejak, Artur and Seboek, Janos and Lo, David},
year = {2017},
}
@online{wastl_advent_2015,
title = {Advent of Code},
url = {https://adventofcode.com/2022/about},
author = {Wastl, Eric},
urldate = {2024-03-08},
year = {2015},
}
@misc{rust_documentation_team_btreemap_2024,
title = {{BTreeMap} documentation},
url = {https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html},
author = {{Rust Documentation Team}},
urldate = {2024-03-08},
year = {2024},
}
@misc{rust_rfc_allocators,
title = {RFC 1398: Allocators},
url = {https://github.com/rust-lang/rfcs/blob/master/text/1398-kinds-of-allocators.md},
author = {{Rust allocator working group}},
urldate = {2016-04-08},
year = {2016},
}
@inproceedings{bayer_organization_1970,
location = {Houston, Texas},
title = {Organization and maintenance of large ordered indices},
url = {http://portal.acm.org/citation.cfm?doid=1734663.1734671},
doi = {10.1145/1734663.1734671},
eventtitle = {the 1970 {ACM} {SIGFIDET} (now {SIGMOD}) Workshop},
pages = {107},
booktitle = {Proceedings of the 1970 {ACM} {SIGFIDET} (now {SIGMOD}) Workshop on Data Description, Access and Control - {SIGFIDET} '70},
publisher = {{ACM} Press},
author = {Bayer, R. and {McCreight}, E.},
urldate = {2024-03-08},
year = {1970},
}
|