Deutsch   English   Français   Italiano  
<vai0ur$2fqc5$1@dont-email.me>

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

Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: David Brown <david.brown@hesbynett.no>
Newsgroups: comp.lang.c
Subject: Re: Top 10 most common hard skills listed on resumes...
Date: Mon, 26 Aug 2024 15:46:02 +0200
Organization: A noiseless patient Spider
Lines: 79
Message-ID: <vai0ur$2fqc5$1@dont-email.me>
References: <vab101$3er$1@reader1.panix.com>
 <vad7ns$1g27b$1@raubtier-asyl.eternal-september.org>
 <vad8lr$1fv5u$1@dont-email.me> <vafmiv$202ef$1@dont-email.me>
 <20240825201124.000017a3@yahoo.com> <86msl05ctt.fsf@linuxsc.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 26 Aug 2024 15:46:03 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="6d3fbbe72210d99c1b00ddb3dee295bc";
	logging-data="2615685"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19LgfA0ALjLq1lxVfmb5YHbUCCJNb35lcw="
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.11.0
Cancel-Lock: sha1:cIDgIe3CbHWW+18jTt89uqVx8ko=
In-Reply-To: <86msl05ctt.fsf@linuxsc.com>
Content-Language: en-GB
Bytes: 4734

On 26/08/2024 02:48, Tim Rentsch wrote:

> It's been amusing reading a discussion of which languages are or are
> not high level, without anyone offering a definition of what the
> term means.

That is an important point.

>  Wikipedia says, roughly, that a high-level language is
> one that doesn't provide machine-level access (and IMO that is a
> reasonable characterization).

No, that's not what Wikipedia says.  To get the full picture, read the 
links:

<https://en.wikipedia.org/wiki/Low-level_programming_language>
<https://en.wikipedia.org/wiki/High-level_programming_language>

Roughly speaking, they define a "high-level language" as one with a 
strong abstraction from the underlying machine, while a "low-level 
language" has little or no abstraction.

Wikipedia classifies C as a high-level language that also supports a 
degree of low-level programming, which I think is a fair assessment.

>  Of course no distinction along these
> lines is black and white - almost all languages have a loophole or
> two - but I expect there is general agreement about which languages
> clearly fail that test.  

Agreed - trying to make such binary classifications is usually a bad idea.

> In particular, any language that offers
> easy access to raw memory addresses (and both C and C++ certainly
> do), is not a high-level language in the Wikipedia sense.
> 

That is simply incorrect, based on the Wikipedia articles.

I think it is perhaps better to first talk about low-level and 
high-level coding or functionality, rather than the language. 
High-level coding deals with abstractions, defined by their 
specifications rather than the hardware (or virtual machine) running the 
code.  Low-level coding is tightly tied to the hardware - access to 
arbitrary memory (subject to OS or hardware restrictions), features 
based on the instruction set of the computer, and so on.

C clearly supports high-level programming - you can write very portable 
code that is independent from the underlying hardware.  (Most C 
/programs/ require a least a small amount of implementation-dependent 
behaviour or external library code, but a lot of C /code/ does not.)  It 
also clearly supports low-level programming.

Whether a programming language is considered "high level" or "low level" 
is, IME, determined by one question - is the language mainly defined in 
terms of abstract specifications or by the hardware implementing it?  C 
does have implementation-specific behaviour, and is thus not "pure" 
high-level language, but there can be no doubt that it is primarily 
defined as a high-level language.

Both C and C++ also /support/ a limited (but very useful in practice) 
subset of low-level programming.  That does not make them low-level 
programming languages, any more than C++ is a functional programming 
language just because it has lambdas.  And even if one were to classify 
them as low-level languages, it would not stop them /also/ being 
high-level languages.

And note that Wikipedia classifies it as a high-level language, and 
lists it along with other high-level languages.  (I don't consider 
Wikipedia to be authoritative, but it's usually a reasonable and 
objective source for many purposes.)

> 
> Third amusement:  any language that has not yet become popular
> has already failed to become popular.

Or it could be a new language that is gaining traction.