 Good afternoon everybody. Myself Nadish. I work for Java SQL team at Oracle and today I am going to talk about invoke dynamic, which is a new bytecode introduced in Java 7. In this talk, basically I am going to cover, basically answer three questions. Why invoke dynamic, what features it's provided and how it's provided. If you have any question, you can ask in between itself. Don't wait till end, because if you lost something in between, you lost the entire time. JVM languages are languages which you can run on top of Java virtual machine. And to run a language on JVM, we have to produce a properly valid class file which contains bytecodes. And there are 200 plus JVM languages and Java is the primary language which run on top of JVM. There are other languages like jruby, jayton, javascript, groovy, smalltalk, whatever language you name, it will have any JVM equivalent version. The problem with this thing is, basically JVM is designed primarily for Java and there is a type coupling between Java and JVM semantics. But semantics of other JVM languages, take example python. Its semantics is completely different from Java. For example, python is a dynamically typed language, but whereas Java is a statically typed language. Dynamic type in one diamond is, this is a python code where you can, this is a function which I defined. Here, this function will take two arguments, but contrary to Java, here we are not defining any type. And the variable will assign the type at runtime. If you are passing some integer to some, then A and B will assign to the type at the runtime. If you pass float, it will be float type. And basically, that's basically dynamic typing. At runtime, you will get the type. Then other...