Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #136454
| Path | csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail |
|---|---|
| From | Ian Collins <ian-news@hotmail.com> |
| Newsgroups | comp.lang.c |
| Subject | Re: An enhancement |
| Date | Tue, 9 Oct 2018 13:30:06 +1300 |
| Lines | 73 |
| Message-ID | <g22b4eFjb2cU2@mid.individual.net> (permalink) |
| References | <531a5bb6-dc81-4eeb-9adf-1bf8eb310f65@googlegroups.com> <qwerty@bongo-ra.co> <d914e1c3-07c3-4c30-8ee4-a603528e0eee@googlegroups.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8; format=flowed |
| Content-Transfer-Encoding | 7bit |
| X-Trace | individual.net P5NmAo9OZN+WpPbOAx9yvAtX3nW9JRA+y2ywAq4Fm/jq+PppO4 |
| Cancel-Lock | sha1:e6/qHiSYDJ3hB9tO1F2rKzNbvPQ= |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
| In-Reply-To | <d914e1c3-07c3-4c30-8ee4-a603528e0eee@googlegroups.com> |
| Content-Language | en-US |
| Xref | csiph.com comp.lang.c:136454 |
Show key headers only | View raw
On 09/10/18 13:22, David Kleinecke wrote:
> On Monday, October 8, 2018 at 4:38:02 PM UTC-7, Spiros Bousbouras wrote:
>> On Mon, 8 Oct 2018 15:44:14 -0700 (PDT)
>> David Kleinecke <dkleinecke@gmail.com> wrote:
>>> I want to propose an enhancement:
>>>
>>> Add to C the statement type
>>> DO identifier SEMICOLON
>>> where the identifier is a label. The meaning is that
>>> the statement just identified is replaced by the
>>> statement following the label.
>>
>> [...]
>>
>>> The purpose of this enhancement is to enable
>>> top-down coding in the sense Knuth wanted with
>>> his literate programming. You can write code
>>> like:
>>> int foo (int x) {
>>> if (x < 0) do trivial_case;
>>> else if (x == 0) do easy_case;
>>> else do usual_case;
>>> return;
>>> trivial_case: {
>>> .... }
>>> easy_case: {
>>> .... }
>>> usual_case: {
>>> .... }}
>>> which is generally easier to understand if you have
>>> given as labels good descriptive phrases.
>>
>> You could achieve the same with macros :
>>
>> int foo (int x) {
>> #define trivial_case { \
>> .... \
>> }
>> #define easy_case { \
>> .... \
>> }
>> #define usual_case { \
>> .... \
>> }
>> if (x < 0) trivial_case
>> else if (x == 0) easy_case
>> else usual_case
>> return 13 ;
>> }
>>
>> Your code looks cleaner but I'm not sure the difference is worth adding
>> the new syntax.
>
> Since I am writing a compiler an enhancement is easy.
>
> The problem with macros is that they must be defined before
> they are used. That also applies to functions. IMO top-down
> more less dictates that the top level be presented to the
> reader first.
So you declare the functions in a header.
Your suggestion would make functions longer, which is usually a bad
idea. If you have a discrete task, put it in a function.
> Many other ideas are possible but I want to make as few
> changes as possible to C (which I still think of as C90).
> Enhancements have always been envisioned.
You don't need to make any if you stick with good modularisation.
--
Ian
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-08 15:44 -0700
Re: An enhancement Ian Collins <ian-news@hotmail.com> - 2018-10-09 11:48 +1300
Re: An enhancement Spiros Bousbouras <spibou@gmail.com> - 2018-10-08 23:16 +0000
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-09 00:30 +0100
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-08 17:24 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-09 02:12 +0100
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-08 22:42 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-09 14:41 +0100
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-09 11:15 +0200
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-09 16:09 +0100
GCC nested functions: deprecated? (Was: An enhancement) gazelle@shell.xmission.com (Kenny McCormack) - 2018-10-09 15:36 +0000
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-09 21:01 +0200
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-09 11:43 +0100
Re: An enhancement already5chosen@yahoo.com - 2018-10-09 04:08 -0700
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-09 12:29 +0100
Re: An enhancement Spiros Bousbouras <spibou@gmail.com> - 2018-10-08 23:37 +0000
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-08 17:22 -0700
Re: An enhancement Ian Collins <ian-news@hotmail.com> - 2018-10-09 13:30 +1300
Re: An enhancement Spiros Bousbouras <spibou@gmail.com> - 2018-10-09 05:23 +0000
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-08 22:50 -0700
Re: An enhancement Richard Damon <Richard@Damon-Family.org> - 2018-10-09 08:28 -0400
Re: An enhancement Wouter Verhelst <w@uter.be> - 2018-10-09 14:05 +0200
C is often used as an "implementation language" for other languages. (Was: An enhancement) gazelle@shell.xmission.com (Kenny McCormack) - 2018-10-09 13:13 +0000
Re: C is often used as an "implementation language" for other languages. (Was: An enhancement) David Brown <david.brown@hesbynett.no> - 2018-10-09 16:51 +0200
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-09 14:17 +0100
Re: An enhancement Thiago Adams <thiago.adams@gmail.com> - 2018-10-09 05:20 -0700
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-09 11:33 -0700
Re: An enhancement Thiago Adams <thiago.adams@gmail.com> - 2018-10-09 13:41 -0700
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-09 12:35 +0100
Re: An enhancement Wouter Verhelst <w@uter.be> - 2018-10-09 14:04 +0200
Re: An enhancement Spiros Bousbouras <spibou@gmail.com> - 2018-10-09 12:29 +0000
Re: An enhancement Wouter Verhelst <w@uter.be> - 2018-10-09 19:50 +0200
Re: An enhancement queequeg@trust.no1 (Queequeg) - 2018-10-15 09:19 +0000
Re: An enhancement already5chosen@yahoo.com - 2018-10-15 03:07 -0700
Re: An enhancement Ian Collins <ian-news@hotmail.com> - 2018-10-15 23:18 +1300
Re: An enhancement already5chosen@yahoo.com - 2018-10-15 03:39 -0700
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-15 13:03 +0200
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-15 12:15 +0100
Re: An enhancement Thiago Adams <thiago.adams@gmail.com> - 2018-10-15 05:20 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-15 15:39 +0100
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-15 14:36 +0200
Re: An enhancement Thiago Adams <thiago.adams@gmail.com> - 2018-10-15 05:59 -0700
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-15 15:08 +0200
Re: An enhancement Thiago Adams <thiago.adams@gmail.com> - 2018-10-15 07:25 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-15 15:44 +0100
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-15 19:02 -0700
Re: An enhancement Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-10-16 05:55 +0000
Re: An enhancement jameskuyper@alumni.caltech.edu - 2018-10-16 05:37 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-16 15:11 +0100
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-16 13:33 -0700
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-16 21:27 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-16 14:57 +0100
Re: An enhancement scott@slp53.sl.home (Scott Lurndal) - 2018-10-16 14:24 +0000
Re: An enhancement mark.bluemel@gmail.com - 2018-10-16 07:28 -0700
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-16 15:25 +0100
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-15 11:44 +0100
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-15 13:08 +0200
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-15 11:22 +0100
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-15 13:01 +0200
Re: An enhancement Nick Bowler <nbowler@draconx.ca> - 2018-10-15 14:43 +0000
csiph-web