Creative Commons Attribution 3.0 Germany license
5064eb01b5f238cd081fc9c63e604cbf
(Get MD5 Sum)
The first general and practical solution of the fluent API problem is presented. We give an algorithm that given a deterministic context free language (equivalently, LR(k), k >= 0 language) encodes it in an unbounded parametric polymorphism type system employing only a polynomial number of types. The theoretical result is employed in an actual tool Fling - a fluent API compiler-compiler in the style of YACC, tailored for embedding DSLs in Java.
@Article{roth_et_al:DARTS.5.2.12,
author = {Roth, Ori and Gil, Yossi},
title = {{Fling - A Fluent API Generator}},
pages = {12:1--12:9},
journal = {Dagstuhl Artifacts Series},
ISSN = {2509-8195},
year = {2019},
volume = {5},
number = {2},
editor = {Roth, Ori and Gil, Yossi},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/DARTS.5.2.12},
URN = {urn:nbn:de:0030-drops-107897},
doi = {10.4230/DARTS.5.2.12},
annote = {Keywords: Fluent API, compilation, generics, code generation}
}