[E-Lang] New in 0.8.9k: Locally Untrusted Code & Confinement! (Part 1)

Dan Bornstein danfuzz@milk.com
Wed, 29 Nov 2000 14:20:55 -0800 (PST)


Mark writes:
>Therefore, since we wish to eventually have a ":confined" guard that 
>actually checks something, we define BobProgFactory as being "checkably 
>confined" or just "confined", and we define Bob as being "indirectly 
>confined".  I don't love these terms, and better ones are welcome.

The term I learned to use for the concept I believe you're describing is
"pure function." By definition, the return values from calling a pure
function multiple times with identical arguments should be effectively
identical, for some salient definition of "identical." Additionally, if the
arguments to a pure function are all pure constants (that is, transitively
immutable values that are incapable of granting authority), then the result
of calling that function is also guaranteed to be pure, and the call itself
becomes eligible for compile-time optimization, in the form of either
common subexpression elimination (read "caching"), or full compile-time
evaluation.

BobProgFactory sounds like a pure function to me. I have no insight as to a
glib name for Bob, the possibly-impure result of calling a pure function.

-dan