Deutsch   English   Français   Italiano  
<20241223002048.00004d3c@yahoo.com>

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

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Michael S <already5chosen@yahoo.com>
Newsgroups: comp.lang.c
Subject: Re: transpiling to low level C
Date: Mon, 23 Dec 2024 00:20:48 +0200
Organization: A noiseless patient Spider
Lines: 82
Message-ID: <20241223002048.00004d3c@yahoo.com>
References: <vjlh19$8j4k$1@dont-email.me>
	<vjn9g5$n0vl$1@raubtier-asyl.eternal-september.org>
	<vjnhsq$oh1f$1@dont-email.me>
	<vjnq5s$pubt$1@dont-email.me>
	<vjpn29$17jub$1@dont-email.me>
	<86ikrdg6yq.fsf@linuxsc.com>
	<vk78it$77aa$1@dont-email.me>
	<vk8a0e$l8sq$1@paganini.bofh.team>
	<vk9q1p$oucu$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 22 Dec 2024 23:20:54 +0100 (CET)
Injection-Info: dont-email.me; posting-host="926dab9d4a3a2406bd5e1e36cf72f405";
	logging-data="868220"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/onGXa4U/fdZ/ryWim13afDKZ45Vzg5bI="
Cancel-Lock: sha1:lDzIeVc/t/l83gBbUqQ9nniD+i0=
X-Newsreader: Claws Mail 4.1.1 (GTK 3.24.34; x86_64-w64-mingw32)
Bytes: 4538

On Sun, 22 Dec 2024 20:41:44 +0100
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:

> On 22.12.2024 07:01, Waldek Hebisch wrote:
> > Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote:  
> >> On 21.12.2024 02:28, Tim Rentsch wrote:  
> >>> Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
> >>>  
> >>>> On 16.12.2024 00:53, BGB wrote:
> >>>>  
> >>>>> [...]
> >>>>>
> >>>>> Pretty much all higher level control flow can be expressed via
> >>>>> goto.  
> >>>>
> >>>> A 'goto' may be used but it isn't strictly *necessary*. What *is*
> >>>> necessary, though, that is an 'if' (some conditional branch), and
> >>>> either 'goto' or recursive functions.  
> >>>
> >>> Conditional branches, including 'if', '?:', etc., are not strictly
> >>> necessary either.  
> >>
> >> No? - Can you give an example of your statement?  
> > 
> > Look at example that I posted (apparently neither you nor Tim
> > looked at my posts where I explained in detail how to translate
> > goto program (with conditional jumps) into program that contains
> > no goto and no conditional jumps).  
> 
> I'm not sure but may have just skimmed over your "C" example if it
> wasn't of interest to the point I tried to make (at that stage).
> 
> > Or try to figure out how to do this knowing that C has function
> > pointers.  
> 
> I will retry to explain what I tried to say... - very simply put...
> 
> There's "Recursive Functions" and the Turing Machines "equivalent".
> The "Recursive Functions" is the most powerful class of algorithms.
> Formal Recursive Functions are formally defined in terms of abstract
> mathematical formulated properties; one of these [three properties]
> are the "Test Sets". (Here I can already stop.)
> 
> But since we're not in a theoretical CS newsgroup I'd just wanted
> to see an example of some common, say, mathematical function and
> see it implemented without 'if' and 'goto' or recursion. - Take a
> simple one, say, fac(n) = n! , the factorial function. I know how
> I can implement that with 'if' and recursion, and I know how I can
> implement that with 'while' (or 'goto').
> 
> If I re-inspect your example upthread - I hope it was the one you
> wanted to refer to - I see that you have removed the 'if' symbol
> but not the conditional, the test function; there's still the
> predicate (the "Test Set") present in form of 'int c2 = i < n',
> and it's there in the original code, in the goto transformed code,
> and in the function-pointer code. And you cannot get rid of that.
> 
> Whether you have the test in an 'if', or in a ternary '?:', or
> use it through a bool-int coercion as integer index to an indexed
> function[-pointer] table; it's a conditional branch based on the
> ("Test Set") predicate i<n. You showed in your example how to get
> rid of the 'if' symbol, but you could - as expected - not get rid
> of the actual test that is the substance of a conditional branch.
> 
> I think that is what is to expect by the theory and the essence of
> the point I tried to make.
> 
> Janis
> 


You make no sense. I am starting to suspect that the reason for it
is ignorance rather than mere stubbornness.

https://godbolt.org/z/EKo5rrYce
Show me conditional branch in the right pane.