{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,11]],"date-time":"2026-04-11T02:10:48Z","timestamp":1775873448641,"version":"3.50.1"},"publisher-location":"New York, NY, USA","reference-count":33,"publisher":"ACM","license":[{"start":{"date-parts":[[2014,9,15]],"date-time":"2014-09-15T00:00:00Z","timestamp":1410739200000},"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":[[2014,9,15]]},"DOI":"10.1145\/2658761.2658776","type":"proceedings-article","created":{"date-parts":[[2014,8,29]],"date-time":"2014-08-29T09:03:43Z","timestamp":1409303023000},"page":"123-132","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":23,"title":["A domain-specific language for building self-optimizing AST interpreters"],"prefix":"10.1145","author":[{"given":"Christian","family":"Humer","sequence":"first","affiliation":[{"name":"JKU Linz, Austria"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Christian","family":"Wimmer","sequence":"additional","affiliation":[{"name":"Oracle Labs, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Christian","family":"Wirth","sequence":"additional","affiliation":[{"name":"Oracle Labs, Austria"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andreas","family":"W\u00f6\u00df","sequence":"additional","affiliation":[{"name":"JKU Linz, Austria"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Thomas","family":"W\u00fcrthinger","sequence":"additional","affiliation":[{"name":"Oracle Labs, Austria"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2014,9,15]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"Project Lombok. URL http:\/\/projectlombok.org\/.  Project Lombok. URL http:\/\/projectlombok.org\/."},{"key":"e_1_3_2_1_2_1","unstructured":"Meta programming system. URL http:\/\/www.jetbrains.com\/mps.  Meta programming system. URL http:\/\/www.jetbrains.com\/mps."},{"key":"e_1_3_2_1_3_1","unstructured":"Xtext. URL http:\/\/www.eclipse.org\/Xtext\/.  Xtext. URL http:\/\/www.eclipse.org\/Xtext\/."},{"key":"e_1_3_2_1_4_1","volume-title":"A file-based Smalltalk implementation built with truffle","year":"2014","unstructured":"TruffleSOM : A file-based Smalltalk implementation built with truffle ., 2014 . URL https:\/\/github.com\/smarr\/TruffleSOM. TruffleSOM: A file-based Smalltalk implementation built with truffle., 2014. URL https:\/\/github.com\/smarr\/TruffleSOM."},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2093157.2093163"},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2480362.2480654"},{"key":"e_1_3_2_1_7_1","volume-title":"Adaptable and Extensible Component Systems","author":"Bruneton E.","year":"2002","unstructured":"E. Bruneton , R. Lenglet , and T. Coupaye . ASM: A code manipulation tool to implement adaptable systems . In Adaptable and Extensible Component Systems , 2002 . E. Bruneton, R. Lenglet, and T. Coupaye. ASM: A code manipulation tool to implement adaptable systems. In Adaptable and Extensible Component Systems, 2002."},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869631.1869633"},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2617548.2617550"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869527"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/74877.74884"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1985793.1985889"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2371401.2371419"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.5555\/646155.679688"},{"key":"e_1_3_2_1_15_1","volume-title":"FastR is an implementation of the R language in Java atop Truffle and Graal","author":"R.","year":"2014","unstructured":"Fast R. FastR is an implementation of the R language in Java atop Truffle and Graal ., 2014 . URL https:\/\/bitbucket.org\/allr\/fastr. FastR. FastR is an implementation of the R language in Java atop Truffle and Graal., 2014. URL https:\/\/bitbucket.org\/allr\/fastr."},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542528"},{"key":"e_1_3_2_1_17_1","volume-title":"DSLs in Action","author":"Ghosh D.","year":"2010","unstructured":"D. Ghosh . DSLs in Action . Manning Publications Co., Greenwich, CT, USA , 1 st edition, 2010 . ISBN 9781935182450. D. Ghosh. DSLs in Action. Manning Publications Co., Greenwich, CT, USA, 1st edition, 2010. ISBN 9781935182450.","edition":"1"},{"key":"e_1_3_2_1_18_1","volume-title":"V8 JavaScript engine","year":"2012","unstructured":"Google. V8 JavaScript engine , 2012 . URL http:\/\/code.google.com\/p\/ v8\/. Google. V8 JavaScript engine, 2012. URL http:\/\/code.google.com\/p\/ v8\/."},{"key":"e_1_3_2_1_19_1","volume-title":"V8 benchmark suite","year":"2012","unstructured":"Google. V8 benchmark suite , 2012 . URL http:\/\/v8.googlecode.com\/ svn\/data\/benchmarks\/current\/run.html. Google. V8 benchmark suite, 2012. URL http:\/\/v8.googlecode.com\/ svn\/data\/benchmarks\/current\/run.html."},{"key":"e_1_3_2_1_20_1","volume-title":"JSR 269: Pluggable Annotation Processing API","author":"JSR","year":"2011","unstructured":"JSR 269. JSR 269: Pluggable Annotation Processing API , 2011 . URL http:\/\/www.jcp.org\/en\/jsr\/detail?id=269. JSR 269. JSR 269: Pluggable Annotation Processing API, 2011. URL http:\/\/www.jcp.org\/en\/jsr\/detail?id=269."},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869497"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.3103\/S014641161107008X"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048123"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/377769.377778"},{"key":"e_1_3_2_1_25_1","volume-title":"XML","author":"Nuccitelli R.","year":"2010","unstructured":"R. Nuccitelli , E. Guerra , and C. Fernandes . Parsing XML documents in Java using annotations . In XML , Associated Technologies and Applications , 2010 . R. Nuccitelli, E. Guerra, and C. Fernandes. Parsing XML documents in Java using annotations. In XML, Associated Technologies and Applications, 2010."},{"key":"e_1_3_2_1_26_1","volume-title":"Graal project","author":"JDK.","year":"2013","unstructured":"Open JDK. Graal project , 2013 . URL http:\/\/openjdk.java.net\/projects\/ graal. OpenJDK. Graal project, 2013. URL http:\/\/openjdk.java.net\/projects\/ graal."},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1390630.1390656"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1868294.1868314"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/263700.263749"},{"key":"e_1_3_2_1_30_1","first-page":"147","article-title":"Language oriented programming","volume":"15","author":"Ward M. P.","year":"1995","unstructured":"M. P. Ward . Language oriented programming . Software-Concepts and Tools , 15 : 147 \u2013 161 , 1995 . M. P. Ward. Language oriented programming. Software-Concepts and Tools, 15:147\u2013161, 1995.","journal-title":"Software-Concepts and Tools"},{"key":"e_1_3_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2384577.2384587"},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2509578.2509581"},{"key":"e_1_3_2_1_33_1","volume-title":"Submitted to OOPSLA","author":"Zhang W.","year":"2014","unstructured":"W. Zhang , P. Larsen , S. Brunthaler , and M. Franz . Accelerating iterators in optimizing ast interpreters . In Submitted to OOPSLA , 2014 . Introduction System Structure Node Rewriting Expressing Specializations Truffle DSL Specializations Example Conditional Child Execution Optimization Type Check Elimination Specialization Reduction Guard Reduction DSL Implementation Annotation Processor Evaluation Initial Conversion to Truffle DSL Current use of Truffle DSL Related Work Conclusions W. Zhang, P. Larsen, S. Brunthaler, and M. Franz. Accelerating iterators in optimizing ast interpreters. In Submitted to OOPSLA, 2014. Introduction System Structure Node Rewriting Expressing Specializations Truffle DSL Specializations Example Conditional Child Execution Optimization Type Check Elimination Specialization Reduction Guard Reduction DSL Implementation Annotation Processor Evaluation Initial Conversion to Truffle DSL Current use of Truffle DSL Related Work Conclusions"}],"event":{"name":"GPCE'14: Generative Programming: Concepts and Experiences","location":"V\u00e4ster\u00e5s Sweden","acronym":"GPCE'14","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"]},"container-title":["Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2658761.2658776","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2658761.2658776","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:19:30Z","timestamp":1750216770000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2658761.2658776"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,9,15]]},"references-count":33,"alternative-id":["10.1145\/2658761.2658776","10.1145\/2658761"],"URL":"https:\/\/doi.org\/10.1145\/2658761.2658776","relation":{"is-identical-to":[{"id-type":"doi","id":"10.1145\/2775053.2658776","asserted-by":"object"}]},"subject":[],"published":{"date-parts":[[2014,9,15]]},"assertion":[{"value":"2014-09-15","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}