From parlog to polka in two easy steps
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.
KeywordsLogic Programming Message Passing Object Orient Program Data Hiding Input Stream
Unable to display preview. Download preview PDF.
- CONLON, T. 1989. Programming in Paralog, Addison Wesley, Reading, Mass.Google Scholar
- DAVISON, A. 1989. "Polka: A Parlog Object Oriented Language", PhD thesis, Imperial College, November.Google Scholar
- GREGORY, S. 1987. Parallel logic programming in PARLOG, Addison Wesley, Reading, Mass.Google Scholar
- 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
- SHAPIRO, E., and TAKEUCHI, A. 1983. "Object Oriented Programming in Concurrent Prolog", New Generation Computing 1 (1983), pp.25–48.Google Scholar
- YOSHIDA, K., AND CHIKAYAMA, T. 1987. "A'UM — Parallel Object-Oriented Language upon KL1", ICOT Technical Report: TR 335, Tokyo, Japan.Google Scholar