Is it something that machines speaks? C, C++, Java are machine languages?
The language which machine understands is machine language. So, what machine understands? Obviously, it is 0 and 1.
Machine understand only digital values. So, if we need to interact with machine, the only way is to communicate is binary terms. In other words, it is low level language which is most fundamental way and it is not human-readable.

The low-level programming language is consisting of binary code that can be directly executed by a computer’s CPU. Each instruction in a binary code corresponds to a specific operation that the CPU can perform. It serves as the foundation for all the computer operations.
If the machine language is not human-readable, then how can we build and give instructions to machines?
That is where higher level languages come into the picture. The human readable code is known as higher level languages. So, the source code is developed with syntax and semantics and converted into machine code, this process is called compilation.

The programming languages C, C++ are working as mentioned. With this approach a machine language needs to be compiled based on operating system and processor architecture. The source code needs to be compiled one Time and it can be executed whenever need until changes in the code.
To understand this, we can create a sample code and compile it for X86-64 architecture and compile it for ARM architecture, both will have different machine code.
Sample code for Higher level programming language. (Hello world in C).
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
To run the same code on multiple platforms, it is necessary to compile it multiple times. To overcome this, there are languages designed to be platform-independent. Additionally, for quick prototyping, there are languages designed to be interpreted.
Programming language types
So far, we have explored the fundamental aspects of programming languages. However, a more comprehensive understanding requires further exploration of additional classifications and concepts.
- Compiled Language
- Interpreter Language
- Platform Independent Language
Compiled Language
The Programming language which needs compilation process to convert to machine code is known as complied language. As we already had a brief about compilation, let us go in detail.

As illustrated in the diagram, the compilation process involves converting source code into assembly code. Subsequently, through the stages of assembling and linking, this assembly code is translated into machine code.
Why Assembly code?
Assembly code or language is a low-level programming language but still human readable, is used to directly control hardware and often used when specific hardware manipulation or optimizations are necessary.
Interpreted Language
An interpreted language is a type of programming language in which most of the instructions are executed directly by an interpreter rather than being compiled into machine code. The interpreter reads and executes the code line by line or statement by statement, translating it into machine code at runtime.

The interpreted language has advantage of ease of debugging but slow in execution, which is used for Rapid development and prototyping.
Mostly interpreted languages are platform independent language like Java, Python. But there are exceptions like VBScript.
Platform Independent language
Any language which can be built in one platform and used in all platforms are known as platform independent languages. The idea is, Source code converted into bytecode which is common for all platforms such as windows, Linux and there is something called Virtual machine which is installed at the execution machine and that enables execution of byte codes.

Few examples for platform independent languages are Java, Python, C#, JavaScript, PHP, Ruby.
Apart from these lower and higher-level languages, do we have any other way to interact with machine. Obviously yes, for the people who do not know to code the best way is interact with machine is user interfaces (UI), which is our most of real-world applications.
User Interface
User interfaces (UI) are particularly beneficial for individuals who lack coding expertise. They facilitate interaction with machines through graphical or touch-based elements, making technology accessible to a wider audience. This is the foundation of many real-world applications, enabling users to perform tasks without the need for direct programming knowledge.
While UI is the easiest way to interact with machines, it operates similarly to how low-level languages work behind the scenes. User interfaces enable users to access and utilize the functionality of software systems without needing to understand the underlying programming or machine language. This abstraction simplifies complex operations and enhances user experience, bridging the gap between human interaction and machine execution.
Happy Learning!!! Until then…
Leave a comment