+ 2

Is C++ a high-level or a low-level language?

Some say this, some say that. According to my Google results most people say low-level. To me it's just a mixture of both, though I'm tending to say high-level. It has high-level elements such as OOP and generics but at the same time it also has low-level elements such as manual memory management. It was my first language and I think it was a great choice because it teaches you more than other high-level languages while being more motivating than other low-level languages. So, where would you place it?

27th Jan 2018, 2:52 AM
Chris
Chris - avatar
8 Réponses
+ 2
@Timon P.: First of all, exe is an assembly program, so when you compile your C++ runnable program, the output will be an exe. Assemly is closer to binary (machine code) bcs from there it is just one step. Generally, low level language refers to either machine code or assembly language. Just for curiosity: virus protection companies used to "disassemble" exe files to get to know the virus in it better. It means they are reading the assembly program. And if they can guess the high level language pattern in it, with special tool they decompile it to that language.
27th Jan 2018, 2:03 PM
Panka
Panka - avatar
+ 2
well, yes. A lot of people using it in the wrong way and it was always a confusing term. Thats why i think it is a useful question Chris raised and we can discuss it.
27th Jan 2018, 2:07 PM
Panka
Panka - avatar
+ 2
There are official definitions and therms accepted by the leader of the profession and professors. We cannot change them unless we are giving a same level of explanation and provide them wrong. I think what you can use here for c++ is how "featured" language it is. And just because it gives the feature to memory manipulation, it doesn't make it a low level language. The therm is used to decide how low or high the language is for the computer to understand compared to the binary and not for how deep it dig into the system.
27th Jan 2018, 3:30 PM
Panka
Panka - avatar
+ 1
It is officially a high-level language. If you compare it to Assembly for example, you can see the difference. The reason is why a language is defined as high- or low-level, depends on the distance it takes to compile to the computer to understand. A C++ program will first compiled to Assembly which is a lower level language, and then to binary (zeros and ones). An Assembly program will compiled to binary directly. It has nothing to do about what you can do in the language and what not. The main point is how far it is from the computer's binary language.
27th Jan 2018, 10:27 AM
Panka
Panka - avatar
0
You can make high-level abstractions on low-level code. I also think it's both.
27th Jan 2018, 7:21 AM
Timon Paßlick
0
@Panka What except Assembly is closer to the binary language than a compiled language? And how can you know C++ is Assembly before it's binary? Is this specified in the iso standard? In short terms: If we use your definition, what could we consider a low level language? Just Assemby?
27th Jan 2018, 1:47 PM
Timon Paßlick
0
That makes the term kind of useless and people generally use it in another way.
27th Jan 2018, 2:04 PM
Timon Paßlick
0
But who tells you what's right and wrong? Definitions are written by a human like you and me.
27th Jan 2018, 2:10 PM
Timon Paßlick