TY - GEN
T1 - A Reference GLL Implementation
AU - Johnstone, Adrian
PY - 2023/10/23
Y1 - 2023/10/23
N2 - The Generalised-LL (GLL) context-free parsing algorithmwas introduced at the 2009 LDTA workshop, and since then aseries of variant algorithms and implementations have beendescribed. There is a wide variety of optimisations that maybe applied to GLL, some of which were already present inthe originally published form.This paper presents a reference GLL implementation shornof all optimisations as a common baseline for the real-worldcomparison of performance across GLL variants. This baselineversion has particular value for non-specialists, sinceits simple form may be straightforwardly encoded in theimplementer’s preferred programming language.We also describe our approach to low level memory managementof GLL internal data structures. Our evaluation onlarge inputs shows a factor 3–4 speedup over a naïve implementationusing the standard Java APIs and a factor 4–5reduction in heap requirements. We conclude with noteson some algorithm-level optimisations that may be appliedindependently of the internal data representation.
AB - The Generalised-LL (GLL) context-free parsing algorithmwas introduced at the 2009 LDTA workshop, and since then aseries of variant algorithms and implementations have beendescribed. There is a wide variety of optimisations that maybe applied to GLL, some of which were already present inthe originally published form.This paper presents a reference GLL implementation shornof all optimisations as a common baseline for the real-worldcomparison of performance across GLL variants. This baselineversion has particular value for non-specialists, sinceits simple form may be straightforwardly encoded in theimplementer’s preferred programming language.We also describe our approach to low level memory managementof GLL internal data structures. Our evaluation onlarge inputs shows a factor 3–4 speedup over a naïve implementationusing the standard Java APIs and a factor 4–5reduction in heap requirements. We conclude with noteson some algorithm-level optimisations that may be appliedindependently of the internal data representation.
U2 - 10.1145/3623476.3623521
DO - 10.1145/3623476.3623521
M3 - Conference contribution
SP - 43
EP - 55
BT - Proceedings of the 16th ACM SIGPLAN International Conference on Software Language Engineering (SLE ’23), October 23–24, 2023, Cascais, Portugal
PB - ACM
ER -