From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <96df9ced9a56f62ae0d46b0692093cc6@proxima.alt.za> To: 9fans@9fans.net Date: Sun, 29 Nov 2015 08:12:41 +0200 From: lucio@proxima.alt.za In-Reply-To: <4BA8023A-95EF-4B39-85E2-444DD2766C61@me.com> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit Subject: Re: [9fans] Compiling ken-cc on Linux Topicbox-Message-UUID: 797899b0-ead9-11e9-9d60-3106f5b1d025 > One interesting thing is that for the past twenty years new > architectures have been designed to run C code well. Just check out > the papers a ISCA. Then why do we have to have such complicated > compilers to generate code for it. I'm pretty sure that you can lay that at C's door. Had Algol or Pascal been targeted, the architectures would not have so many loopholes to go insane over. C's pragmatism came back to bite it. Of course, Algol or Pascal's discipline meant they never stood a chance, so it's a lose-lose situation. Let's be grateful that C existed at all. Had ADA or PL/I won that war, I doubt the Personal Computer would have ever become affordable. What it suggests to me is that the next programming notation should first of all describe an architecture that can be engineered without an infinite array of corner cutting features that can't be represented in any semblance of programming code, which is why the compiler needs to know about each and every one and even the likely circumstances under which they ought to be used. Then we can hand to the engineers a programming language they can target with their architectures and they won't botch it too badly. On further thought, it's obvious where it all went wrong: C is not one language, it is only scaffolding. Targeting it was bound to lead to an infinite number of outcomes. Lucio.