non-Erlang Erlang grammars

Robert Virding <>
Mon Oct 23 15:12:19 CEST 2000


Ulf Wiger <> writes:
>
>I've spent some time pondering the match specifications for trace
>and (not yet released) ets. While the functionality is powerful
>and much wanted, I think it's really too bad that one can't specify
>the filters using Erlang pattern matching syntax, which is already so
>familiar.
>

One thing I thought might be a good way to solve this this problem 
would be to use funs, BUT be extremely restrictive in what is allowed 
within the fun, basically matching and simple BIFs.  No function calls 
at all or data creation either.

This checking could be done at run time so no extra langauge constructs 
or definitions are necessary.

What it can't do is allow you to construct match specifications on the 
fly.

The problem with all this is of course that as an ets table doesn't 
exist within any process there is no context in which to evaluate the 
fun.  Therefore you have to be extremely restrictive.  With a bit of 
trickery you could probably allow calls to local functions as long as 
they obey the ame restricitive rules.  To handle recursion just allow 
at most one time slice per check, anything longer results in a fail, or 
error.

While this operationally might not give you more than match specs it at 
least uses existing features in a relatively clean way.  And I agree, 
match specs are ugly.

	Robert

-- 
Robert Virding                          Tel: +46 (0)8 545 55 017
Alteon Web Systems                      Email: 
S:t Eriksgatan 44                       WWW: http://www.bluetail.com/~rv
SE-112 34 Stockholm, SWEDEN
"Folk säger att jag inte bryr mig om någonting, men det skiter jag i".





More information about the erlang-questions mailing list