Structural resolution for abstract compilation of object-oriented languages