{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,27]],"date-time":"2026-02-27T03:47:41Z","timestamp":1772164061079,"version":"3.50.1"},"publisher-location":"New York, NY, USA","reference-count":29,"publisher":"ACM","license":[{"start":{"date-parts":[[2017,10,23]],"date-time":"2017-10-23T00:00:00Z","timestamp":1508716800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2017,10,23]]},"DOI":"10.1145\/3136040.3136041","type":"proceedings-article","created":{"date-parts":[[2017,10,12]],"date-time":"2017-10-12T08:51:09Z","timestamp":1507798269000},"page":"199-211","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":8,"title":["Silverchain: a fluent API generator"],"prefix":"10.1145","author":[{"given":"Tomoki","family":"Nakamaru","sequence":"first","affiliation":[{"name":"University of Tokyo, Japan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Kazuhiro","family":"Ichikawa","sequence":"additional","affiliation":[{"name":"University of Tokyo, Japan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tetsuro","family":"Yamazaki","sequence":"additional","affiliation":[{"name":"University of Tokyo, Japan"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Shigeru","family":"Chiba","sequence":"additional","affiliation":[{"name":"University of Tokyo, Japan"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,10,23]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/1007352.1007390"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806799.1806805"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/2614628.2614629"},{"key":"e_1_3_2_1_4_1","unstructured":"Janusz Brzozowski. 1962. Canonical Regular Expressions and Minimal State Graphs for Definite Events. (1962) 529\u2013561.  Janusz Brzozowski. 1962. Canonical Regular Expressions and Minimal State Graphs for Definite Events. (1962) 529\u2013561."},{"key":"e_1_3_2_1_5_1","volume-title":"Programming Languages and Their Compilers: Preliminary Notes","author":"Cocke John","unstructured":"John Cocke . 1969. Programming Languages and Their Compilers: Preliminary Notes . Courant Institute of Mathematical Sciences, New York University . John Cocke. 1969. Programming Languages and Their Compilers: Preliminary Notes. Courant Institute of Mathematical Sciences, New York University."},{"key":"e_1_3_2_1_6_1","unstructured":"Joel Costigliola. 2014. AssertJ \/ Fluent assertions for java. (December 2014). Retrieved September 4 2017 from http:\/\/joel-costigliola.github. io\/assertj\/  Joel Costigliola. 2014. AssertJ \/ Fluent assertions for java. (December 2014). Retrieved September 4 2017 from http:\/\/joel-costigliola.github. io\/assertj\/"},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01768471"},{"key":"e_1_3_2_1_8_1","unstructured":"Joseph Darcy. 2016. JDK 9 Language Tooling and Library Features. (September 2016). Retrieved September 4 2017 from https: \/\/cdn.app.compendium.com\/uploads\/user\/e7c690e8-6ff9-102a-ac6d -e4aebca50425\/f4a5b21d-66fa-4885-92bf-c4e81c06d916\/File\/e1950f 4e52d2b112757b70cf28caa117\/j1_2016_jdk9_lang_tools_libs.pdf  Joseph Darcy. 2016. JDK 9 Language Tooling and Library Features. (September 2016). Retrieved September 4 2017 from https: \/\/cdn.app.compendium.com\/uploads\/user\/e7c690e8-6ff9-102a-ac6d -e4aebca50425\/f4a5b21d-66fa-4885-92bf-c4e81c06d916\/File\/e1950f 4e52d2b112757b70cf28caa117\/j1_2016_jdk9_lang_tools_libs.pdf"},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048099"},{"key":"e_1_3_2_1_10_1","unstructured":"Martin Fowler. 2005. FluentInterface. (December 2005). Retrieved September 4 2017 from https:\/\/www.martinfowler.com\/bliki\/FluentI nterface.html  Martin Fowler. 2005. FluentInterface. (December 2005). Retrieved September 4 2017 from https:\/\/www.martinfowler.com\/bliki\/FluentI nterface.html"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.4230\/LIPIcs.ECOOP.2016.10"},{"key":"e_1_3_2_1_12_1","volume-title":"jOOQ: The easiest way to write SQL in Java. (September","author":"Data Geekery","year":"2017","unstructured":"Data Geekery GmbH. 2017. jOOQ: The easiest way to write SQL in Java. (September 2017 ). Retrieved September 4, 2017 from https: \/\/www.jooq.org\/ Data Geekery GmbH. 2017. jOOQ: The easiest way to write SQL in Java. (September 2017). Retrieved September 4, 2017 from https: \/\/www.jooq.org\/"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/321250.321254"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009871"},{"key":"e_1_3_2_1_15_1","unstructured":"Hamcrest. 2012. Hamcrest. (August 2012). Retrieved September 4 2017 from http:\/\/hamcrest.org\/  Hamcrest. 2012. Hamcrest. (August 2012). Retrieved September 4 2017 from http:\/\/hamcrest.org\/"},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1137\/0201024"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/242224.242477"},{"key":"e_1_3_2_1_18_1","volume-title":"phenan\/scalalr: ScaLALR : LALR parser generator for embedded DSLs in Scala. (December","author":"Ichikawa Kazuhiro","year":"2016","unstructured":"Kazuhiro Ichikawa . 2016. phenan\/scalalr: ScaLALR : LALR parser generator for embedded DSLs in Scala. (December 2016 ). Retrieved September 4, 2017 from https:\/\/github.com\/phenan\/scalalr Kazuhiro Ichikawa. 2016. phenan\/scalalr: ScaLALR : LALR parser generator for embedded DSLs in Scala. (December 2016). Retrieved September 4, 2017 from https:\/\/github.com\/phenan\/scalalr"},{"key":"e_1_3_2_1_19_1","volume-title":"Article 15","author":"Ichikawa Kazuhiro","year":"2017","unstructured":"Kazuhiro Ichikawa and Shigeru Chiba . 2017. User-Defined Operators Including Name Binding for New Language Constructs. The Art, Science, and Engineering of Programming 1, 2 , Article 15 ( 2017 ). Kazuhiro Ichikawa and Shigeru Chiba. 2017. User-Defined Operators Including Name Binding for New Language Constructs. The Art, Science, and Engineering of Programming 1, 2, Article 15 (2017)."},{"key":"#cr-split#-e_1_3_2_1_21_1.1","unstructured":"Ansgar Konermann. 2010. Emulating &#34;self types&#34"},{"key":"#cr-split#-e_1_3_2_1_21_1.2","unstructured":"using Java Generics to simplify fluent API implementation. (November 2010). Retrieved September 4 2017 from http:\/\/web.archive.org\/web\/20130721224442\/http: \/passion.forco.de\/content\/emulating-self-types-using-java-generics -simplify-fluent-api-implementation Ansgar Konermann. 2010. Emulating &#34;self types&#34"},{"key":"#cr-split#-e_1_3_2_1_21_1.3","unstructured":"using Java Generics to simplify fluent API implementation. (November 2010). Retrieved September 4 2017 from http:\/\/web.archive.org\/web\/20130721224442\/http: \/passion.forco.de\/content\/emulating-self-types-using-java-generics -simplify-fluent-api-implementation"},{"key":"e_1_3_2_1_23_1","volume-title":"JEP 215: Tiered Attribution for javac. (July","author":"Romero Vicente","year":"2016","unstructured":"Vicente Romero and Maurizio Cimadamore . 2016. JEP 215: Tiered Attribution for javac. (July 2016 ). Retrieved September 4, 2017 from http:\/\/openjdk.java.net\/jeps\/215 Vicente Romero and Maurizio Cimadamore. 2016. JEP 215: Tiered Attribution for javac. (July 2016). Retrieved September 4, 2017 from http:\/\/openjdk.java.net\/jeps\/215"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/800169.805431"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1986.6312929"},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/363347.363387"},{"key":"e_1_3_2_1_27_1","volume-title":"verhas\/fluflu: Fluent Api Creator. (July","author":"Verhas Peter","year":"2014","unstructured":"Peter Verhas . 2014. verhas\/fluflu: Fluent Api Creator. (July 2014 ). Retrieved September 4, 2017 from https:\/\/github.com\/verhas\/fluflu Peter Verhas. 2014. verhas\/fluflu: Fluent Api Creator. (July 2014). Retrieved September 4, 2017 from https:\/\/github.com\/verhas\/fluflu"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-13953-6_11"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0019-9958(67)80007-X"}],"event":{"name":"SPLASH '17: Conference on Systems, Programming, Languages, and Applications: Software for Humanity","location":"Vancouver BC Canada","acronym":"SPLASH '17","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages","SIGAda ACM Special Interest Group on Ada Programming Language"]},"container-title":["Proceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3136040.3136041","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3136040.3136041","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:26:46Z","timestamp":1750199206000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3136040.3136041"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,10,23]]},"references-count":29,"alternative-id":["10.1145\/3136040.3136041","10.1145\/3136040"],"URL":"https:\/\/doi.org\/10.1145\/3136040.3136041","relation":{"is-identical-to":[{"id-type":"doi","id":"10.1145\/3170492.3136041","asserted-by":"object"}]},"subject":[],"published":{"date-parts":[[2017,10,23]]},"assertion":[{"value":"2017-10-23","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}