A parallel logic programming language GHC, proposed by Ueda (1985), is now playing a very important role in the Fifth Generation Computer Project. It is a successor of Relational Language (Clark and Gregory 1981), Concurrent Prolog (Shapiro 1983) and Parlog (Clark and Gregory 1984). Since GHC is totally based on parallelism, it provides a genuine tool for parallel programming. It encourages programmers to write parallel algorithms and therefore gives a foundation of parallel programming. We have also developed a program transformation technique for GHC programs which preserves the external behaviour of the original programs. To show the validity of the transformation technique, we have developed a formal semantics of possibly non-terminating GHC programs. The highly parallel prototype hardware of our project is now being developed to support the efficient execution of GHC programs.