Lambda the Ultimate

inactiveTopic ENVIRONMENTAL ACQUISITION - A NEW INHERITANCE MECHANISM
started 4/17/2002; 12:23:00 PM - last post 4/17/2002; 1:10:34 PM
Ehud Lamm - ENVIRONMENTAL ACQUISITION - A NEW INHERITANCE MECHANISM  blueArrow
4/17/2002; 12:23:00 PM (reads: 1808, responses: 1)
ENVIRONMENTAL ACQUISITION - A NEW INHERITANCE MECHANISM
(via Smeed/Udell/Udell)

ENVIRONMENTAL ACQUISITION - A NEW INHERITANCE MECHANISM. J. Gil and D. Lorenz. Technion Tech. Report LPCR9507

Nature vs. Nurture? The debate has obsessed the minds of psychologists and philosophers for many years. However, for the object-orienteer, it has never been a problem: an object inherits all of its properties. In this work we ask if an object should not be subject to environmental effects. We answer this question in the affirmative by demonstrating many cases in which the character of an object must be affected by the environment it is put in. We present a new abstraction mechanism - Environmental Acquisition - which allows a component to inherit properties from its enclosing composite(s). The need for environmental acquisition is demonstrated in several application domains. It is shown that the absence of environmental acquitision may lead to the creating of cumbersome programs. We propose a strongly typed model for environmental acquisition that allows static type checking of programs exploiting this mechanism, and compare it to several other mechanisms including ordinary inheritance and delegation.

I don't have the time to read this right now, but the first few pages seem interesting (and I like some work from the same authors, which I did read).

The relation to Zope (see the Byte column by Udell) is interesting. Can anyone elaborate on this?


Posted to OOP by Ehud Lamm on 4/17/02; 12:27:28 PM

Oleg - Re: ENVIRONMENTAL ACQUISITION - A NEW INHERITANCE MECHANISM  blueArrow
4/17/2002; 1:10:34 PM (reads: 696, responses: 0)
I have been using the 'environment acquisition' model since 1989, and found it very useful. This model is particularly beneficial in specifying a large number of various parameters and options. In my experience, a system of multi-level defaults is superior to the usual morass of command-line options or menu selections. I have implemented the environment acquisition model in C, C++, and Scheme and used it to specify parameters in complex numerical calculations and in requests for meteorological data.

http://pobox.com/~oleg/ftp/papers/Database_as-a_language.ps.gz
http://pobox.com/~oleg/ftp/Scheme/Request-Language.html

The last page points out C++ and Scheme implementations.