Is C# a high level language? I see it as more like medium level, but I am still unsure about this. Would you consider it as high level as some of the popular scripting languages?
Or does it accommodate more than one level?
Is C# a high level language? I see it as more like medium level, but I am still unsure about this. Would you consider it as high level as some of the popular scripting languages?
Or does it accommodate more than one level?
Yes, it is high-level. Very. You are the only one who recognizes 'medium-level language' as a term. :)
Define a high level language? When C was created it was considered a high level language because it could be compiled on multiple architectures
Um, yes, it is a high-level language. And you can remove the subjective tag. There's nothing subjective about it.
I would personally say that it has a high level of abstraction. A lot of complicated matters are handled by the .NET framework unlike C or C++ where you are responsible for almost everything that happens.
C# is the very much so a high level language and is more developed than most scripting languages. As far as I've ever learned, there is no such thing as a medium level language and the ones considered low level these days is pretty much any form of assembly or binary code.
C# allows use of pointers, is compiled just in time but sometimes ahead of time. Compared to a lot of other languages I use even though it allows very rapid software development it is slightly lower and closer to the hardware which comes to great advantage.
In consideration of Bob The Janitor's post:
Define a high level language? When C was created it was considered a high level language because it could be compiled on multiple architectures
I'd say it's moving from the "High" spot just like Java is.
Java's considered the assembly language of the JVM at this point. New languages like Scala and Ruby seem to offer quite a variety that Java and C# are not going to easily match.
Don't get me wrong, I happen to think that Java/C# are at the perfect level--I'm just saying, as with C, these languages have a fairly set definition/feature set whereas "Features" will continue to be invented and implemented in newer languages.
If you don't believe me, have a look at Scala.. a completely different monster!
From what I have read from various sources, C# is considered a 3GL language. A higher level language 4GL would look more like natural language and a 5GL language is about constraints based programming (artificial intelligence) where you define the constraints of a problem but leave it up to the computer to solve it.
If you judge the C# language by itself (not considering the .Net framework), it is not a huge departure from other C based languages so in that sense the 3GL definition fits.
Here is a link to wikipedia for reference:
http://en.wikipedia.org/wiki/Third-generation_programming_language
In 20 years people will probably not consider it a high level language, but at the moment it certainly is. It's all relative to your basis of comparison. Compared to Assembler, it is a very high level language. Compared to a hypothetical computer program that writes the code for you (as Brian called a 5GL), then I guess it isn't.
"A programming language is low level when its programs require attention to the irrelevant." --Alan Perlis