Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #402647 > unrolled thread
| Started by | Lawrence D’Oliveiro <ldo@nz.invalid> |
|---|---|
| First post | 2026-10-03 08:43 +0000 |
| Last post | 2026-10-13 23:19 +0100 |
| Articles | 20 on this page of 350 — 21 participants |
Back to article view | Back to comp.lang.c
Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-03 08:43 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-03 11:24 +0100
Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-05 22:15 +0000
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-03 14:22 +0200
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-03 18:02 +0200
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-04 00:24 +0800
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-03 17:36 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-03 16:31 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-04 10:23 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-04 12:18 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-04 16:20 +0200
Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-05 21:34 +0000
Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-06 16:04 -0700
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-04 16:18 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-04 16:09 +0100
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-04 16:59 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-04 18:30 +0100
Re: Taming The Switch-Statement Richard Harnden <richard.nospam@gmail.invalid> - 2026-10-04 19:49 +0100
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-04 20:35 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-04 22:27 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-04 22:47 +0100
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-04 21:59 +0000
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-04 23:38 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-05 01:24 +0100
Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-05 21:48 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-06 00:11 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 09:49 +0200
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 11:12 +0200
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 12:41 +0200
Re: Taming The Switch-Statement Richard Harnden <richard.nospam@gmail.invalid> - 2026-10-06 12:33 +0100
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-06 15:16 +0100
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-06 14:37 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-06 17:27 +0100
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-06 23:14 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 01:25 +0100
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-07 04:19 +0000
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-07 06:28 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 11:39 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 12:57 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 11:32 +0100
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-07 15:10 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 19:41 +0100
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-08 04:49 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-08 12:24 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 09:07 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 11:49 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 13:11 +0200
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 16:17 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-06 15:32 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 17:25 +0200
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-06 14:39 +0000
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 19:48 +0200
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-06 18:12 +0000
[OT] substances (was Re: Taming The Switch-Statement) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 21:50 +0200
Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-06 17:06 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 19:25 +0200
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 10:28 +0200
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-07 15:16 +0200
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 16:40 +0200
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-08 07:24 -0700
Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-06 16:08 -0700
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-06 23:45 +0000
Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-06 17:08 -0700
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 10:35 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-06 12:33 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 17:16 +0200
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-06 16:41 -0700
Re: Taming The Switch-Statement tTh <tth@none.invalid> - 2026-10-06 12:14 +0200
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 12:43 +0200
Re: Taming The Switch-Statement Jim Jackson <jj@franjam.org.uk> - 2026-10-06 11:47 +0000
Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-06 16:05 -0700
Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-07 00:42 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 13:52 +0100
Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-07 14:06 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 23:31 +0100
Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-05 21:32 +0000
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-06 06:07 +0800
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-05 16:42 -0700
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-05 18:05 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 09:04 +0200
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-06 04:11 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 21:40 +0200
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-16 13:12 -0700
Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-06 00:59 -0700
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-06 08:16 +0000
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-06 04:21 -0700
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-16 04:46 -0700
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-06 14:43 +0000
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 17:36 +0200
Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-06 20:36 -0700
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-04 00:20 +0800
Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-04 09:05 -0700
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-04 23:44 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-05 01:46 +0100
Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-04 20:48 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-05 06:24 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-05 11:09 +0100
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-06 05:22 +0800
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-06 05:26 +0800
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-10 00:25 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 01:58 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-09 19:17 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 11:53 +0100
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 14:01 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 14:11 +0100
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-10 21:34 +0800
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-10 21:58 +0800
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-10 17:50 +0200
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-11 05:52 +0000
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-11 21:16 +0000
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-11 23:38 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 11:58 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-11 14:42 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 14:39 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-11 15:35 -0700
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-11 14:42 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 17:23 +0100
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-11 17:48 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 19:10 +0100
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-12 07:01 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 16:41 +0100
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 20:08 +0200
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-10 22:02 +0300
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-10 19:03 +0000
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-10 22:29 +0300
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 21:55 +0200
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-10 23:03 +0300
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 22:33 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 21:53 +0100
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 23:16 +0200
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-11 15:29 +0000
Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-10 15:30 -0700
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-10 22:58 +0000
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-11 09:09 +0800
Re: Taming The Switch-Statement ram@zedat.fu-berlin.de (Stefan Ram) - 2026-10-11 10:14 +0000
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-11 21:12 +0000
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 03:58 +0200
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 15:32 -0700
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-11 01:58 +0300
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 01:43 +0100
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-11 09:12 +0800
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 04:07 +0200
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 20:13 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 10:36 +0200
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-16 14:22 -0700
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-16 15:00 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-17 01:29 +0200
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-18 12:48 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-18 12:04 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-18 14:09 +0200
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-18 14:34 +0200
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-18 17:13 +0300
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-18 16:52 +0200
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-18 18:16 +0300
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-18 17:49 +0200
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-18 13:39 +0200
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-17 19:39 +0300
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-17 18:23 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-17 17:36 +0000
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-17 21:03 +0300
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-17 10:30 -0700
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-17 10:54 -0700
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-18 14:18 +0200
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-11 04:26 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 13:35 +0100
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-11 06:13 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 14:51 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-11 15:33 +0200
Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-11 09:01 -0700
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-11 19:17 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 18:57 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-11 14:28 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 23:02 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-11 16:29 -0700
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-12 04:03 -0700
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-12 22:02 +0300
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 21:09 +0200
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-12 22:31 +0300
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-12 22:32 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 22:05 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 23:14 +0200
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-13 07:23 +0000
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-13 12:12 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 11:26 +0100
Re: Taming The Switch-Statement Richard Harnden <richard.nospam@gmail.invalid> - 2026-10-13 12:10 +0100
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-13 06:55 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-13 13:33 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 13:41 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-13 14:38 +0000
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-13 18:04 +0200
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-13 20:52 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 22:24 +0100
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-14 00:03 +0200
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-14 10:53 +0000
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-14 17:54 +0200
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-14 19:48 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 11:16 +0100
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-13 21:54 +0000
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-16 15:24 +0000
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-16 21:42 +0000
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-16 21:46 +0000
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-18 12:38 +0200
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-16 15:03 -0700
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-17 19:25 -0700
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-13 07:40 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 16:46 +0100
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-13 09:10 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 18:15 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-13 18:27 -0700
Re: Taming The Switch-Statement gazelle@shell.xmission.com (Kenny McCormack) - 2026-10-14 01:50 +0000
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-14 10:58 +0000
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-13 22:54 +0300
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-13 16:45 -0700
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-13 18:34 -0700
Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-14 05:17 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-14 13:46 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 07:05 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 14:37 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 16:12 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 16:32 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 19:05 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 19:15 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-12 16:43 -0700
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-12 16:45 -0700
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-12 23:46 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 00:56 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-12 17:58 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 20:38 +0100
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-12 19:52 +0000
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-12 22:56 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 21:57 +0100
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-12 21:21 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 22:46 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-13 09:27 +0200
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-13 12:18 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 11:33 +0100
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-13 00:25 +0300
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-12 22:20 +0000
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-12 17:02 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 01:53 +0100
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-13 03:54 +0200
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-13 10:52 +0000
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-13 23:16 +0300
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-13 18:44 -0700
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-12 17:33 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-14 00:21 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-13 20:40 -0700
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-14 03:59 +0000
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-13 21:35 -0700
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-14 11:27 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-14 12:17 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-14 12:38 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-14 16:49 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-14 19:30 +0000
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-14 23:28 +0300
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-14 21:30 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-14 21:56 +0100
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-14 21:59 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-15 01:26 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-15 12:01 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-15 11:45 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-15 15:57 +0100
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-15 18:10 +0100
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-16 02:42 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-15 20:42 +0000
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-15 23:57 +0300
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-15 23:22 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-16 12:40 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-17 00:01 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-16 16:53 -0700
Re: Taming The Switch-Statement gazelle@shell.xmission.com (Kenny McCormack) - 2026-10-17 11:09 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-17 13:11 +0100
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-17 15:15 +0200
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-17 08:34 -0700
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-17 03:19 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-17 12:34 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-17 17:58 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-17 21:40 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-18 14:32 +0200
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-18 13:22 +0200
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-18 14:12 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-18 14:33 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-18 16:27 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-18 17:09 +0100
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-18 17:24 +0300
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-18 16:58 +0200
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-18 18:26 +0300
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-18 18:11 +0200
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-15 05:17 -0700
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-15 14:37 +0000
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-15 20:50 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-15 19:59 +0100
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-15 20:49 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-14 18:51 +0100
Re: Taming The Switch-Statement "Peyton" <peyton@solacium.com> - 2026-10-14 11:04 -0700
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-14 19:47 +0000
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-14 13:58 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-15 12:08 +0200
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-14 14:23 -0700
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-14 14:35 +0000
Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-16 03:36 -0700
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 16:38 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 21:09 +0100
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 23:14 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 23:01 +0100
Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-11 08:00 +0000
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 10:27 +0200
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 10:49 +0200
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 16:30 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 02:12 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 19:55 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 11:00 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 12:21 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-11 14:04 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 23:05 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 07:22 +0200
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 11:42 +0100
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 16:15 +0200
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-12 14:34 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 16:47 +0100
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-13 00:15 +0800
Re: Taming The Switch-Statement ram@zedat.fu-berlin.de (Stefan Ram) - 2026-10-12 17:02 +0000
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-13 20:04 +0800
Re: Taming The Switch-Statement ram@zedat.fu-berlin.de (Stefan Ram) - 2026-10-13 17:28 +0000
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-14 02:05 +0800
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-12 17:17 +0000
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-12 17:37 +0000
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-12 17:34 +0000
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-12 18:46 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 19:52 +0100
Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-12 19:42 +0000
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-12 16:29 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 00:53 +0100
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-12 18:14 -0700
Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-12 22:35 +0000
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-12 16:14 -0700
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 22:36 +0100
Re: Taming The Switch-Statement gazelle@shell.xmission.com (Kenny McCormack) - 2026-10-10 13:14 +0000
Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-10 19:50 +0300
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 20:13 +0200
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 15:54 -0700
Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 03:41 +0200
Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-11 09:51 +0800
Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-11 11:41 +0200
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 16:44 -0700
Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 16:56 -0700
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-11 21:26 +0000
Re: Taming The Switch-Statement Jon Ribbens <jon+usenet@unequivocal.eu> - 2026-10-11 22:12 +0000
Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-13 22:00 +0000
Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-13 23:19 +0100
Page 14 of 18 — ← Prev page 1 … 12 13 [14] 15 16 … 18 Next page →
| From | cross@spitfire.i.gajendra.net (Dan Cross) |
|---|---|
| Date | 2026-10-15 11:45 +0000 |
| Message-ID | <11aqect$hpr$1@reader2.panix.com> |
| In reply to | #403184 |
In article <11aqbqv$2avn3$1@dont-email.me>, bart <bc@freeuk.com> wrote: >On 15/10/2026 02:26, Dan Cross wrote: >> In article <11aoqa9$1rgda$1@dont-email.me>, bart <bc@freeuk.com> wrote: >>> On 14/10/2026 20:30, Dan Cross wrote: >>> [snip more of the same already hashed and rehashed ad naseum] >>> >>> As for multiple nested loops, this will fix that too, that's great. We >>> just require some real examples of that being needed! >> >> Here's a pretty terrible way to write part of a lexical >> analyzer. I just typed this in an hour or so ago. >.... > >Wow, it's impressive that you went to that trouble just to prove a point >about nested loops. (Even if it might have been a little bit contrived.) > >But this is an interesting pattern with all those breaks: > > [snip] > >It seems most uses of 'break;' to break out of a loop have disappeared >to be replaced with labeled versions. > >The remaining breaks are switch-breaks. > >Then I start looking at some of those "breaks;". Some (maybe one) is at >top-level, it jumps to the end of that switch, so the end of the while, >so is really 'continue'. > >Most are in nested switches, some of those jump to a 'break loop'. Some >jump somewhere else... > >Basically this is spaghetti code (I know you said it was terrible); your >eyes glaze over with breaks everywhere and you give up trying to figure >out the control flow. Perhaps if I had spent more than like, 30 minutes, on it I would have tidied it up. The point was to illustrate a contrived example where one might break out of nested switch statements, loops inside of switch, switch inside of loops, loops inside of switch inside of loops, and so on. >There are examples like this: > > continue; > default: > break; > } > break loop; > >Do you even need 'default: break;}' or even an empty default:? You don't, but some compilers will complain if it isn't there. See above. It was merely a quick and dirty example. >I then tried an experiment where I got rid of switch-break, to see what >C code with automatic switch-break would look like. > >It was a big improvement, now that you know that every case-blocks >proceeds to the end of that switch, and you don't need to double-check >every 'break' to see if it's to do with switches or loops: > > break loop; > break loop; > break loop; > break loop; > break loop; > break loop; > break loop; > break loop; > break loop; > break loop; > break loop; > break loop; > break loop; > break sloop; > break loop; > break loop; > break loop; > break loop; > break; > break loop; > break; > >All these are known to be loops, even 'break;'. > >But also, labeled versions except three 'break loops' can be written as >'break', since 'switch break' does not exist. You're left with: > > break loop; > break loop; > break loop; > break; > break; > break; > break; > break; > break; > break; > break; > break; > break; > break; > break; > break; > break; > break; > break; > break; > break; > >(Not ordered.) Compare with the first set. Compare what? Without the surrounding context, this is utterly meaningless: this isn't a useful illustration of working code; this is the output of `grep`. (btw, if you `|sort |uniq -c` you can actually get counts! You can even `|sort |uniq -c |sort -n` to order by frequency of occurrence!) > >> [snip more of the same already hashed and rehashed ad naseum] > >Perhaps that reused keyword thing is a bigger deal than you think. The >effect of it is unnecessary obfuscation. This is certainly not evidence of that. This is just your assertion that you took a silly example and apparently (maybe?) improved it, based on some unstated, but apparently subjective, criteria. - Dan C.
[toc] | [prev] | [next] | [standalone]
| From | bart <bc@freeuk.com> |
|---|---|
| Date | 2026-10-15 15:57 +0100 |
| Message-ID | <11aqpl3$2gdup$1@dont-email.me> |
| In reply to | #403186 |
On 15/10/2026 12:45, Dan Cross wrote:
> In article <11aqbqv$2avn3$1@dont-email.me>, bart <bc@freeuk.com> wrote:
>> Perhaps that reused keyword thing is a bigger deal than you think. The
>> effect of it is unnecessary obfuscation.
>
> This is certainly not evidence of that. This is just your
> assertion that you took a silly example and apparently (maybe?)
> improved it, based on some unstated, but apparently subjective,
> criteria.
I am stating that 'break' used to fix C's poor 'switch' feature
interferes with 'break' used for loops.
It's not even my opinion: it's fact. In your example, about a third of
'break' tokens are for taking care of switch.
My opinion is that it generates pointless clutter (this it would do even
if a different keyword was used), and it can get confusing when switch
and loop are mixed up.
I actually took your program and ported it to my syntax, as I was
curious how it would look. This is the result:
https://github.com/bart-2026/langs/blob/main/lexertest.m
(It's been spaced out more, vertically.)
There were some tricky bits of the C to translate, such as:
break;
default:
break;
}
default:
*tp++ = ch;
break;
}
}
*tp++ = '\0';
tt = TkSTRING;
where it seems to break from one switch then sneakily falls through into
the default clauses of the enclosing one!
Well, here are some stats:
C Mine
Size 3374 2997 characters (both with hard tabs)
Non-blank lines 210 174 Lines
I did try and run mine:
c:\mapps>test
1234
tok: tt = tkident, token = '1234'
abc
tok: tt = tkident, token = 'abc'
It shows both of these as an identifier. But yours does the same:
c:\c>a
1234
tok: tt = 1003, token = '1234'
abc
tok: tt = 1003, token = 'abc'
Whatever '1003' means, it's showing the same. So it will do (I don't
care if the code is buggy, just whether my version is reasonably faithful).
Of course, my actual lexers have a different structure.
[toc] | [prev] | [next] | [standalone]
| From | bart <bc@freeuk.com> |
|---|---|
| Date | 2026-10-15 18:10 +0100 |
| Message-ID | <11ar1f5$2jod3$1@dont-email.me> |
| In reply to | #403190 |
On 15/10/2026 15:57, bart wrote: > On 15/10/2026 12:45, Dan Cross wrote: >> In article <11aqbqv$2avn3$1@dont-email.me>, bart <bc@freeuk.com> wrote: > >>> Perhaps that reused keyword thing is a bigger deal than you think. The >>> effect of it is unnecessary obfuscation. >> >> This is certainly not evidence of that. This is just your >> assertion that you took a silly example and apparently (maybe?) >> improved it, based on some unstated, but apparently subjective, >> criteria. > I am stating that 'break' used to fix C's poor 'switch' feature > interferes with 'break' used for loops. > > It's not even my opinion: it's fact. In your example, about a third of > 'break' tokens are for taking care of switch. > > My opinion is that it generates pointless clutter (this it would do even > if a different keyword was used), and it can get confusing when switch > and loop are mixed up. > > I actually took your program and ported it to my syntax, as I was > curious how it would look. This is the result: > > https://github.com/bart-2026/langs/blob/main/lexertest.m > > (It's been spaced out more, vertically.) > Well, here are some stats: > I did try and run mine: Enough worked that I decided to try a speed test. Both use exactly the same algorithm, and I didn't expect either to be fast. Still, the version in my language/compiler was 50% faster than the C compiled with gcc-O3. I don't know why. (My production lexers, even in my language so unoptimised, tend to be at least a magnitude faster and do more stuff such as symbol table lookups.)
[toc] | [prev] | [next] | [standalone]
| From | bart <bc@freeuk.com> |
|---|---|
| Date | 2026-10-16 02:42 +0100 |
| Message-ID | <11arveu$2tq3v$1@dont-email.me> |
| In reply to | #403192 |
On 15/10/2026 18:10, bart wrote: > On 15/10/2026 15:57, bart wrote: >> On 15/10/2026 12:45, Dan Cross wrote: >>> In article <11aqbqv$2avn3$1@dont-email.me>, bart <bc@freeuk.com> wrote: >> >>>> Perhaps that reused keyword thing is a bigger deal than you think. The >>>> effect of it is unnecessary obfuscation. >>> >>> This is certainly not evidence of that. This is just your >>> assertion that you took a silly example and apparently (maybe?) >>> improved it, based on some unstated, but apparently subjective, >>> criteria. >> I am stating that 'break' used to fix C's poor 'switch' feature >> interferes with 'break' used for loops. >> >> It's not even my opinion: it's fact. In your example, about a third of >> 'break' tokens are for taking care of switch. >> >> My opinion is that it generates pointless clutter (this it would do >> even if a different keyword was used), and it can get confusing when >> switch and loop are mixed up. >> >> I actually took your program and ported it to my syntax, as I was >> curious how it would look. This is the result: >> >> https://github.com/bart-2026/langs/blob/main/lexertest.m >> >> (It's been spaced out more, vertically.) > >> Well, here are some stats: > >> I did try and run mine: > Enough worked that I decided to try a speed test. Both use exactly the > same algorithm, and I didn't expect either to be fast. > > Still, the version in my language/compiler was 50% faster than the C > compiled with gcc-O3. I don't know why. I'm mildly curious about this even if no one else is (or they think it is some sort of boasting although I said I didn't know the reason). I've now converted DC's C program to use normal gotos, so that I can try with other compilers. For my test (10M lines of the same 8 tokens): gcc 16.x 28 seconds (any opt. level) gcc 14.x 18 seconds clang-O3 18 seconds tcc 18 seconds bcc 18 seconds mm 18 seconds (my lang) Figures are pretty much at those two levels. So it's more likely a library thing and it is i/o bound. Anyway, I'm done with all this now; my C compiler and related apps are no more.
[toc] | [prev] | [next] | [standalone]
| From | cross@spitfire.i.gajendra.net (Dan Cross) |
|---|---|
| Date | 2026-10-15 20:42 +0000 |
| Message-ID | <11ardsd$26m$1@reader2.panix.com> |
| In reply to | #403190 |
In article <11aqpl3$2gdup$1@dont-email.me>, bart <bc@freeuk.com> wrote:
>On 15/10/2026 12:45, Dan Cross wrote:
>> In article <11aqbqv$2avn3$1@dont-email.me>, bart <bc@freeuk.com> wrote:
>
>>> Perhaps that reused keyword thing is a bigger deal than you think. The
>>> effect of it is unnecessary obfuscation.
>>
>> This is certainly not evidence of that. This is just your
>> assertion that you took a silly example and apparently (maybe?)
>> improved it, based on some unstated, but apparently subjective,
>> criteria.
>
>I am stating that 'break' used to fix C's poor 'switch' feature
>interferes with 'break' used for loops.
Sure.
>It's not even my opinion: it's fact. In your example, about a third of
>'break' tokens are for taking care of switch.
Ok.
>My opinion is that it generates pointless clutter (this it would do even
>if a different keyword was used), and it can get confusing when switch
>and loop are mixed up.
Ok.
>I actually took your program and ported it to my syntax, as I was
>curious how it would look. This is the result:
>
>https://github.com/bart-2026/langs/blob/main/lexertest.m
>
>(It's been spaced out more, vertically.)
>
>There were some tricky bits of the C to translate, such as:
>
> break;
> default:
> break;
> }
> default:
> *tp++ = ch;
> break;
> }
> }
> *tp++ = '\0';
> tt = TkSTRING;
>
>where it seems to break from one switch then sneakily falls through into
>the default clauses of the enclosing one!
Yup.
>Well, here are some stats:
>
> C Mine
>
> Size 3374 2997 characters (both with hard tabs)
> Non-blank lines 210 174 Lines
Those seem like pretty meaningless statistics. I could really
care less about 377 fewer bytes. Naturally, different languages
will express these things differently.
>I did try and run mine:
>
> c:\mapps>test
> 1234
> tok: tt = tkident, token = '1234'
> abc
> tok: tt = tkident, token = 'abc'
>
>It shows both of these as an identifier. But yours does the same:
>
> c:\c>a
> 1234
> tok: tt = 1003, token = '1234'
> abc
> tok: tt = 1003, token = 'abc'
Yup. It's a poorly written program; I am not surprised there
are bugs. It wasn't meant to be an illustration of exemplary
programming, it was meant to illustrate a use case for a
language construct that addresses a use case you appeared to
want support for, but that are now upset about, because it was
not provided in the way you like. Or something.
>Whatever '1003' means, it's showing the same. So it will do (I don't
>care if the code is buggy, just whether my version is reasonably faithful).
This is actually a good example of the problem you often run
into in these endless c.l.c threads: You seem to take a thing
that was something that was only meant to show one thing, and
asserting that it represents something other than what it was
meant to show, and no matter how many times it is explained to
you that it is not, in fact, what you seem to think that it is,
you persist in your delusion and think that it proves something.
But it doesn't, since you are starting from a false premise, at
which point you whine that you are picked on, treated poorly,
misunderstood, or generally dismissed, to which you conclude
that this can only be due to a slavish devotion to C as it is,
and a refusal to entertain that the language is not perfect. It
is totally lost on you that people may be objecting to what you
are saying on its own merits, since (ironically) you don't seem
able to admit that your own ideas may have their own
deficiencies.
This whole discussion could be summarized as:
Bart: "C sucks because Dennis Ritchie stupidly reused `break`
for both loops and switch. He was a tasteless fool."
All: "You can work around that really easily."
Keith: "C added labeled break and continue...."
Bart: "C sucks. My language is better. Here, I fixed C in 4
lines of code with my `breakloop`, but it still sucks
because C is hopeless."
Me: "No, the real problem is that there's no structured way
break out of nested contexts; your thing only addresses
one special case, and does not compose, so can't cover
the general case."
Bart: "No, it's the overloading. C is terrible and you're all
just too blind to see it. You are all fools, like
Dennis Ritchie."
Me: "I mean, Keith told you how the language is being changed
to address your problem _and_ the other problems in this
general category."
Bart: "Those other problems don't matter. C will never change.
It will suck forever. I mean, have you ever even seen a
use case for these labeled blocks? I don't like them,
therefore they suck, just like C. They also suck
because they solve a problem I don't care about. I have
been doing this for 45 years."
Me: "Here's a program that illustrates the problem. The code
is shit, but shows how it can be used...."
Bart: "This program sucks! You don't _need_ to do it this
way."
Me: "...I mean, I told you it sucked when I posted it...."
Bart: "...I rewrote it in my language. I saved 377 bytes. See
how much C sucks now? My language is better.
Me: "...."
Bart: "My lexer is 50% faster than your lexer. My production
code is an order of magnitude faster. I am a very smart
boy, and deserve a very special gold star on my report
card."
Me: "...Bruh."
Bart: "Dennis Ritchie was a fool. A fool, I say! Haha!
Ahahaha! Muwhahaha!"
>Of course, my actual lexers have a different structure.
If I actually wanted a real lexer for C, I'd probably use a
lexer generator to generate one from a declarative description
of the language's lexemes.
Now then. Did you see how it used labeled break and continue to
move about through the various control structures in ways that
would not be representable if you only had `breakloop`? Yes, of
course you can restructure the code, but that's not the point;
the point was only to show how one might use labeled loops and
switches and so on to implement control flows that one cannot
express _without_ such facil
The irony is that you are saying, in effect, "oh but you don't
actually _need_ to do it that way..." to something you don't
care for, when throughout the thread you have been specifically
rejecting that same argument as a response your assertion that
something that addressed this very use case was badly needed, to
fix Dennis Ritchie's "mistake" of using `break` for both loops
and `switch`. Seriously. The stunning lack of self-awareness
is really quite breathtaking.
- Dan C.
[toc] | [prev] | [next] | [standalone]
| From | Michael S <already5chosen@yahoo.com> |
|---|---|
| Date | 2026-10-15 23:57 +0300 |
| Message-ID | <20261015235752.00002222@yahoo.com> |
| In reply to | #403195 |
On Thu, 15 Oct 2026 20:42:53 -0000 (UTC) cross@spitfire.i.gajendra.net (Dan Cross) wrote: > In article <11aqpl3$2gdup$1@dont-email.me>, bart <bc@freeuk.com> > wrote: > >On 15/10/2026 12:45, Dan Cross wrote: > >> In article <11aqbqv$2avn3$1@dont-email.me>, bart <bc@freeuk.com> > >> wrote: > > > >>> Perhaps that reused keyword thing is a bigger deal than you > >>> think. The effect of it is unnecessary obfuscation. > >> > >> This is certainly not evidence of that. This is just your > >> assertion that you took a silly example and apparently (maybe?) > >> improved it, based on some unstated, but apparently subjective, > >> criteria. > > > >I am stating that 'break' used to fix C's poor 'switch' feature > >interferes with 'break' used for loops. > > Sure. > > >It's not even my opinion: it's fact. In your example, about a third > >of 'break' tokens are for taking care of switch. > > Ok. > > >My opinion is that it generates pointless clutter (this it would do > >even if a different keyword was used), and it can get confusing when > >switch and loop are mixed up. > > Ok. > > >I actually took your program and ported it to my syntax, as I was > >curious how it would look. This is the result: > > > >https://github.com/bart-2026/langs/blob/main/lexertest.m > > > >(It's been spaced out more, vertically.) > > > >There were some tricky bits of the C to translate, such as: > > > > break; > > default: > > break; > > } > > default: > > *tp++ = ch; > > break; > > } > > } > > *tp++ = '\0'; > > tt = TkSTRING; > > > >where it seems to break from one switch then sneakily falls through > >into the default clauses of the enclosing one! > > Yup. > > >Well, here are some stats: > > > > C Mine > > > > Size 3374 2997 characters (both with hard > > tabs) Non-blank lines 210 174 Lines > > Those seem like pretty meaningless statistics. I could really > care less about 377 fewer bytes. Naturally, different languages > will express these things differently. > > >I did try and run mine: > > > > c:\mapps>test > > 1234 > > tok: tt = tkident, token = '1234' > > abc > > tok: tt = tkident, token = 'abc' > > > >It shows both of these as an identifier. But yours does the same: > > > > c:\c>a > > 1234 > > tok: tt = 1003, token = '1234' > > abc > > tok: tt = 1003, token = 'abc' > > Yup. It's a poorly written program; I am not surprised there > are bugs. It wasn't meant to be an illustration of exemplary > programming, it was meant to illustrate a use case for a > language construct that addresses a use case you appeared to > want support for, but that are now upset about, because it was > not provided in the way you like. Or something. > > >Whatever '1003' means, it's showing the same. So it will do (I don't > >care if the code is buggy, just whether my version is reasonably > >faithful). > > This is actually a good example of the problem you often run > into in these endless c.l.c threads: You seem to take a thing > that was something that was only meant to show one thing, and > asserting that it represents something other than what it was > meant to show, and no matter how many times it is explained to > you that it is not, in fact, what you seem to think that it is, > you persist in your delusion and think that it proves something. > But it doesn't, since you are starting from a false premise, at > which point you whine that you are picked on, treated poorly, > misunderstood, or generally dismissed, to which you conclude > that this can only be due to a slavish devotion to C as it is, > and a refusal to entertain that the language is not perfect. It > is totally lost on you that people may be objecting to what you > are saying on its own merits, since (ironically) you don't seem > able to admit that your own ideas may have their own > deficiencies. > > This whole discussion could be summarized as: > > Bart: "C sucks because Dennis Ritchie stupidly reused `break` > for both loops and switch. He was a tasteless fool." > All: "You can work around that really easily." > Keith: "C added labeled break and continue...." > Bart: "C sucks. My language is better. Here, I fixed C in 4 > lines of code with my `breakloop`, but it still sucks > because C is hopeless." > Me: "No, the real problem is that there's no structured way > break out of nested contexts; your thing only addresses > one special case, and does not compose, so can't cover > the general case." > Bart: "No, it's the overloading. C is terrible and you're all > just too blind to see it. You are all fools, like > Dennis Ritchie." > Me: "I mean, Keith told you how the language is being changed > to address your problem _and_ the other problems in this > general category." > Bart: "Those other problems don't matter. C will never change. > It will suck forever. I mean, have you ever even seen a > use case for these labeled blocks? I don't like them, > therefore they suck, just like C. They also suck > because they solve a problem I don't care about. I have > been doing this for 45 years." > Me: "Here's a program that illustrates the problem. The code > is shit, but shows how it can be used...." > Bart: "This program sucks! You don't _need_ to do it this > way." > Me: "...I mean, I told you it sucked when I posted it...." > Bart: "...I rewrote it in my language. I saved 377 bytes. See > how much C sucks now? My language is better. > Me: "...." > Bart: "My lexer is 50% faster than your lexer. My production > code is an order of magnitude faster. I am a very smart > boy, and deserve a very special gold star on my report > card." > Me: "...Bruh." > Bart: "Dennis Ritchie was a fool. A fool, I say! Haha! > Ahahaha! Muwhahaha!" > So, you don't like Donald Trump. Most people that read comp.os.vms already knew it. But why do you make bart responsible for that?
[toc] | [prev] | [next] | [standalone]
| From | bart <bc@freeuk.com> |
|---|---|
| Date | 2026-10-15 23:22 +0100 |
| Message-ID | <11arjmc$2qid7$1@dont-email.me> |
| In reply to | #403195 |
On 15/10/2026 21:42, Dan Cross wrote:
> In article <11aqpl3$2gdup$1@dont-email.me>, bart <bc@freeuk.com> wrote:
> Those seem like pretty meaningless statistics.
> Naturally, different languages will express these things differently.
My syntax has cleaner and simpler syntax compared to C, and handles
features like 'switch' more ergonomically. In this case, C had a 20%
higher line count - fact.
But it seems people don't value cleaner, more productive syntax when it
it comes to 'serious' languages, only scripting ones. OK; your loss.
> This whole discussion could be summarized as:
>
> Bart: "C sucks because Dennis Ritchie stupidly reused `break`
> for both loops and switch. He was a tasteless fool."
> All: "You can work around that really easily."
> Keith: "C added labeled break and continue...."
> Bart: "C sucks. My language is better. Here, I fixed C in 4
> lines of code with my `breakloop`, but it still sucks
> because C is hopeless."
> Me: "No, the real problem is that there's no structured way
> break out of nested contexts; your thing only addresses
> one special case, and does not compose, so can't cover
> the general case."
> Bart: "No, it's the overloading. C is terrible and you're all
> just too blind to see it. You are all fools, like
> Dennis Ritchie."
> Me: "I mean, Keith told you how the language is being changed
> to address your problem _and_ the other problems in this
> general category."
> Bart: "Those other problems don't matter. C will never change.
> It will suck forever. I mean, have you ever even seen a
> use case for these labeled blocks? I don't like them,
> therefore they suck, just like C. They also suck
> because they solve a problem I don't care about. I have
> been doing this for 45 years."
> Me: "Here's a program that illustrates the problem. The code
> is shit, but shows how it can be used...."
> Bart: "This program sucks! You don't _need_ to do it this
> way."
> Me: "...I mean, I told you it sucked when I posted it...."
> Bart: "...I rewrote it in my language. I saved 377 bytes. See
> how much C sucks now? My language is better.
> Me: "...."
> Bart: "My lexer is 50% faster than your lexer. My production
> code is an order of magnitude faster. I am a very smart
> boy, and deserve a very special gold star on my report
> card."
> Me: "...Bruh."
You know, I could well be right about all those points. Maybe my
language that has been around for 45 years really is a sweeter, cleaner
'C' which has solved most of the latter's quirks.
And maybe other people's responses to that is just sour grapes.
However one of interests is PL design - specifically at this level - and
how C gets it so wrong, how people defend it so much, how it evolves so
glacially, how much fixing its shortcomings is offloaded to tools, is
fascinating.
It would have been nice to have a more objective discussion about such
aspects, with people not afraid to be a LOT more critical of C and its
tools that they have been.
But I guess this is the wrong forum for that.
> Bart: "Dennis Ritchie was a fool. A fool, I say! Haha!>
Ahahaha! Muwhahaha!"
Simplest kind of function pointer:
Bart: ref proc
DMR: void(*)(void)
Simplest function pointer variable:
Bart: ref proc abc
DMR: void(*abc)(void);
Two such variables:
Bart: ref proc one, two
DMR void (*one)(void), (*two)void; // I think
Two variables each an array 10 of such pointers:
Bart: [10]ref proc one, two
DMR: No fucking clue mate...
(Apparently it would be this, according to a tool which transpiles to C:
void (*one[10])(void), (*two[10])(void);
Fucking hell. Actually I didn't call DMR a fool. I did mention a
'numskull' which I now withdraw; I prefer to criticise ideas not people.
But this is a disaster.)
[toc] | [prev] | [next] | [standalone]
| From | cross@spitfire.i.gajendra.net (Dan Cross) |
|---|---|
| Date | 2026-10-16 12:40 +0000 |
| Message-ID | <11at5vi$5vu$1@reader2.panix.com> |
| In reply to | #403199 |
In article <11arjmc$2qid7$1@dont-email.me>, bart <bc@freeuk.com> wrote: >... >My syntax has cleaner and simpler syntax compared to C,... I'm sure you meant to say, "my language has...". >But it seems people don't value cleaner, more productive syntax when it >it comes to 'serious' languages, only scripting ones.... > >[snip] >>You know, I could well be right about all those points. Maybe my >language that has been around for 45 years really is a sweeter, cleaner >'C' which has solved most of the latter's quirks. > >And maybe other people's responses to that is just sour grapes. > >However one of interests is PL design - specifically at this level - and >how C gets it so wrong, how people defend it so much, how it evolves so >glacially, how much fixing its shortcomings is offloaded to tools, is >fascinating. > >It would have been nice to have a more objective discussion about such >aspects, with people not afraid to be a LOT more critical of C and its >tools that they have been. > >But I guess this is the wrong forum for that. I think objective discussions of C are appropriate for comp.lang.c. Your description is not objective. For example, you claim that "people don't value cleaner, more productive syntax...". But those are subjective criteria. Has it truly never occurred to you that many other people just don't consider your syntax significantly cleaner, or more productive? I'm sure your language is very nice. I recall looking at it at one point and thinking it was fine, though I saw nothing particularly special about it that would motivate me to want to give up the considerable network advantages of using a more common language. You really think that's just sour grapes? That everyone else is just, what...mad at you because they feel the need to defend C's honor or something? C isn't a member of my family. You're not insulting my ancestry by pointing out flaws in it. I'm not going to get personally upset about its imperfections. Perhaps people dismiss what you say because, despite your self-aggrandizing words, you've shown that you don't actually know C very well, and that you either do not care about, or misunderstand, basic aspects of the language. By your own admission you ignore in the standards documents. It is hard to take the criticism of someone who doesn't understand what they are criticizing very seriously, and subjectivity aside, relative statements about the superiority of your language with respect to a language you yourself don't know very well are similarly difficult to take seriously. > > Bart: "Dennis Ritchie was a fool. A fool, I say! Haha!> >Ahahaha! Muwhahaha!" > >Simplest kind of function pointer: > > [snip; don't care] > >(Apparently it would be this, according to a tool which transpiles to C: > > void (*one[10])(void), (*two[10])(void); Yes, that's right. >Fucking hell. Actually I didn't call DMR a fool. I did mention a >'numskull' which I now withdraw; I prefer to criticise ideas not people. >But this is a disaster.) For someone who claims to want to discuss C objectively, you sure do make a lot of subjective statements. - Dan C.
[toc] | [prev] | [next] | [standalone]
| From | bart <bc@freeuk.com> |
|---|---|
| Date | 2026-10-17 00:01 +0100 |
| Message-ID | <11auad0$3no1k$1@dont-email.me> |
| In reply to | #403213 |
On 16/10/2026 13:40, Dan Cross wrote: > In article <11arjmc$2qid7$1@dont-email.me>, bart <bc@freeuk.com> wrote: > Has it truly > never occurred to you that many other people just don't consider > your syntax significantly cleaner, or more productive? So why is this style of syntax popular within scripting languages? (Lua, Julia, Ruby...) Those are considered more productive. > Perhaps people dismiss what you say because, despite your > self-aggrandizing words, you've shown that you don't actually > know C very well, See the type syntax example below. How well do you need to know a language to see that that is just effing crazy? This is supposed to be a HLL, not a puzzle that needs to be solved or decoded via algorithms or employing tools! > For someone who claims to want to discuss C objectively, you > sure do make a lot of subjective statements. Concerning type declaration syntax, lots of people including the C creators agree that it was misguided. If lots of people agree, is that still being subjective? This is the example I think used in K&R: char *(*(**foo [][8])())[]; Most would consider this gobbledygook even if you know the rules. It is atrocious syntax. And what's 'foo' doing in the middle of it! I think being defensive about it is being subjective, as you demonstrate here: >> [snip; don't care] That is pretty much the attitude here in a nutshell. What's often stated also is how successful C has been, but that doesn't magically make the syntax wonderful. If DMR had instead produced a language that looked like mine (say like one of the Algols), and I came along in 2026 and proposed a syntax that looked like the above, what do you think the response would be? I would rightly be laughed out of the forum. So being 'objective' means disregarding history and widespread adoption. The latter doesn't make the language better, just more tolerated, with more effort put into tools to make it practical to use (with a nice sideline in teaching all its ins and outs). Anyway, to me, pretty much the whole of C looked as badly and crudely put together as that, when I first came across it in 1982. My background had been with quite different languages.
[toc] | [prev] | [next] | [standalone]
| From | Keith Thompson <Keith.S.Thompson+u@gmail.com> |
|---|---|
| Date | 2026-10-16 16:53 -0700 |
| Message-ID | <11audde$3oci5$1@kst.eternal-september.org> |
| In reply to | #403228 |
bart <bc@freeuk.com> writes:
[...]
> What's often stated also is how successful C has been, but that
> doesn't magically make the syntax wonderful.
NOBODY THINKS C'S SYNTAX IS WONDERFUL.
We surrender. You win. Stop fighting.
[...]
--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */
[toc] | [prev] | [next] | [standalone]
| From | gazelle@shell.xmission.com (Kenny McCormack) |
|---|---|
| Date | 2026-10-17 11:09 +0000 |
| Message-ID | <11avl11$poq2$1@news.xmission.com> |
| In reply to | #403230 |
In article <11audde$3oci5$1@kst.eternal-september.org>,
Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote:
>bart <bc@freeuk.com> writes:
>[...]
>> What's often stated also is how successful C has been, but that
>> doesn't magically make the syntax wonderful.
>
>NOBODY THINKS C'S SYNTAX IS WONDERFUL.
The funny thing is: I actually do.
I may be the only person here who actually thinks the syntax of C's
"switch" statement is just fine. Once you realize that it *is* more of a
computed goto rather than a high level alternation construct like you'd
find in a real high level language (C is *not* a high level language; it is
properly referred to as a "mid level" language).
Note that the underlying issue here is easily dealt with if you do both of
the following:
a) Enable the warning in your compiler that warns about (unannotated)
fallthrough.
and
b) Always put a comment when you intentionally do fallthrough.
This issue is kind of similar to the old:
if (a = b) ...
thing - which really was a problem - right up until compilers started
warning about it. Now that all compilers warn if you do that, it is no
longer a live issue, but people still bring it up occasionally.
FWIW, to take another popular whipping boy of C, I also actually like the
variable declaration syntax - which many people like to criticize as
"backwards" or "inside out". Once you get used to it, it makes perfect
sense (to me, anyway). I have no problem with a declaration like:
int i,j,*ip,arr[10],foo(int bar);
Some would say that declares lots of different types of objects, but I
think of them all as ints (which is what the declaration is telling us).
--
The randomly chosen signature file that would have appeared here is more than 4-ish
lines long. As such, it violates one or more Usenet RFCs. In order to remain
in compliance with said RFCs, the actual sig can be found at the following URL:
http://user.xmission.com/~gazelle/Sigs/Seneca
[toc] | [prev] | [next] | [standalone]
| From | bart <bc@freeuk.com> |
|---|---|
| Date | 2026-10-17 13:11 +0100 |
| Message-ID | <11avolp$61gp$1@dont-email.me> |
| In reply to | #403233 |
On 17/10/2026 12:09, Kenny McCormack wrote:
> In article <11audde$3oci5$1@kst.eternal-september.org>,
> Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote:
>> bart <bc@freeuk.com> writes:
>> [...]
>>> What's often stated also is how successful C has been, but that
>>> doesn't magically make the syntax wonderful.
>>
>> NOBODY THINKS C'S SYNTAX IS WONDERFUL.
>
> The funny thing is: I actually do.
>
> I may be the only person here who actually thinks the syntax of C's
> "switch" statement is just fine. Once you realize that it *is* more of a
> computed goto
Then maybe the syntax for it should have been:
goto (x) {}
instead of:
switch (x) {}
That would not clash with 'goto label', nor the 'goto *(x)' of gnu C.
It would make it clearer that this is a cruder construct than 'switch'
pretends to be, AND it saves a keyword!
That saving could have gone towards giving switch-break its own keyword
instead of having to share 'break' with loops (because there was
apparently a shortage of keywords in 1972).
That was always going to clash at some point, and it does.
> sense (to me, anyway). I have no problem with a declaration like:
>
> int i,j,*ip,arr[10],foo(int bar);
>
> Some would say that declares lots of different types of objects, but I
> think of them all as ints (which is what the declaration is telling us).
It's taking a bunch of unrelated types of arbitrary complexity, but
because they all end with a type T when expressed in LTR form, they all
belong together?
That doesn't work: i, ip, arr, foo all have different types.
They only have the same types when fully dereferenced, indexed or
called, when written as i, *ip, arr[i], foo(i). This is NOT when happens
within the declaration, and it might not happen when they appear in
expressions either.
It's just confusing.
[toc] | [prev] | [next] | [standalone]
| From | Janis Papanagnou <janis_papanagnou+ng@hotmail.com> |
|---|---|
| Date | 2026-10-17 15:15 +0200 |
| Message-ID | <11avse9$3pvda$1@dont-email.me> |
| In reply to | #403233 |
On 2026-10-17 13:09, Kenny McCormack wrote: > In article <11audde$3oci5$1@kst.eternal-september.org>, > Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote: >> bart <bc@freeuk.com> writes: >> [...] >>> What's often stated also is how successful C has been, but that >>> doesn't magically make the syntax wonderful. >> >> NOBODY THINKS C'S SYNTAX IS WONDERFUL. > > The funny thing is: I actually do. Hah! - That's the touche when someone formulates generalizing statements about "all people" or about "nobody". :-) That said; I'd anyway never expected anyone to have chosen the attribute "wonderful", though (which was the word used here). But I also think that what Keith wanted to say was that "nobody has *said* - before your post - that C's syntax is wonderful" (in reply to bart's typical wrong imputations and hallucinations what others would have implied by some [unrelated] statement). > ['switch' topic - snipped] > ["if (a = b)" topic - snipped] > > FWIW, to take another popular whipping boy of C, I also actually like the > variable declaration syntax - (I'm reading that as "declaration syntax", i.e. without "variable".) > which many people like to criticize as > "backwards" or "inside out". Once you get used to it, it makes perfect > sense (to me, anyway). [...] But isn't that exactly the point, that you need to "get used" to something, which makes it appear as a "bad" design decision to others. (I certainly got used to many things in life, but some I then just try to avoid.) And of course "it makes sense"; if you can formally describe it - and programming language syntaxes have that property - it makes sense. Is it a "good" (or even a "wonderful") design? - I don't think so. YMMV. I like some of the programming-idioms that "C" made popular, but its syntax - and specifically that convoluted declaration syntax - is certainly not amongst them. (Or requiring 'typedef' workarounds to make some of the less-trivial declarations manageable and the code significantly better readable.) We can observe that if one spent a lot time in some context, and is used to it, and at some point even masters it, he might not be considering it as negative as someone who is more of a wanderer between worlds, for whom the advantages and disadvantages of the worlds might be more obvious. - And all those hypes... Oh! - I just noticed I'm digressing. Janis
[toc] | [prev] | [next] | [standalone]
| From | Tim Rentsch <tr.17687@z991.linuxsc.com> |
|---|---|
| Date | 2026-10-17 08:34 -0700 |
| Message-ID | <86cxt8pcia.fsf@linuxsc.com> |
| In reply to | #403230 |
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes: > bart <bc@freeuk.com> writes: > [...] > >> What's often stated also is how successful C has been, but that >> doesn't magically make the syntax wonderful. > > NOBODY THINKS C'S SYNTAX IS WONDERFUL. > > We surrender. You win. Stop fighting. If you would stop trying to engage with bart you wouldn't get so frustrated. And everyone would be happier. (It would be even nicer if other people would follow this advice too... hint hint hint). Incidentally I don't think C's declaration is wonderful, but I don't mind it either.
[toc] | [prev] | [next] | [standalone]
| From | cross@spitfire.i.gajendra.net (Dan Cross) |
|---|---|
| Date | 2026-10-17 03:19 +0000 |
| Message-ID | <11aupfl$3ul$1@reader2.panix.com> |
| In reply to | #403228 |
In article <11auad0$3no1k$1@dont-email.me>, bart <bc@freeuk.com> wrote: >On 16/10/2026 13:40, Dan Cross wrote: >> In article <11arjmc$2qid7$1@dont-email.me>, bart <bc@freeuk.com> wrote: > >> Has it truly >> never occurred to you that many other people just don't consider >> your syntax significantly cleaner, or more productive? > >So why is this style of syntax popular within scripting languages? (Lua, >Julia, Ruby...) > >Those are considered more productive. ...and you think that's because of the syntax, and not the high level nature of those languages? Wow. >> Perhaps people dismiss what you say because, despite your >> self-aggrandizing words, you've shown that you don't actually >> know C very well, > >See the type syntax example below. How well do you need to know a >language to see that that is just effing crazy? This is supposed to be a >HLL, not a puzzle that needs to be solved or decoded via algorithms or >employing tools! Yes, the syntax is pretty gnarly; Dennis Ritchie even said as much. Fixed in Go and Rust, but also, I doubt you've ever in your life had a variable of type array of array of length 8 of a pointer to a pointer to a function returning an array of pointers to char. Finding the most ridiculous example you can is not really evidence of anything besides your weird obsession with finding abstruse corner cases and holding them up as reasons to dislike C. >> For someone who claims to want to discuss C objectively, you >> sure do make a lot of subjective statements. > >Concerning type declaration syntax, lots of people including the C >creators agree that it was misguided. Yup. But stupid examples are just stupid. >If lots of people agree, is that still being subjective? This is the >example I think used in K&R: > > char *(*(**foo [][8])())[]; > >Most would consider this gobbledygook even if you know the rules. It is >atrocious syntax. And what's 'foo' doing in the middle of it! Yup. That's awful. >I think being defensive about it is being subjective, as you demonstrate >here: > > >> [snip; don't care] I fail to see how me not caring about your silly examples is being defensive about C. It says nothing about what I think about C one way or the other; it only says I think your arguments are poorly grounded. >That is pretty much the attitude here in a nutshell. > >What's often stated also is how successful C has been, but that doesn't >magically make the syntax wonderful. No one is claiming that C's popularity implies it's a "good" language, however you'd like to define that. There are useful properties that come with using it, including a large ecosystem of libraries and tools, huge number of programmers who know it, lots of high-quality references, and so on. But again, that doesn't mean that C is good, just that we can leverage it's popularity _usefully_. >If DMR had instead produced a language that looked like mine (say like >one of the Algols), and I came along in 2026 and proposed a syntax that >looked like the above, what do you think the response would be? But he didn't, and you didn't, so this is a meaningless historical, "what if?" >I would rightly be laughed out of the forum. Bruh...I hate to break it to you, but.... >So being 'objective' means disregarding history and widespread adoption. Well, no...both of those are factors in choosing a language or not. We can discuss the semantics of the language, it's syntax, etc; but we can also discuss tooling, engineering resources availability (can you find programmers who know C? More like, can you find programmers who _don't_ know C, amirite?), library and platform support, and so on. >The latter doesn't make the language better, just more tolerated, with >more effort put into tools to make it practical to use (with a nice >sideline in teaching all its ins and outs). This I can almost get behind, but you miss the forest for the trees. All those resources? They exist; we can leverage them. For BartLang? Not so much. Is C a good language? Meh, it's not the worst, but far from the best I've seen. Was it a bad language in 1972, when it was targeting a PDP-11/20? No, it was pretty decent for that era. Did it do all the stuff that fancy languages with advanced compilers that ran on big machines could do? No. Did it need to? Also no. >Anyway, to me, pretty much the whole of C looked as badly and crudely >put together as that, when I first came across it in 1982. My background >had been with quite different languages. Yup. Good for you. So why do you keep posting here? - Dan C.
[toc] | [prev] | [next] | [standalone]
| From | bart <bc@freeuk.com> |
|---|---|
| Date | 2026-10-17 12:34 +0100 |
| Message-ID | <11avmfb$55rt$1@dont-email.me> |
| In reply to | #403232 |
On 17/10/2026 04:19, Dan Cross wrote: > In article <11auad0$3no1k$1@dont-email.me>, bart <bc@freeuk.com> wrote: >> Those are considered more productive. > > ...and you think that's because of the syntax, and not the high > level nature of those languages? It's a combination. > Yes, the syntax is pretty gnarly; Dennis Ritchie even said as > much. Fixed in Go and Rust, but also, I doubt you've ever in > your life had a variable of type array of array of length 8 of > a pointer to a pointer to a function returning an array of > pointers to char. Finding the most ridiculous example you can > is not really evidence of anything besides your weird obsession That was the first one I saw online next to a quote from K&R and I assumed it was from the book. In fact the example from the book is this: char (*(*x())[])() I've no idea what the means either. The point is not that the examples are ridiculous, but that they are hard to convert to and from LTR form which is how we think. With LTR syntax it becomes utterly trivial to read or write them, no matter how complex. (There's a tool called CDECL that translates types from C syntax to LTR English or vice versa. It calls the C versions 'gibberish'. This is a real thing!) > with finding abstruse corner cases and holding them up as > reasons to dislike C. The first example I gave was the simplest form of function pointer, where the syntax is 'void(*)(void)'. Hardly a corner case, and it rapidly goes downhill. If meeting C for the first time, that does not bode well. If the designers did not care about this, that does not inspire confidence in the rest of the language. >> If DMR had instead produced a language that looked like mine (say like >> one of the Algols), and I came along in 2026 and proposed a syntax that >> looked like the above, what do you think the response would be? > > But he didn't, and you didn't, so this is a meaningless > historical, "what if?" You don't get the point. If C had used LTR type syntax and somebody proposed using inside-out back-and-forth syntax like 'void(*)(void)', they'd think they were having a laugh, as it would be ridiculous. But this is exactly what I think about it anyway, no matter that 100 million programs have battled with it for 50 years. > >> So being 'objective' means disregarding history and widespread adoption. > > Well, no...both of those are factors in choosing a language or > not. We can discuss the semantics of the language, it's syntax, > etc; but we can also discuss tooling, engineering resources > availability (can you find programmers who know C? More like, > can you find programmers who _don't_ know C, amirite?), library > and platform support, and so on. Yes, this is my point; it is tolerated, and people learn to work with it. But how much extra effort has been expended, compared if they'd tried a bit harder to get a better language at the start? Or even during its first decade. > Is C a good language? Meh, it's not the worst, but far from the > best I've seen. Was it a bad language in 1972, when it was > targeting a PDP-11/20? No, it was pretty decent for that era. Disagree. > Did it do all the stuff that fancy languages with advanced > compilers that ran on big machines could do? No. Did it need > to? Also no. I think C was first created for PDP7 with 4K words, then moved to PDP11 (don't know the spec). My first language was created nearly a decade later on a /homemade/ microprocessor system with 32KB, but no viable storage. So compiler binary and data, editor, program source code, binary and data all had to reside in memory at the same time. That crude language had 'print x' and loops that looked like 'for i:=a to b do'. It also had a 'byte' type (ie. u8). A year or two later, with 64KB and storage, it was more full-featured. It was a viable and practical alternative to C which I had looked at, and dismissed. Fun fact: my copy of K&R1 cost me £12. My first Z80 processor cost £10. My point is you can't excuse C being what it is due to hardware limitations. I used PDP11 quite a bit (/34) and that had a decent Fortran implementation. My own stuff was done in my spare time for no extra pay, on 8-bit machines I helped develop for my company, without the backing of Bell Labs.
[toc] | [prev] | [next] | [standalone]
| From | cross@spitfire.i.gajendra.net (Dan Cross) |
|---|---|
| Date | 2026-10-17 17:58 +0000 |
| Message-ID | <11b0cvs$skc$1@reader2.panix.com> |
| In reply to | #403234 |
In article <11avmfb$55rt$1@dont-email.me>, bart <bc@freeuk.com> wrote: >On 17/10/2026 04:19, Dan Cross wrote: >> In article <11auad0$3no1k$1@dont-email.me>, bart <bc@freeuk.com> wrote: >>> Those are considered more productive. >> >> ...and you think that's because of the syntax, and not the high >> level nature of those languages? > >It's a combination. Riiiight. C++ is widely considered "more productive" than C, and yet shares most of the syntactic warts you complain about so readily. >> Yes, the syntax is pretty gnarly; Dennis Ritchie even said as >> much. Fixed in Go and Rust, but also, I doubt you've ever in >> your life had a variable of type array of array of length 8 of >> a pointer to a pointer to a function returning an array of >> pointers to char. Finding the most ridiculous example you can >> is not really evidence of anything besides your weird obsession > >That was the first one I saw online next to a quote from K&R and I >assumed it was from the book. In fact the example from the book is this: > > char (*(*x())[])() > >I've no idea what the means either. The point is not that the examples >are ridiculous, but that they are hard to convert to and from LTR form >which is how we think. With LTR syntax it becomes utterly trivial to >read or write them, no matter how complex. > >(There's a tool called CDECL that translates types from C syntax to LTR >English or vice versa. It calls the C versions 'gibberish'. This is a >real thing!) Yes. C's declaration syntax is famously abstruse; film at 11. >> with finding abstruse corner cases and holding them up as >> reasons to dislike C. > >The first example I gave was the simplest form of function pointer, >where the syntax is 'void(*)(void)'. Hardly a corner case, and it >rapidly goes downhill. Ok. >If meeting C for the first time, that does not bode well. If the >designers did not care about this, that does not inspire confidence in >the rest of the language. Ok. >>> If DMR had instead produced a language that looked like mine (say like >>> one of the Algols), and I came along in 2026 and proposed a syntax that >>> looked like the above, what do you think the response would be? >> >> But he didn't, and you didn't, so this is a meaningless >> historical, "what if?" > >You don't get the point. There does not appear to be one. >If C had used LTR type syntax and somebody >proposed using inside-out back-and-forth syntax like 'void(*)(void)', >they'd think they were having a laugh, as it would be ridiculous. Unknowable. >But this is exactly what I think about it anyway, no matter that 100 >million programs have battled with it for 50 years. Irrelevant. >>> So being 'objective' means disregarding history and widespread adoption. >> >> Well, no...both of those are factors in choosing a language or >> not. We can discuss the semantics of the language, it's syntax, >> etc; but we can also discuss tooling, engineering resources >> availability (can you find programmers who know C? More like, >> can you find programmers who _don't_ know C, amirite?), library >> and platform support, and so on. > >Yes, this is my point; it is tolerated, and people learn to work with >it. But how much extra effort has been expended, compared if they'd >tried a bit harder to get a better language at the start? Or even during >its first decade. Then your point is minor at best. Here's a thought experiment: suppose I suddenly came to my senses and agreed with everything you say: I'm willing to totally toss out C and adopt Bart's language yesterday. Where do I get a compiler? What learning resources exist? Oh, and I need it to generate code for an ARM Cortex-M0 part; does it do that? I also need RV64GC and x86_64 and probably aarch64, too. Might want to throw in Xtensa while we're at it: does your compiler do all of that? What if I need a debugger? Oh, and I need to use crypto libraries that are supplied from a vendor; they use the C ABI. What's the inter-op story like? >> Is C a good language? Meh, it's not the worst, but far from the >> best I've seen. Was it a bad language in 1972, when it was >> targeting a PDP-11/20? No, it was pretty decent for that era. > >Disagree. Really, the entire thread could be summed up in that one word, and it would save everyone a lot of time. >> Did it do all the stuff that fancy languages with advanced >> compilers that ran on big machines could do? No. Did it need >> to? Also no. > >I think C was first created for PDP7 with 4K words, then moved to PDP11 >(don't know the spec). No. That was B; the PDP-7 was an 18-bit word-oriented machine, and was archaic even in 1968 when they started using it. C was done on the PDP-11. An early cross-compilation environment on a GE-635 computer also existed, but the primary work on the language was on the 11/20 running Unix. You know, all of this is in Dennis Ritchie's C history paper, presented at SIGPLAN's HOPL-II, which is online. If you could get over yourself for like 20 minutes you could read it, and then not talk out your ass about history. https://www.nokia.com/bell-labs/about/dennis-m-ritchie/chist.html I suspect your general factual resistance is one of the several reasons so few people around here take you or your language seriously. >[snip] >My point is you can't excuse C being what it is due to hardware limitations. > >I used PDP11 quite a bit (/34) and that had a decent Fortran implementation. (A very different machine from an 11/20.) >My own stuff was done in my spare time for no extra pay, on 8-bit >machines I helped develop for my company, without the backing of Bell Labs. Good for you. Totally irrelevant to the history of C. Let me forestall the inevitable: you are going to reply and just repeat the same things over again. I don't care. None of this is an objective discussion of C; and it really comes across as you just seeking affirmation, which is genuinely sad. - Dan C.
[toc] | [prev] | [next] | [standalone]
| From | bart <bc@freeuk.com> |
|---|---|
| Date | 2026-10-17 21:40 +0100 |
| Message-ID | <11b0mfv$j5ll$1@dont-email.me> |
| In reply to | #403245 |
On 17/10/2026 18:58, Dan Cross wrote: > In article <11avmfb$55rt$1@dont-email.me>, bart <bc@freeuk.com> wrote: >> On 17/10/2026 04:19, Dan Cross wrote: >>> In article <11auad0$3no1k$1@dont-email.me>, bart <bc@freeuk.com> wrote: >>>> Those are considered more productive. >>> >>> ...and you think that's because of the syntax, and not the high >>> level nature of those languages? >> >> It's a combination. > > Riiiight. So greatly simplifying syntax, all other things being equal, does not increase productivity at all? Gotcha. > Yes. C's declaration syntax is famously abstruse; film at 11. And ... that's it? Just accept it? How about doing something about it! I'm angry because to me C was so unusable that I had to create and maintain my own products over decades. Then I later found that C had insinuated itself into every API and every open source product I wanted to use. Even ABIs, supposedly language-neutral, pay deference to it. Even as a compiler target, there was no other choice. So I ended having to deal with it anyway, but thankfully avoided have to write it. >> If C had used LTR type syntax and somebody >> proposed using inside-out back-and-forth syntax like 'void(*)(void)', >> they'd think they were having a laugh, as it would be ridiculous. > > Unknowable. You do know; you just don't want to admit it. (Imagine introducing C declarations into a current language.) > Then your point is minor at best. Here's a thought experiment: > suppose I suddenly came to my senses and agreed with everything > you say: I'm willing to totally toss out C and adopt Bart's > language yesterday. THIS IS NOT ABOUT MY LANGUAGE! Why hasn't there long been an alternative systems language that didn't have C's crazy syntax and stupid quirks? I mean like 30-50 years ago. Yes, mine has lots of examples of how some alternative features could work; so what? I am not selling my language. > Where do I get a compiler? What learning > resources exist? Oh, and I need it to generate code for an > ARM Cortex-M0 part; does it do that? I also need RV64GC and > x86_64 and probably aarch64, too. Might want to throw in > Xtensa while we're at it: does your compiler do all of that? > What if I need a debugger? Oh, and I need to use crypto > libraries that are supplied from a vendor; they use the C ABI. > What's the inter-op story like? My language was for in-house use; it was never intended as a product. (If you really want to try it, I can supply an ASM file for you to build, but it works on Windows. I can no longer supply a transpiled C version that part work on Linux; I have destroyed my C-related projects.) The C API (not ABI) point is valid, and another bugbear. Why can't APIs be expressed in a language-agnostic manner? This would help other languages that also need to solve the problem of creating bindings to libraries that primarily use a C API. C is a terrible choice for a cross-language API, as too many C-isms creep in (like C macros, or vaguely defined types, including the famous 'plain char' that exists in no other language, which is neither signed nor unsigned, and above all C preprocessor features). > Good for you. Totally irrelevant to the history of C. It means that meagre hardware resources don't have to compromise the design of a language, especially when it comes to syntax. So you can't use limited resources as an excuse for its questionable choices. Actually some choices actually made it harder to parse.
[toc] | [prev] | [next] | [standalone]
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Date | 2026-10-18 14:32 +0200 |
| Message-ID | <11b2e9r$14ag7$1@dont-email.me> |
| In reply to | #403248 |
On 17/10/2026 22:40, bart wrote: > On 17/10/2026 18:58, Dan Cross wrote: >> In article <11avmfb$55rt$1@dont-email.me>, bart <bc@freeuk.com> wrote: >>> On 17/10/2026 04:19, Dan Cross wrote: >>>> In article <11auad0$3no1k$1@dont-email.me>, bart <bc@freeuk.com> >>>> wrote: >> Yes. C's declaration syntax is famously abstruse; film at 11. I'm not sure it is. It is different from what you find in some other languages, and it is certainly possible to write declarations in C that are hard to comprehend. But it is possible to do that in any programming language, and equally you can write clear declarations in C. It is very rare that I have to think about the syntax of declarations when I write C code, or when I read C code - maybe that's just my own experience, but it is simply not an issue for me. Mind you, I don't write code with the rubbish that you bring up as "examples" - maybe my experience is different from that of other people. > > And ... that's it? Just accept it? How about doing something about it! > What, exactly, do you think any of us should do about it? Let's hear a clear, realistic, concrete plan for how people here, the readers of comp.lang.c, can go about changing the syntax for C declarations. Note that continually posting complaints to people who did not design the C language, do not implement C compilers, and are not part of the C standards committee, is not a realistic or concrete plan for change. Nor is continually badgering people to "admit" that C is a terrible language.
[toc] | [prev] | [next] | [standalone]
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Date | 2026-10-18 13:22 +0200 |
| Message-ID | <11b2a6d$131h6$1@dont-email.me> |
| In reply to | #403234 |
On 17/10/2026 13:34, bart wrote: > On 17/10/2026 04:19, Dan Cross wrote: >> In article <11auad0$3no1k$1@dont-email.me>, bart <bc@freeuk.com> wrote: > >>> Those are considered more productive. >> >> ...and you think that's because of the syntax, and not the high >> level nature of those languages? > > It's a combination. > >> Yes, the syntax is pretty gnarly; Dennis Ritchie even said as >> much. Fixed in Go and Rust, but also, I doubt you've ever in >> your life had a variable of type array of array of length 8 of >> a pointer to a pointer to a function returning an array of >> pointers to char. Finding the most ridiculous example you can >> is not really evidence of anything besides your weird obsession > > That was the first one I saw online next to a quote from K&R and I > assumed it was from the book. In fact the example from the book is this: > > char (*(*x())[])() > > I've no idea what the means either. The point is not that the examples > are ridiculous, but that they are hard to convert to and from LTR form > which is how we think. With LTR syntax it becomes utterly trivial to > read or write them, no matter how complex. > > (There's a tool called CDECL that translates types from C syntax to LTR > English or vice versa. It calls the C versions 'gibberish'. This is a > real thing!) > Putting that example in cdecl gives : "declare x as function returning pointer to array of pointer to function returning char" To me, that is just as much gibberish as the original C. No syntax is going to make sense of it - no amount of "ref" or "func" or pre-fix array notation will help. If you want complex types in a programming language, make them out of simpler, named types that express what you are trying to achieve. I think any decent typed programming language will have a way to do this - for C, "typedef" is your friend here. (And do /not/ reply by bringing up examples you have cherry-picked from code you have found, as though it was my fault they wrote incomprehensible code.) > >> with finding abstruse corner cases and holding them up as >> reasons to dislike C. > > The first example I gave was the simplest form of function pointer, > where the syntax is 'void(*)(void)'. Hardly a corner case, and it > rapidly goes downhill. Name the types at the point where they are clear, and build them up from there. typedef void (*fp_void)(void); > > If meeting C for the first time, that does not bode well. If the > designers did not care about this, that does not inspire confidence in > the rest of the language. C is not, and has never claimed to be, a beginner-friendly language. It is designed to be efficient while remaining quite a small language, which means that there are parts that are harder to use correctly, details that are important to understand, and it has plenty of scope to write code that is unclear. It works well for responsible programmers who learn the language and code carefully - but you have to learn more before you can understand and use it than, say, BASIC or Python.
[toc] | [prev] | [next] | [standalone]
Page 14 of 18 — ← Prev page 1 … 12 13 [14] 15 16 … 18 Next page →
Back to top | Article view | comp.lang.c
csiph-web