Deutsch   English   Français   Italiano  
<vhohqf$rq03$2@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Lawrence D'Oliveiro <ldo@nz.invalid>
Newsgroups: comp.lang.c
Subject: Re: logically weird loop
Date: Fri, 22 Nov 2024 00:04:32 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 25
Message-ID: <vhohqf$rq03$2@dont-email.me>
References: <0e1c6d2e74d44a715bf7625ca2df022d169f878a@i2pn2.org>
	<vhl32r$66a2$1@dont-email.me> <vhlspv$ahc9$10@dont-email.me>
	<vhmilk$hd28$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 22 Nov 2024 01:04:32 +0100 (CET)
Injection-Info: dont-email.me; posting-host="d0640d653b3828f8761808e02c741927";
	logging-data="911363"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/3PBqtNhYtShSAk32YrR+R"
User-Agent: Pan/0.160 (Toresk; )
Cancel-Lock: sha1:02KBc+cH1iMJ2zrcjzRD5+hvBIQ=
Bytes: 2365

On Thu, 21 Nov 2024 07:06:43 +0100, Janis Papanagnou wrote:

> Actually, if you know Simula, coroutines are inherent part of that
> language, and they based their yet more advanced process-oriented model
> on these. I find it amazing what Simula provided (in 1967!) to support
> such things. Object orientation[*], coroutines, etc., all fit together,
> powerful, and in a neat syntactical form.

Wirth did include coroutines in Modula-2. And a kind of object orientation 
in Oberon, I think it was.

But these are (nowadays) called “stackful” coroutines -- because a control 
transfer to another coroutine can happen at any routine call, each 
coroutine context needs a full-sized stack, just like a thread.

There is this newer concept of “stackless” coroutines -- not that they 
have no stack, but they need less of it, since a control transfer to 
another coroutine context can only happen at the point of an “await” 
construct, and these are only allowed in coroutine functions, which are 
declared “async”. I think Microsoft pioneered this in C♯, but it has since 
been copied into JavaScript, Python and other languages.

Yes, Simula pioneered OO. But the concept has gone in different directions 
since then. For example, multiple inheritance, metaclasses and classes as 
objects -- all things that Python supports.