Classification of Computer Languages

Hello Experts!

     Strange request here.  I wondering if a seasoned vet or someone with a bit of programming knowledge could address my question and accurately categorize the below languages in their appropriate level.  This would help me greatly!  Classification of "Lower" is not to be taken literally as in "Assembly" language but what the language in todays standards would be listed as.  I hope this makes sense.  And no, this isn't for homework.  LOL!

Language                                         Level

C                                                       Upper or Lower Level Langauge?
C++                                                   Upper or Lower Level Language?
PERL SCRIPT                                     "  "
VBSCRIPT                                         "  "
JAVASCRIPT                                     "  "
Visual Basic                                      "   "
SQL Script                                         "  "
XML                                                   "  "
DHTML                                               "  "
VRML                                                 "  " 
HTML                                                  "  "

An example:  
Many computer languages such as "C" were considered high level languages in their day but to todays standards, I would think most programmers would classify "C" as a "lower-level" language?  
Who is Participating?
Molly FaganApplications Team SupervisorCommented:
I have never classified XML, DHTML, HTMRL VRML as programming languages--they're markup languages.  As a former computer science instructor, they do not qualify as programming languages because you cannot do the 3 basic programming control structures in them--sequence, condition (if-then-else), and iteration.

I haven't read anything that would imply that there's been a change of opinion from calling C anything but an upper level language--it's still very much used.  So IMO, C, C++, etc. are all upper level languages.  Curious to see what others think:-)
HonorGodSoftware EngineerCommented:
I agree with mjfagan concerning the *ML languages being Markup Languages, not programming languages (hence the ML).

One of the challenges or problems with identifying , or categorizing languages such as C, and C++ as a specific "level" is how some readers may interpret this classification.

Good C/C++ programmers can do some amazing work from writing Operating Systems, and device drivers, to specific applications that allow users to do all sorts of stuff from data base administration, to trivial "Hello World" applications.  So, how do we "classify" or "categorize" flexible and powerful programming languages that have these attributes?

My familiarity with Visual Basic, and VBScript has been limited, so I would tend to put them in the "high level" category.

I think that JavaScript, would probably fit in the high level category because of the places where it has been used. Note however, the increased utilization of JavaScript in server side situations because of the popularity of Node.js.  But I don't think that even this would move it out of the "high level" category.

Perl, and Python are both capable of wide variety of environments, so it would also be limiting to put either "only" in the "high level" category.

I guess it might help if we were able to better understand how this information is being used?

Perhaps something like this?
| Language     | L | M | H |
| C            | x | x | x |
| C++          | x | x | x |
| Perl         |   | x | x |
| Python       |   | x | x |
| VBSCRIPT     |   |   | x |
| JAVASCRIPT   |   |   | x |
| Visual Basic |   |   | x |
| SQL Script   |   |   |   |
| XML          |   |   |   |
| DHTML        |   |   |   |
| VRML         |   |   |   |
| HTML         |   |   |   |

Open in new window

I agree with mjfagan, for he most part.  DHTML does not exist even as markup it is actually just a
method that combines HTML and Javascript.  The problem I have here is with the terms "upper level"
and "lower level". What is the definition of those terms.  When I started out in the 60's all of
those would have been considered high level voodoo.

If the differentiation, of the terms is based on range of function then it is questionable whether
SQL could be considered high level because of its limited scope.  On the other hand if the definitions
are based on the number of layers the developer is removed from machine code than c and possibly perl
would have to be considered lower level, and SQL would at a high level.  

So I think any definitive opinion would require a clear definition of the properties to be measured
for the purpose of classification.
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Molly FaganApplications Team SupervisorCommented:
@COBOLdinosaur, with regards to SQL, in one of my classes 15 years ago, SQL was described as a 4th generation language (with machine language being 1st generation, Assembly--2nd, C, etc. 3rd) because it was a language where we didn't have to explicitly tell the computer *how* to grab the data (i.e. we don't have to write the underlying code for doing a SELECT statement)).  I haven't seen anything more about that since my college years.

But yeah, I always understood that the levels of language (upper/lower) was based on the number of layers the developer is removed from the machine code.

Generally when people say "high level" language, they are referring to the level of abstraction above the machine.
Many computer languages such as "C" were considered high level languages in their day but to todays standards, I would think most programmers would classify "C" as a "lower-level" language?

As a current computer science instructor, I would agree with that statement. For the majority of programmers today, C (or even C++) is the lowest level language they have seen. A few still see assembly in one or two classes. Then they started using Java or VB or any of the .NETs.

You could certainly put a partial order on the languages, but trying to call them either "high" or "low" level causes problems since we keep getting more and more abstract. C++ definitely affords a higher level of abstraction than C which is quite a bit higher than assembly, which is certainly higher than machine code.
Then I would put Pearl, Python and Java above C++, then VB and the .NETs, then all the scripts, but some people might disagree. Scripts are definitely a higher abstraction than compiled languages, but someone who knows them better might want to order them as well.

Ah, I was waiting for someone to bring that up. A different classification was the generation levels. They tried to dodge the "high is the new low" thing by just enumerating the levels.

Quick and dirty summary:
1st generation is machine code
2nd generation is assembly (which is assembled into machine code)
3rd generation is structured languages (C, C++, .NET) which are compiled into assembly or machine code
4th generation is purpose-driven, specific languages (like SQL) where the language was build on top of the others for a specific task.
5th generation is usually used for languages that need less help from the programmer. You just tell it what problem you want to solve, and it figures out how to solve it for you. Example: A language where you can just type English instead of rigorous code and it figures out what you mean.
The definition of 4th generation can be a little fuzzy.  It is most often used to describe object oriented languages.  I have always considered SQL to be high level based on the level of abstraction.

However if you classify SQL as 4th generation where does that position JAVA? Then there is PHP which supports objects in PHP5, but continues to support function oriented PHP4 within the same script.  

Scholars could spend a great deal of time making all sorts of logical arguments to support an infinite number of classification systems and by the time they finally came to a conclusion it would be moot because a new generation of languages has come into usage.

In the end it does not matter what the classifications are so long as an appropriate tool is selected for a given job, and we should all be grateful that we have such a large, diverse group to select from.
I agree with that. There is no classification system that easily classifies every language and that everyone agrees on.
itsmevicAuthor Commented:
Good dialog here guys, thanks for everyone's input.  Now how to award the points...?  
Molly FaganApplications Team SupervisorCommented:
IMO, divide them equally:-)
HonorGodSoftware EngineerCommented:
Thanks for the assist, and the points.

Good luck & Happy Halloween.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.