We have constructed a new logic programming language, which is tentatively called PAL-II, where (1) users can create various objects by defining the algorithm to unify such objects, (2) users can define relations between objects. We have shown the availability of PAL-II for constructing of natural language understanding systems and learning systems. User defined objects are very useful for representing meanings of sentences, situation and knowledge as a logic program. By the transofrmation technique of such generalized logic programs, we can construct a procedure to find meaning from sentence. User defined objects are also very useful for representing a system of transforming degital circuits as a logic program. By the transformation technique of such generalized logic programs, we can construct a procedure to compose two transformation rules into a new one. We have also shown that programming languages such as miranda and smalltalk are declaratively embeded into out PALL-II, which sugests that PAL-II provides a new unifying framework for many programming languages.