COMBINING LOGIC- AND OBJECT-ORIENTED PROGRAMMING LANGUAGE PARADIGMS