Some thoughts on the 'reveal' operator
Norman Hardy
norm@netcom.com
Thu, 21 Oct 1999 16:31:39 -0700
At 9:49 AM -0700 9/24/99, Marc Stiegler wrote:
...
>
>However, this also means that the value returned from a computation is
>always a capability at risk of being sent off into the far distance. In the
>absence of a reveal operation, in the presence of a computation that has no
>particular return value, E's default behavior (of returning whatever
>happened to be the result of the last operation) is a security breach. This
>seems inappropriate for a language with the goal of allowing secure
>computation.
>
Just for reference Algol68 does static typing and the head of the procedure
expression will say "void" for routines that return nothing. The last
expression-statment is "voided", a coersion, in such a routine.
Is it useful for a routine to return a value sometimes and not others? It
is useful to look at a routine head and see if what it returns, if the
programmer knows.
Sometimes I like static types and sometimes I don't.
Algol68 unified parenthesis and scope defining blocks. There it would have
been necessary to reveal the "3+5" in "4*(3+5)".
...
Norman Hardy <http://www.mediacity.com/~norm>