Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Low, mid, high level language, what's the difference?

People also ask

What is low/mid and high level programming language?

Very low-level: Machine Code. Low level: Assembler, Forth. Mid level: C, C++, most system programming languages. Mid/High level: D, Go, garbage collected system programming languages. High level: Java, C#, most interpreted languages.

What is a key difference between high-level languages and low-level languages?

A high-level language is one that is user-oriented in that it has been designed to make it straightforward for a programmer to convert an algorithm into program code. A low-level language is machine-oriented. Low-level programs are expressed in terms of the machine operations that must be performed to carry out a task.

What do you mean by low level and high-level language explain with example?

A single statement may execute several instructions. The statements can be directly mapped to processor instructions. BASIC, Perl, Pascal, COBOL, Ruby etc are examples of High-Level Languages. Machine language and Assembly language are Low-Level Languages.


Yes, they're just general terms. It's to do with abstraction, and how close you are to what the computer's actually doing.

Here's a list of programming languages ranging from very low to very high level:

  • Machine Code could probably be considered the lowest level programming language.

  • Assembly language is at the level of telling the processor what to do. There is still a conversion step towards machine code.

  • C is a step up from assembler, because you get to specify what you want to do in slightly more abstract terms, but you're still fairly close to the metal.

  • C++ does everything that C can do but adds the capability to abstract things away into classes.

  • Java/C# do similar things to C++ in a way, but without the opportunity to do everything you can do in C (like pointer manipulation in Java's case [thanks Joe!]). They have garbage collection though, which you have to do manually in C++.

  • Python/Ruby are even higher level, and let you forget about a lot of the details that you would need to specify in something like Java or C#.

  • SQL is even higher level (it's declarative). Just say "Give me all the items in the table sorted by age" and it will work out the most efficient way to carry this out for you.


low level = long development time + very fast executable file

high level = shorter development time + slower executable file

mid level is between the two


Very low-level: Machine Code

Low level: Assembler, Forth

Mid level: C, C++, most system programming languages

Mid/High level: D, Go, garbage collected system programming languages

High level: Java, C#, most interpreted languages

Even Higher level: Lisp dialects

Highest level: SQL, declarative programming languages

If there is anything else to be added, tell me.


In computer science, a low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture. The word "low" refers to the small or nonexistent amount of abstraction between the language and machine language; because of this, low-level languages are sometimes described as being "close to the hardware." A low-level language does not need a compiler or interpreter to run; the processor for which the language was written is able to run the code without using either of these.

By comparison, a high-level programming language isolates the execution semantics of a computer architecture from the specification of the program, making the process of developing a program simpler and more understandable.

Middle level languages stand in between the above two


They aren't absolute. They are all relative to what other languages are being used in industry at the time. For example, there was a time when assembly was considered mid-level.

The 'level' is essentially a measure of how abstracted the programmer is from the actual hardware-based operations. In a low level language you might have to care about actual memory locations, whereas in a high-level you just create variables and let the OS handle memory.

A normal CPU processes either 32 or 64-bit instructions. In the simplest form, think of this as an 32 1's and 0's in a row - that's what the processor actually interprets and executes. Writing this directly (machine code) would be the 'lowest-level'.


Low level means closer to the machine, and therefore more difficult and more powerful. The higher level you get, the more removed from the machine and "English-like" you get, but you lose a lot of the power and functionality that comes with being able to control the minute details of the machine. Higher level languages also generally tend to protect you more and have much more precautions and checks in place, while lower level languages trust you, so to speak, and let you play around at your own risk.


The term mid-level language is one I've never heard.

"Low" and "High" refer to how "close" to the machine you are in your programming. The lowest level would be machine (binary) code. Next (and still considered low) is assembler. The higher level languages involve more symbolism and constructs that are supposed to be closer to how humans normally think. C (and somewhat C++) has a reputation as being somewhat a hybrid low/high level because it has many constructs that are in high level languages, but also has instructions (e.g. shifts) that are low level languages but often not in higher level languages.