From: doug@cs.dartmouth.edu (Doug McIlroy)
Subject: [TUHS] Comments on "C"
Date: Thu, 08 Sep 2016 22:43:35 -0400 [thread overview]
Message-ID: <201609090243.u892hZnO042852@tahoe.cs.Dartmouth.EDU> (raw)
I sent a similar message some time ago, but I haven't
seen it appear in the mailing list, so here goes again.
Apologies if it ends up as a duplicate.
> After about 30 years of C, there are only three things I would have liked
> to see:
>
> 1. Computed goto
> ...
> Computed goto's are good for interpreters.
A computed goto is an optimized switch, and that optimization
goes back to the original C compiler. Mostly driven by
considerations of size and speed of the Unix kernel, Dennis
quite early on taught the compiler to choose among three
compilation strategies for a switch: a chain of comparisons,
a tree of comparisons, or a computed goto, depending on the
number and density of alternatives.
The compilation of the system-call dispatch table was
a perfect example of "good for interpreters."
I have always assumed that other mainline compilers behave
similarly, but I have no solid knowledge about that.
doug
next reply other threads:[~2016-09-09 2:43 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-09 2:43 Doug McIlroy [this message]
-- strict thread matches above, loose matches on Subject: below --
2016-09-08 13:30 Noel Chiappa
2016-09-08 14:22 ` Tony Finch
2016-09-08 19:20 ` Ron Natalie
2016-09-08 22:06 ` Dave Horsfall
2016-09-09 3:02 ` Ronald Natalie
2016-09-09 6:06 ` Diomidis Spinellis
2016-09-09 21:15 ` Mary Ann Horton
2016-09-08 12:35 Doug McIlroy
2016-09-09 17:07 ` scj
2016-09-01 9:17 Norman Wilson
2016-09-01 15:11 ` Clem Cole
2016-09-01 21:47 ` Tim Bradshaw
2016-09-02 0:11 ` Mary Ann Horton
2016-09-02 7:10 ` Steve Simon
2016-09-02 10:02 ` Steve Nickolas
2016-09-02 14:13 ` Random832
2016-09-02 21:23 ` Dave Horsfall
2016-09-04 17:03 ` scj
2016-09-05 13:07 ` Ron Natalie
2016-09-04 22:24 ` Nemo
2016-08-28 18:21 Dave Horsfall
2016-08-29 0:37 ` Marc Rochkind
2016-08-29 0:42 ` Larry McVoy
2016-08-29 1:54 ` Steve Nickolas
2016-09-08 1:19 ` Blake McBride
2016-08-29 3:16 ` Greg 'groggy' Lehey
2016-08-31 10:02 ` Tim Bradshaw
2016-08-31 12:59 ` John Cowan
2016-08-31 13:32 ` Ron Natalie
2016-08-31 14:37 ` John Cowan
2016-08-31 13:57 ` Brantley Coile
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201609090243.u892hZnO042852@tahoe.cs.Dartmouth.EDU \
--to=doug@cs.dartmouth.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).