Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.compilers > #1338
| From | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
|---|---|
| Newsgroups | comp.compilers |
| Subject | Re: How to type braces for computed gotos (was: Best "simple" C Compiler I've ever seen) |
| Date | 2014-07-21 11:45 +0000 |
| Organization | Institut fuer Computersprachen, Technische Universitaet Wien |
| Message-ID | <14-07-048@comp.compilers> (permalink) |
| References | <14-05-013@comp.compilers> <14-07-033@comp.compilers> |
federation2005@netzero.com writes: >There is one feature the compiler tests for that I assume the language also >has in it that I haven't seen much of before: the computed goto. What's I >don't quite understand how the branches are being typed. A computed goto >inside a void routine has the branches typed (void *), with the individual >items accessed in effect as references to (void *). > >The branches are essentially continuations. So the question here is how are >continuations being typed. From the example used in the distribution, either >(A) all continuations are typed (void *) or they are being typed (T *) when >they occur inside a function that returns type T. I guess this compiler implements the labels-as-values extension of GNU C (aka "computed goto", but see the Fortran note below). The type of a label is always void *; static typing fans might prefer a separate label type (or a whole type system for labels), but I guess that the intersection between static typing fans and the users of this extension is very small. I have used labels-as-values extensively and I have not produced errors stemming from confusion between labels and other occurences of void *. BTW, in Fortran this feature is called "assigned goto", and it uses integer variables (i.e., not a special type, either) for storing the labels (and therefore needs a separate syntax "assign 50 to l" instead of just writing "l=50"). Fortran also has a feature called "computed goto", but that is closer to a C switch than a GNU C "goto *". - anton -- M. Anton Ertl anton@mips.complang.tuwien.ac.at http://www.complang.tuwien.ac.at/anton/
Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Best "simple" C Compiler I've ever seen andrewchamberss@gmail.com - 2014-05-04 18:23 -0700
Re: Best "simple" C Compiler I've ever seen federation2005@netzero.com - 2014-06-30 12:42 -0700
How to type braces for computed gotos (was: Best "simple" C Compiler I've ever seen) federation2005@netzero.com - 2014-07-18 14:44 -0700
Re: How to type braces for computed gotos glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-07-19 02:21 +0000
Re: How to type braces for computed gotos Ivan Godard <ivan@ootbcomp.com> - 2014-07-18 21:59 -0700
Re: How to type braces for computed gotos federation2005@netzero.com - 2014-07-21 10:32 -0700
Re: How to type braces for computed gotos (was: Best "simple" C Compiler I've ever seen) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-07-21 11:45 +0000
Re: How to type braces for computed gotos glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-07-21 16:19 +0000
Re: How to type braces for computed gotos wclodius@earthlink.net (William Clodius) - 2014-07-21 21:44 -0600
Re: How to type braces for computed gotos glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2014-07-23 00:35 +0000
Re: How to type braces for computed gotos wclodius@earthlink.net (William Clodius) - 2014-07-22 22:36 -0600
Re: How to type braces for computed gotos anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2014-07-25 22:38 -0400
csiph-web