Silverchain: A Fluent API Generator
This paper presents a tool named Silverchain, which generates class definitions for a fluent API from the grammar of the API.
A fluent API is an API that is used by method chaining and its grammar is a BNF-like set of rules that defines method chains accepted in type checking.
Fluent APIs generated by Silverchain provide two styles of APIs:
One is for building a chain by concatenating all method calls in series.
The other is for building a chain from partial chains by passing child chains to method calls in the parent chain as their arguments.
To generate such a fluent API, Silverchain first translates given grammar into a set of deterministic pushdown automata without $\epsilon$-transitions, then encodes these automata into class definitions.
Each constructed automata corresponds to a nonterminal in given grammar and recognizes symbol sequences produced from its corresponding nonterminal.
this URL might only work when visiting from a http://www.sigplan.org/ URL.
Tue 24 Oct
13:30 - 15:00: GPCE 2017 - Analysis & Testing at Regency A Chair(s): Jaakko JärviUniversity of Bergen | ||||||||||||||||||||||||||||||||||||||||||
13:30 - 13:55 Talk | Jafar M. Al-KofahiIowa State University, USA, Suresh KothariIowa State University, USA, Christian KästnerCarnegie Mellon University, USA DOI Authorizer link | |||||||||||||||||||||||||||||||||||||||||
13:55 - 14:20 Talk | Leonardo FernandesFederal University of Pernambuco, Brazil, Márcio RibeiroFederal University of Alagoas, Brazil, Luiz CarvalhoFederal University of Alagoas, Brazil, Rohit GheyiFederal University of Campina Grande, Brazil, Melina MongioviFederal University of Campina Grande, Brazil, Andre Santos, Ana CavalcantiUniversity of York, UK, Fabiano FerrariFederal University of São Carlos, Brazil, José Carlos MaldonadoUniversity of São Paulo, Brazil DOI Authorizer link | |||||||||||||||||||||||||||||||||||||||||
14:20 - 14:45 Talk | Tomoki NakamaruUniversity of Tokyo, Japan, Kazuhiro IchikawaUniversity of Tokyo, Japan, Tetsuro YamazakiUniversity of Tokyo, Japan, Shigeru ChibaUniversity of Tokyo, Japan DOI Authorizer link | |||||||||||||||||||||||||||||||||||||||||
14:45 - 15:00 Talk | Vadim ZaytsevRaincode Labs, Belgium DOI Authorizer link |