Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: "marb...@yahoo.co.uk" Newsgroups: comp.compilers Subject: Re: another C-like language? was Compilers :) Date: Thu, 5 Jan 2023 06:27:06 -0800 (PST) Organization: Compilers Central Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <23-01-008@comp.compilers> References: <23-01-001@comp.compilers> <23-01-002@comp.compilers> <23-01-003@comp.compilers> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="22109"; mail-complaints-to="abuse@iecc.com" Keywords: C, design, comment Posted-Date: 05 Jan 2023 09:34:32 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com In-Reply-To: <23-01-003@comp.compilers> Xref: csiph.com comp.compilers:3277 On Tuesday, 3 January 2023 at 17:45:17 UTC, Steve Limb wrote: > I’m not sure there would be that much demand for a cut down C. I recently read (well, skimmed) http://www.mjbauer.biz/C-less%20Reference%20Manual.pdf "A concise subset of the C programming language". Though I'm a bit baffled by some of Bauer's choices. Why is `char *foo="foo", *bar="bar"; puts(foo); puts(bar);` allowed but not `char *foo="foo"; puts(foo); char *bar="bar"; puts(bar);` ? Admittedly, the latter is only allowed in relatively recent C, but from my (very limited) experience writing compilers, the latter is no harder to compile. I idly thought about adding stuff to C-less and calling it C-more-or-less, Cmol, for short. I'm up for reading the source of any relatively simple compiler for, and written in, anything C-like. I've tried making sense of the GNU C compiler a few times. My brain may recover one day! [If you're doing a one-pass compiler, it's easier if all the declarations are at the beginning so you can generate the code to set up the stack frame and do initializations. I agree that on modern computers it's not a big deal, but remember that early C compilers ran in 24K bytes and I don't mean meagabytes. -John]