[E-Lang] Syntax change: reducing side-effects

Bill Frantz frantz@pwpconsult.com
Sun, 11 Feb 2001 21:29:17 -0800

I like the idea.  Kind of like making Java names default to final.

At 2:38 PM -0800 2/11/01, Dean Tribble wrote:
>- For defining occurrence without the 'var' keyword, the guard is always
>and only a ValueGuard.  If absent, the guard defaults to the ValueGuard,
>':any'.  It can be translated into Kernel E as always being wrapped with a
>'final' SlotMaker.  The compiler must statically reject assignments to
>names defined without 'var'.
>- For defining occurrences that are prefixed with the 'var' keyword, the
>guard is always a SlotGuard.  If absent, it defaults to ':settable'.
>- User-defined SlotGuards can only be used with a 'var' prefix.  As a
>result, the reader of the code (including a compiler) is guaranteed that
>unless there is a 'var' prefix, the value of the variable will only ever be
>the initial value (i.e., user-defined SlotGuards can allow assignments).

I assume that user defined ValueGuards can be used with "define"d names.  I
have always thought guards made a good form of "assert" statement.

I can think of a few kludges to deal with the edit/compile/test cycle.  Is
there an elegant solution?

Cheers - Bill

Bill Frantz       | Microsoft Outlook, the     | Periwinkle -- Consulting
(408)356-8506     | hacker's path to your      | 16345 Englewood Ave.
frantz@netcom.com | hard disk.                 | Los Gatos, CA 95032, USA