{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:13:17Z","timestamp":1750306397853,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":23,"publisher":"ACM","license":[{"start":{"date-parts":[[2015,9,8]],"date-time":"2015-09-08T00:00:00Z","timestamp":1441670400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100004952","name":"Atlantic Canada Opportunities Agency","doi-asserted-by":"publisher","award":["195163"],"award-info":[{"award-number":["195163"]}],"id":[{"id":"10.13039\/501100004952","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2015,9,8]]},"DOI":"10.1145\/2807426.2807440","type":"proceedings-article","created":{"date-parts":[[2015,9,15]],"date-time":"2015-09-15T15:02:27Z","timestamp":1442329347000},"page":"159-169","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Mining Method Handle Graphs for Efficient Dynamic JVM Languages"],"prefix":"10.1145","author":[{"given":"Shijie","family":"Xu","sequence":"first","affiliation":[{"name":"IBM Centre for Advanced Studies (CAS Atlantic), University of New Brunswick, Fredericton, Canada E3B 5A3"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"David","family":"Bremner","sequence":"additional","affiliation":[{"name":"IBM Centre for Advanced Studies (CAS Atlantic), University of New Brunswick, Fredericton, Canada E3B 5A3"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Daniel","family":"Heidinga","sequence":"additional","affiliation":[{"name":"IBM Ottawa, 770 Palladium Dr, Ottawa, ON, Canada, K2V 1C8"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2015,9,8]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"Charles Nutter. A First Taste of InvokeDynamic. http:\/\/blog.headius.com\/2008\/09\/first-taste-of-invokedynamic.html.  Charles Nutter. A First Taste of InvokeDynamic. http:\/\/blog.headius.com\/2008\/09\/first-taste-of-invokedynamic.html."},{"key":"e_1_3_2_1_2_1","unstructured":"Charles Nutter. Invokedynamic in 45 minutes. http:\/\/www.jfokus.se\/jfokus13\/preso\/jf13InvokeDynamic.pdf.  Charles Nutter. Invokedynamic in 45 minutes. http:\/\/www.jfokus.se\/jfokus13\/preso\/jf13InvokeDynamic.pdf."},{"key":"e_1_3_2_1_3_1","unstructured":"Computer Programming Benchmark Game. http:\/\/benchmarksgame.alioth.debian.org\/.  Computer Programming Benchmark Game. http:\/\/benchmarksgame.alioth.debian.org\/."},{"key":"e_1_3_2_1_4_1","unstructured":"IBM Diagnostic Tools for Java. http:\/\/www.ibm.com\/developerworks\/java\/jdk\/tools\/dtfj.html.  IBM Diagnostic Tools for Java. http:\/\/www.ibm.com\/developerworks\/java\/jdk\/tools\/dtfj.html."},{"key":"e_1_3_2_1_5_1","unstructured":"J9 VM. https:\/\/www-01.ibm.com\/support\/knowledgecenter\/SSYKE2\\_7.0.0\/com.ibm.java.win.70.doc\/user\/java\\_jvm.html.  J9 VM. https:\/\/www-01.ibm.com\/support\/knowledgecenter\/SSYKE2\\_7.0.0\/com.ibm.java.win.70.doc\/user\/java\\_jvm.html."},{"key":"e_1_3_2_1_6_1","unstructured":"JSR 292: Supporting Dynamically Typed Languages on the Java\u2122 Platform. https:\/\/jcp.org\/en\/jsr\/detail?id=292.  JSR 292: Supporting Dynamically Typed Languages on the Java\u2122 Platform. https:\/\/jcp.org\/en\/jsr\/detail?id=292."},{"key":"e_1_3_2_1_7_1","unstructured":"JVM instruction set HotSpot. http:\/\/docs.oracle.com\/javase\/specs\/jvms\/se7\/html\/jvms-6.html.  JVM instruction set HotSpot. http:\/\/docs.oracle.com\/javase\/specs\/jvms\/se7\/html\/jvms-6.html."},{"key":"e_1_3_2_1_8_1","unstructured":"JVM instruction set wiki. http:\/\/en.wikipedia.org\/wiki\/Java_bytecode_instruction_listings.  JVM instruction set wiki. http:\/\/en.wikipedia.org\/wiki\/Java_bytecode_instruction_listings."},{"key":"e_1_3_2_1_9_1","unstructured":"Method Handle-An IBM implementation. http:\/\/wiki.jvmlangsummit.com\/images\/a\/ad\/J9_MethodHandle_Impl.pdf.  Method Handle-An IBM implementation. http:\/\/wiki.jvmlangsummit.com\/images\/a\/ad\/J9_MethodHandle_Impl.pdf."},{"key":"e_1_3_2_1_10_1","unstructured":"MethodHandle Implemention Tips and Tricks. http:\/\/wiki.jvmlangsummit.com\/images\/6\/6b\/2011_Heidinga.pdf.  MethodHandle Implemention Tips and Tricks. http:\/\/wiki.jvmlangsummit.com\/images\/6\/6b\/2011_Heidinga.pdf."},{"key":"e_1_3_2_1_11_1","unstructured":"MethodHandles-Java Platform SE7. http:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/lang\/invoke\/MethodHandles.html#dropArguments\\%28java.lang.invoke.MethodHandle \\%20int \\%20java.lang.Class...\\%29.  MethodHandles-Java Platform SE7. http:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/lang\/invoke\/MethodHandles.html#dropArguments\\%28java.lang.invoke.MethodHandle \\%20int \\%20java.lang.Class...\\%29."},{"key":"e_1_3_2_1_12_1","unstructured":"New JDK 7 Feature: Support for Dynamically Typed Languages in the Java Virtual Machine. http:\/\/www.oracle.com\/technetwork\/articles\/java\/dyntypelang-142348.html.  New JDK 7 Feature: Support for Dynamically Typed Languages in the Java Virtual Machine. http:\/\/www.oracle.com\/technetwork\/articles\/java\/dyntypelang-142348.html."},{"key":"e_1_3_2_1_13_1","unstructured":"The DOT Language in Graphviz. http:\/\/www.graphviz.org\/content\/dot-language.  The DOT Language in Graphviz. http:\/\/www.graphviz.org\/content\/dot-language."},{"key":"e_1_3_2_1_14_1","unstructured":"Trail: The Reflection API. http:\/\/docs.oracle.com\/javase\/tutorial\/reflect\/.  Trail: The Reflection API. http:\/\/docs.oracle.com\/javase\/tutorial\/reflect\/."},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2259051.2259059"},{"key":"e_1_3_2_1_16_1","volume-title":"Java SE 7 Edition","author":"Gosling J.","year":"2013","edition":"1"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500828.2500838"},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500828.2500844"},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1711506.1711508"},{"key":"e_1_3_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2661020.2661032"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2542142.2542144"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2462029.2462033"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1852761.1852763"}],"event":{"name":"PPPJ '15: Principles and Practices of Programming on the Java Platform","sponsor":["ACM Association for Computing Machinery"],"location":"Melbourne FL USA","acronym":"PPPJ '15"},"container-title":["Proceedings of the Principles and Practices of Programming on The Java Platform"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2807426.2807440","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2807426.2807440","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T05:07:23Z","timestamp":1750223243000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2807426.2807440"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2015,9,8]]},"references-count":23,"alternative-id":["10.1145\/2807426.2807440","10.1145\/2807426"],"URL":"https:\/\/doi.org\/10.1145\/2807426.2807440","relation":{},"subject":[],"published":{"date-parts":[[2015,9,8]]},"assertion":[{"value":"2015-09-08","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}