Article View: comp.std.c
Article #5178Re: switch (expression)
From: Richard Harter
Date: Fri, 15 Jul 1988 01:44
Date: Fri, 15 Jul 1988 01:44
26 lines
1579 bytes
1579 bytes
In article <12484@mimsy.UUCP> chris@mimsy.UUCP (Chris Torek) writes:
>A more general version appears in Mesa:
SELECT expression FROM
{ expression => statements }*
END
>(syntax very approximate). All `expression's are arbitrary; the
>language is defined such that the first `expr =>' that matches the
>selected expression takes effect. It is up to the optimiser to notice
>that all the `expr =>'s are constant (if indeed they are) and turn this
>into a computed goto; if some of the `expr's are non-constant, the
>whole thing must usually be compiled as a series of if/else tests.
Turning a list of constants into a form suitable for a computed goto
is non trivial if the constants are widely scattered in value. A smart
compiler could construct a hash table to map the constants into a tight
integer range. If the compiler does do this, then the SELECT-FROM-END
construct will produce code superior to that likely to be produced by
a human being when you have a long list.
--
In the fields of Hell where the grass grows high
Are the graves of dreams allowed to die.
Richard Harter, SMDS Inc.
Technical Details
Message-ID:
<30937@cca.CCA.COM>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!pacbell!ames!husc6!cca!g-rhReferences:
<1988Jul12.105547.13268@light.uucp> <7329@cup.portal.com> <12484@mimsy.UUCP>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!pacbell!ames!husc6!cca!g-rh From: g-rh@cca.CCA.COM (Richard Harter) Newsgroups: comp.std.c Subject: Re: switch (expression) Message-ID: <30937@cca.CCA.COM> Date: 15 Jul 88 01:44:55 GMT References: <1988Jul12.105547.13268@light.uucp> <7329@cup.portal.com> <12484@mimsy.UUCP> Reply-To: g-rh@CCA.CCA.COM (Richard Harter) Organization: Computer Corp. of America, Cambridge, MA Lines: 26