@INPROCEEDINGS{HanusHuchNiederau00IFL,
author = "Hanus, M. and Huch, F. and Niederau, P.",
title = "An Object-Oriented Extension of the Declarative Multi-Paradigm Language Curry",
year = "2001",
publisher = "Springer LNCS 2011",
booktitle = "Proc.\ of the 12th International Workshop on Implementation
     of Functional Languages (IFL 2000)",
pages = "89-106",
abstract = {
  Curry combines the concepts of functional, logic and concurrent
  programming languages. Concurrent programming with ports allows
  the modeling of objects in Curry similar to
  object-oriented programming languages. In this paper, we present
  ObjectCurry, a conservative extension of Curry. ObjectCurry allows
  the direct definition of templates which play the role of classes in
  conventional object-oriented languages. Objects are instances of a
  template.  An object owns a state and reacts when it receives a
  message---usually by sending messages to other objects or
  a transformation of its state. ObjectCurry also provides
  inheritance between templates. Furthermore, we show how programs can
  be translated from ObjectCurry into Curry by exploiting the
  concurrency and distribution features of Curry. To
  implement inheritance, we extend the type system of Curry,
  which is based on parametric polymorphism, to include subtyping for
  objects and messages.
}
}

