Characterization of object oriented languages