I know that Assembly is the lowest level of the stack besides machine code, but are the languages above it all considered "high level languages" or is there a hierarchy amongst these languages. For instance, are C++, Ruby, and Python all "high level languages"?

  • 3
    $\begingroup$ The terms "high level language" and "low level language" are not clearly (or likely coherently, in many cases) defined. There is no commonly agreed upon meaning for these terms and no commonly agreed upon "hierarchy". $\endgroup$ – Derek Elkins left SE Jan 5 '19 at 5:32
  • $\begingroup$ The archaic division of languages into low and high level, or into "generations", is more of a guide to students of programming and a marketing gimmick than computer science. Research in programming languages has no such conceptions, but rather exact notions of expressivity and transformations between languages. It is useful to understand what people talk about when they mention high-level and low-level languages, but anyone who makes it sound like these are precise technical terms should not be believed without providing some really solid evidnce they know what they're talking about. $\endgroup$ – Andrej Bauer Jan 5 '19 at 11:02

High Level languages are all languages that are able to be written in code that is easy to read. High level languages will use words that are easily read and understood and because of this, the code is very different from low level code. Code written in these languages has to be compiled and assembled into code that the computer can directly understand. This resulting code will be the low level language/code that you are referring to.


High Level: C++, Java, C# Low Level: Assembly, Machine code

| cite | improve this answer | |
  • $\begingroup$ Are Assembly and Machine Code the only low level languages? And can machine code be divided into different numerical systems like Base-2, Base-8, Base-10, etc.? $\endgroup$ – Cody Rutscher Jan 5 '19 at 2:59
  • $\begingroup$ It should be emphasized that these are little more than social conventions. After all, a definition which says "easy to read" involves humans more than machines. $\endgroup$ – Andrej Bauer Jan 5 '19 at 11:03

There are supposedly generations of languages. According to Wikipedia:

First generation: Machine language.

Second generation: Low-level programming languages such as assembly language.

Third generation: Structured high-level programming languages such as C, COBOL and FORTRAN.

Fourth generation: Domain-specific high-level programming languages such as SQL (for database access) and TeX (for text formatting)

The fifth generation was supposed to be developed by Japan's fifth generation project in the 1980s but didn't really go anywhere. Some people consider constraint-based languages to be fifth generation (Wikipedia).

There is also a supposed hierarchy of language power, expressed by Paul Graham as the "Blub Paradox" in his essay Beating the Averages. In this controversial approach, languages such as Basic and Cobol are low in the hierarchy, Python and Perl would be in the middle, and Lisp would be at the top.

| cite | improve this answer | |
  • 1
    $\begingroup$ I always thought the generations were little more than poor marketing. $\endgroup$ – Andrej Bauer Jan 5 '19 at 11:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.