Reusability and portability of logic programming