Yet another higher-order Object-Oriented Language

By G.Delzanno and M.Martelli

What is it? Motivations & Foundations

YahOO is an object-oriented logic language. The starting point of our work was to find a logical counterpart of object-based languages like The Object Calculus and SELF, i.e., finding a logical representation of an object, seen as an entity encapsulating data and methods. In particular, hiding, self-application, and self-modifications would have been allowed in the target model. Higher-Order Linear Logic turned out to be the theoretical platform to achieve such aim. Starting from the interpretation of methods as clauses, we represent objects as atomic formulas embedding their methods. State updates are performed by exploiting linear implication, and formulas are treated as resources, i.e, created and consumed. Concurrency can be achieved exploiting a multi-conclusion sequent calculus.

Further readings:

[1] Objects in Forum Delzanno & Martelli, Proc. of ICLP 95, click here to download the gzipped postscript.

  • A prototype in lambdaProlog has been developed, its description can be found here.

  • The source code can be found here.