Foundations of object-oriented programming (abstract)