# Programming Language Hierarchy

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"?

• 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". Jan 5, 2019 at 5:32
• 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. Jan 5, 2019 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.

Examples:

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

• 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.? Jan 5, 2019 at 2:59
• 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. Jan 5, 2019 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.

• I always thought the generations were little more than poor marketing. Jan 5, 2019 at 11:04

Perhaps a better way to try to understand which languages come from where is a directed graph on a timeline (like a family tree ).

Shameless Plug

• (No graph can do justice to the galloping featurism of the past decade (start that decade anytime after *NIX epoch).) Feb 10, 2021 at 8:43
• @greybeard Perhaps, but it is cool to see the connections, especially for someone who didn't live through them personally. Feb 10, 2021 at 16:17

This picture shows the hierarchy:

Machine Language is the lowest. It is the most understandable by computer.

High level language is the highest. It is the most understandable by human so far.

• High level language is the highest. Your picture show one item above High level language. Feb 23, 2021 at 7:24