A $\pi$-Calculus Semantics of Java: The Full Definition

We present a formal semantics of the concurrent objectoriented programming language Java, as a mapping of Java programs to π-calculus processes. Our semantics shows how Java features such as polymorphism, typecasts, exceptions, per-thread memory caching, and native method invocations can together be modelled in the π-calculus.