TY - GEN
T1 - Hinted dictionaries
T2 - 37th European Conference on Object-Oriented Programming
AU - Shaikhha, Amir
AU - Ghorbani, Mahdi
AU - Shahrokhi, Hesam
PY - 2023/7/11
Y1 - 2023/7/11
N2 - This paper introduces hinted dictionaries for expressing efficient ordered sets and maps functionally. As opposed to the traditional ordered dictionaries with logarithmic operations, hinted dictionaries can achieve better performance by using cursor-like objects referred to as hints. Hinted dictionaries unify the interfaces of imperative ordered dictionaries (e.g., C++ maps) and functional ones (e.g., Adams’ sets). We show that such dictionaries can use sorted arrays, unbalanced trees, and balanced trees as their underlying representations. Throughout the paper, we use Scala to present the different components of hinted dictionaries. We also provide a C++ implementation to evaluate the effectiveness of hinted dictionaries. Hinted dictionaries provide superior performance for set-set operations in comparison with the standard library of C++. Also, they show a competitive performance in comparison with the SciPy library for sparse vector operations.
AB - This paper introduces hinted dictionaries for expressing efficient ordered sets and maps functionally. As opposed to the traditional ordered dictionaries with logarithmic operations, hinted dictionaries can achieve better performance by using cursor-like objects referred to as hints. Hinted dictionaries unify the interfaces of imperative ordered dictionaries (e.g., C++ maps) and functional ones (e.g., Adams’ sets). We show that such dictionaries can use sorted arrays, unbalanced trees, and balanced trees as their underlying representations. Throughout the paper, we use Scala to present the different components of hinted dictionaries. We also provide a C++ implementation to evaluate the effectiveness of hinted dictionaries. Hinted dictionaries provide superior performance for set-set operations in comparison with the standard library of C++. Also, they show a competitive performance in comparison with the SciPy library for sparse vector operations.
KW - functional collections
KW - ordered dictionaries
KW - sparse linear algebra
UR - https://www.scopus.com/pages/publications/85168922252
U2 - 10.4230/LIPIcs.ECOOP.2023.28
DO - 10.4230/LIPIcs.ECOOP.2023.28
M3 - Conference contribution
AN - SCOPUS:85168922252
VL - 263
T3 - Leibniz International Proceedings in Informatics (LIPIcs)
SP - 1
EP - 28
BT - 37th European Conference on Object-Oriented Programming (ECOOP 2023)
A2 - Ali, Karim
A2 - Salvaneschi, Guido
PB - Schloss Dagstuhl - Leibniz-Zentrum für Informatik
Y2 - 17 July 2023 through 21 July 2023
ER -