This paper presents a novel programming language called LOC(Logical Ob
jects with Constraints), which combines logic programming and object-o
riented programming paradigms. In LOG, logical objects are viewed as a
bstractions with state, constraints, behaviors and inheritance. It the
refore supports such notions as inheritance, modularity and reusabilit
y, which have turned out to be extremely useful for large scale softwa
re systems. The operational interpretation defined in the style of nat
ural semantics is simple and clear. The transformation of LOC into Pro
log is also explored to indirectly illustrate the descriptive semantic
s.