Borneo and LIFE

Massimo Dentico m.dentico@galactica.it
Sat, 10 Feb 2001 23:57:23 +0100


Big excerpt from Borneo home page:

  - http://www.isg.sfu.ca/~hak/Borneo.html

==================================================================
Borneo is the name of a programming system that I am designing.
I carefully choose to use "programming system" rather than
"programming language"  because Borneo is actually a family of
languages, and language paradigms, at the disposal of a user
who wishes to write programs in any idiom of her choice -
whether pre designed or custom designed from scratch or by
extending and/or mixing extant predefined programming language
syntaxes and semantics. 

More precisely, it does so by: 

   1. abstracting syntax away - thanks to a simple but powerful
      parser generator; and, 

   2. customizing semantics - thanks to a calculus of composable
      abstract machines. 

In terms of evolution, the design and implementation of Borneo
originate from those of the Life  system. In fact, Borneo is the
realization having designed, implemented, and used Life  that: 

   1. many languages (be they based on wildly different semantics)
      still share many concepts (e.g., linear list, lexical scope,
      heap data, static data, garbage collectible data, nesting,
      pairing maps, structural or procedural continuations,
      multi-threading, etc...). These concepts can be designed as
      low-level abstract data types with public interfaces that
      ensure their safe and correct utilization.

   2. programming syntax is irrelevant and arbitrary; detaching
      semantics from a particular syntax by linking it to the
      basic semantics constructs such as those listed above is
      clearly the better alternative. Then, using a simple but
      flexible parser generator, any particular syntax can be
      linked to any semantics.

Following these observations, I have proceeded to design and
implement,  all in Java, Borneo as a successor to Life. Hence
the name: the former is the latter born anew in Java.

[...]
==================================================================

Note that Java is intended only as a bootstrap language,
the semantic model of Borneo has nothing in common with Java;
instead it's an extension of LIFE.

Unfortunately the project seem discontinued but a couple of
preliminary papers are worth of reading:

[1] "Composable Abstract Machines"

  - http://www.isg.sfu.ca/~hak/Research/current/metasolver.ps

[2] "Borneo - Foundation, Design, Implementation" (slides)

  - http://www.isg.sfu.ca/~hak/lectures/borneo.ps.gz

Excerpt from [1]:

==================================================================
[...]

The key idea behind the foregoing generic model is that it can be
viewed as a meta-compiler generating the appropriate abstract
machine code specified for arbitrary, as long as effective,
constraint logics as fine-grained as desired. Thus, the
formalization of CLP proposed in [3] abstracts away from syntax
thanks to a clear interface which need only specify, for any
formula, which variables are to be narrowed. It also abstracts
away from semantics thanks to an oracular solver for the specified
constraint language. I plan to study such a meta-compiling scheme
for mixed-constraint programming based on these ideas.

[...]
==================================================================

In [2] the author describes in much more details the semantic
model of Borneo.



LIFE home page: "LIFE - Logic, Inheritance, Functions, and Equations"

  - http://www.isg.sfu.ca/life/

What's LIFE? Abstract of the paper "PRL-RR-13: Functions as
Passive Constraints in LIFE":

==================================================================
LIFE is an experimental programming language proposing to integrate
logic programming, functional programming, and object-oriented
programming. It replaces first-order terms with psi-terms, data
structures which allow computing with partial information. These are
approximation structures denoting sets of values. LIFE further
enriches the expressiveness of psi-terms with functional dependency
constraints. We must explain the meaning and use of functions in LIFE
declaratively as solving partial information constraints. These
constraints do not attempt to generate their solutions but behave as
demons filtering out anything else. In this manner, LIFE functions
act as declarative coroutines. We need to show that the psi-term's
approximation semantics is congruent with an operational semantics
viewing functional reduction as an effective enforcing of passive
constraints.

In this article, we develop a general formal framework for entailment
and disentailment of constraints based on a technique called relative
simplification, we study its operational and semantical properties,
and we use it to account for functional application over psi-terms
in LIFE. 
==================================================================

Regards.

-- 
Massimo Dentico