Java: An Operational Java: An Operational Semantics Semantics
Gaurav Gaurav S.
- S. Kc
Kc B.
- B. Eng
- Eng. Project
Java: An Operational Java: An Operational Semantics Semantics - - PowerPoint PPT Presentation
Java: An Operational Java: An Operational Semantics Semantics Gaurav S. S. Kc Kc Gaurav B. Eng Eng. Project . Project B. Department of Computing Department of Computing Semantics of Java -- -- why? why? Semantics of Java
abstract abstract class Animal extends Object { class Animal extends Object { int int age; age; Animal Animal() { () { super super();} ();} int getAge int getAge() { ...} } () { ...} } public public final final class Dog extends Animal { class Dog extends Animal { final final int int legs = 4; legs = 4; final final static static boolean boolean hasTail hasTail = yes; = yes; Dog() { Dog() { this this(“ (“Laika Laika”); } ”); } Dog(String s) { Dog(String s) { super(); … } super(); … } int getAge int getAge(String name) { …} } (String name) { …} }
Accessibility checks
Semantics extension ...
Well-
formedness
Constructor invocation
Assignment
Semantics extension ...
Runtime checks
Class or interface v.s. object
Semantics extension ...
Instance fields & [inherited] instance fields
OutOfMemory
Static initialisation
same class
same class
parent class
parent class
static initialisation
static initialisation
public class public class C C extends extends B { B { int int x = 5; x = 5; public public C ( C (int int n) { n) { this this( (true true); ); print(n); print(n); } } private private C ( C (boolean boolean b) { b) { super super(); (); if if (b) … (b) … } } } }