I am little confuse about C++ language that it is a high level language or low level. thanks
I am little confuse about C++ language that it is a high level language or low level. thanks
Depends on the 'level' you're in.
For a person fiddling with hardware, it is high level.
For a designer refusing to come down from UML diagrams, it is low level.
C++ is a very flexible language, allowing you to do whatever you want to, provided you know it well enough and exercise some caution.
Last edited by manasij7479; 08-23-2011 at 11:04 PM.
In some contexts anything more versatile than assembly is a high level language.
In other contexts, C and C++ allow for doing things outside the abstraction of the language, such interfacing with using memory mapped hardware. These are considered low level operations. Another way it which the two languages are low level is that the language itself has primitive operations that are very similar to assembler instructions.
In these contexts C because of with the kind of instructions it has cannot be called anything but a low level language. C++ however has a detailed class model, with highly abstract concepts such as polymorphic classes that are characteristic of other high level languages, such as Java. Therefore C++ has the capability of functioning as a high or low level language.
In other contexts still, C and C++ do not provide the efficiency of expressing concepts compared to a language like UML. In this contex, C, C++, Java, assembler, and machine code, are all low level.
But though the above suggests a scale of low to high, there is no formal enumerated scale of how high a language is. If I were to make an enumerated list of low to high computer behavior descriptions, and claim it as a good defining standard, someone will inevitably disagree with my choices.
It is too clear and so it is hard to see.
A dunce once searched for fire with a lighted lantern.
Had he known what fire was,
He could have cooked his rice much sooner.
I do agree, however if you were in the need a hard and fast definition, the only real way to segregate would be whether or not the language was machine independent. It is true that C, and for that matter, almost any language would allow you to directly manipulate hardware (heck you could do it with BASIC) however that does not define the language. Standard C/C++ is indeed machine independent, whereas assembly for instance is not.
Why do you want a hard and fast definition for everyone?
An OOP programmer might find it useful to talk about UML and simmilar future languages as compared to pure programing languages like Java. A computer scientist might find it useful to differentiate between purely abstract languages like Haskell and languages with lots of things that are machine dependent, like C. An embedded systems programmer may find it useful to differentiate between machine independent languages and assembly. A computer architecture designer may find it useful to call anything not written in Verilog or VHDL as high level. And to approach the very low end, someone involved in transistor miniaturization may consider anything not analog high level logic.
To standardize the definition would remove the usefulness of the term within specific fields.
It is too clear and so it is hard to see.
A dunce once searched for fire with a lighted lantern.
Had he known what fire was,
He could have cooked his rice much sooner.