From parlog to polka in two easy steps

  • Andrew Davison
Session: Modular Logic Programming
Part of the Lecture Notes in Computer Science book series (LNCS, volume 528)


In our opinion, the Object Oriented Programming (OOP) and concurrent Logic Programming (LP) paradigms offer complimentary functionality, which taken as a whole is more expressive than either separately. For this reason, the two object oriented extensions to the concurrent LP language Parlog discussed here support both paradigms.

The simpler extension is called Parlog ++, which combines Parlog with the basic object oriented features of encapsulation, data hiding and message passing. It is a subset of a more complex language called Polka, which also supports multiple inheritance and self communication.

Since Polka combines two paradigms, it has the drawback that a potential user will need to be familiar with both programming approaches before being able to use the language. However, the learning barrier can be reduced by initially using the simpler language Parlog++. This has many benefits, not least being that it enables process-based programs to be written as objects. Once the programmer is familiar with Parlog++ it is considerably easier to move over to Polka which offers more OOP functionality. These two ‘easy’ steps are illustrated in this paper.


Logic Programming Message Passing Object Orient Program Data Hiding Input Stream 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. CONLON, T. 1989. Programming in Paralog, Addison Wesley, Reading, Mass.Google Scholar
  2. DAVISON, A. 1989. "Polka: A Parlog Object Oriented Language", PhD thesis, Imperial College, November.Google Scholar
  3. GREGORY, S. 1987. Parallel logic programming in PARLOG, Addison Wesley, Reading, Mass.Google Scholar
  4. KAHN, K.M., TRIBBLE, D., MILLER, M.S., and BOBROW, D.G. 1987. "Vulcan: Logical Concurrent Objects", In Concurrent Prolog: Collected Papers, E.Y. Shapiro (ed.), MIT Press, Cambridge, MA, Vol. 2, Chapter 30, pp.274–303.Google Scholar
  5. SHAPIRO, E., and TAKEUCHI, A. 1983. "Object Oriented Programming in Concurrent Prolog", New Generation Computing 1 (1983), pp.25–48.Google Scholar
  6. YOSHIDA, K., AND CHIKAYAMA, T. 1987. "A'UM — Parallel Object-Oriented Language upon KL1", ICOT Technical Report: TR 335, Tokyo, Japan.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Andrew Davison
    • 1
  1. 1.Dept. of ComputingImperial CollegeLondonUK

Personalised recommendations