de.rwth.dfa.jvm.samples
Class CFPStackLattice

java.lang.Object
  |
  +--de.rwth.domains.templates.LiftedPOSet
        |
        +--de.rwth.domains.templates.LiftedCompleteLattice
              |
              +--de.rwth.dfa.jvm.samples.CFPStackLattice
All Implemented Interfaces:
CompleteLattice, CompletePOSet, Lattice, LowerSemiLattice, POSet, PreLattice, PreLowerSemiLattice, PreUpperSemiLattice, Set, UpperSemiLattice

public class CFPStackLattice
extends LiftedCompleteLattice

The lattice used by the constant folding propagation lattice to describe the state of the operand stack. The Hasse diagram looks like this:

    unknown stack
   /            \
   ... stacks ...
   \            /
    invalid stack
 
Each proper stack element is a stack with the maximal height of the operand stack of the method. Each entry is an element of CFPComponentLattice.

Version:
$Id: CFPStackLattice.java,v 1.2 2002/09/17 06:53:53 mohnen Exp $
Author:
Markus Mohnen

Inner classes inherited from class de.rwth.domains.Set
Set.Default
 
Field Summary
protected static java.lang.Object INVALIDSTACK
          The top element for invalid stacks of all these lattices.
protected static java.lang.Object UNKNOWNSTACK
          The top element for unknown stacks of all these lattices.
 
Fields inherited from class de.rwth.domains.templates.LiftedCompleteLattice
top
 
Fields inherited from class de.rwth.domains.templates.LiftedPOSet
bottom, poset
 
Constructor Summary
CFPStackLattice(int maxStack)
          Creates a new CFPStackLattice instance.
 
Method Summary
 java.lang.Object getStack(java.lang.Object o)
          Returns the contained stack for all elements except top and bottom.
static void main(java.lang.String[] args)
          Mini test environment.
 java.lang.Object makeElement(java.lang.Object stack)
          Checks if the argument is an element and returns it.
 
Methods inherited from class de.rwth.domains.templates.LiftedCompleteLattice
bottom, equals, isElement, iterator, iteratorSkel, join, le, lt, meet, size, sizeSkel, top
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

UNKNOWNSTACK

protected static final java.lang.Object UNKNOWNSTACK
The top element for unknown stacks of all these lattices.

INVALIDSTACK

protected static final java.lang.Object INVALIDSTACK
The top element for invalid stacks of all these lattices.
Constructor Detail

CFPStackLattice

public CFPStackLattice(int maxStack)
Creates a new CFPStackLattice instance.
Parameters:
maxStack - an int value
Method Detail

getStack

public java.lang.Object getStack(java.lang.Object o)
Returns the contained stack for all elements except top and bottom. Otherwise, returns its argument.
Parameters:
o - an Object value
Returns:
an Object value

makeElement

public java.lang.Object makeElement(java.lang.Object stack)
Checks if the argument is an element and returns it.
Parameters:
stack - an Object value
Returns:
an Object value

main

public static void main(java.lang.String[] args)
Mini test environment.
Parameters:
args - a String[] value