Question: Compiling is a process to conversion from one level of abstraction to lower level. Meanwhile transpiling is a process of conversion from one level of abstraction to another at same level like converting java code to Kotlin/python. That is my understanding of the two process. Could someone please explain it in terms of java code and jvm byte code. And is my inference correct?

Answer: 
> 
> Would conversion from java code to jvm byte code considered compiling or transpiling?
> 
> 
> 

It is compiling, according to the definitions that you give in your question. The bytecode instruction set is at a lower level of abstraction than Java source code.

---

Having said that, this distinction between compiling and transpiling is a bit nebulous, since there is no clear definition of a "level of abstraction".

For example, one could argue that since C is sometimes called "high level assembly language", C++ is at a higher level of abstraction than C. So does that make C++ -> C conversion compilation? Or are they at the same level of abstraction, which makes C++ -> C conversion transpilation? This is not totally academic because the first implementation of the C++ language *did* translate C++ to C source code ... IIRC.
It works as explained below:

> 
> Firstly java source code is converted into Bytecode file by the translator named “Compiler”. The byte code file gets name with .class extension and javac (java compiler) is the tool to compile the .java file.
> 
> 
> Then,
> 
> 
> `java` is a tool use to invoke Java Interpreter “JVM”. Now, the work of JVM starts. When JVM invoke,
> 
> 
> 1. a subprogram in JVM called Class loader (or system class loader) starts and load the bytecode into OS memory( or RAM).
> 2. another subprogram Bytecode Verifier verify and ensure that the code do not violate the security rules. That’s why the java program is much secured and virus free.
> 3. Then last subprogram Execution Engine finally converts bytecodes into machine code. The name of that engine are in use today is JIT Just In Compiler.
> 
> 
> 

You can read about the same here : <https://www.quora.com/How-does-the-Java-interpreter-JVM-convert-bytecode-into-machine-code>