Regular assignment such as "a = b".
Assignment of an abstract object to the variable, such as
" a = new A()", which is considered to add a target in a's
This method is used to fomulate the effect of getting
an environmental constant object such as 'getClass'.
Throw of an abstract object as an exception.
Returns a reference variable representing the array element of
this variable. Now it does not look at the array index.
Returns a variable which has the effect of cloning.
A moderate approach would return the variable itself.
e.g., a = b.clone() will be rendered to:
Va = Vr;
Returns a variable which carries an allocation site with
the least type (an artificial type, subtype of any other types,
which means such type info is useless for resolving invocation
It is used for simulating java.lang.Class.newInstance0();
- variable mush have CLASSCLASS type.
Returns a reference variable representing a static Java field.
The implementation must ensure that there is only one such
representation for each static field.
field, must be a static field
Returns a variable representing a non-existing Java field, used by
e.g., java.lang.Class: getSingers, setSigners
java.lang.Class: getProtectionDomain0, setProtectionDomain0
To simplify simulation, the temporary field variable is like a
The temporary fields are uniquely indexed by signatures.
Make a temporary variable.
It is used for assignment where both sides are complex variables.
e.g., for java.lang.System arraycopy(src, ..., dst, ...)
instead of make an expression : dst = src,
it introduces a temporary variable
t = src
dst = t
The temporary variable has to be unique.
Sub classes should implement both.