Mikke Goes Coding

Blog

17 Programming Language Paradigm Terms Explained

It’s time for another post after a very long break! Today’s post is all about understanding the different terms around programming languages and their different types, programming language paradigms.

Ever since I started to learning how to code, I’ve been bombarded with more or less cryptic jargon like never before in my life. Surely, it’s nothing less than what I expected, but still it has sometimes felt like certain blog posts and online courses should come with a dictionary for us coding rookies.

Inspired by my own learning experience, this post is all about the jargon around the different types of programming languages and paradigms. A programming language paradigm is simply a way to classify programming languages into groups based on their characteristics.

Assembly language

Assembly languages are close to machine languages and only provide little abstraction, making programs very fast and easy on the memory. They are translated into machine language by a program called assembler.

Most often assembly languages only contain a limited number of commands, making it rather easy to learn them.

Even though the command themselves are fairly limited and therefore easy to learn, writing a program in assembly language can be very time-consuming and difficult to manage. Moreover, at the same time the developer needs to be extremely careful not to make any mistakes while typing their code.

Additionally, a specific assembly language only works on one type of CPU, as each type has its own assembly and machine language.

Third-generation language

Third-generation programming languages were the first ones to be machine-independent. This was something new after the first two generations of languages, where programs had so far been written specifically for a certain type or CPU, for instance.

In other words, you can write programs for several different types of devices with them and use a compiler to run your programs.

Fourth-generation language

The fourth generation of programming languages takes the concept of abstraction to the next level, making the code written in them resemble human language.

Therefore, they are easier for us humans to read and interpret, making writing entire programs by yourself comparatively easy and fast.

However, this abstraction comes at the cost of slowing your programs down and using up more memory, since they have to be compiled into machine language for a computer to be able to run them correctly.

High-level language

High-level languages resemble human language more than low-level languages. This makes them somewhat easier to read (especially for coding newbies) as the code you write with them is more abstracted than with low-level languages.

However, in order to run a program written in a high-level language, it needs to be compiled into machine language first.

Low-level language

These are essentially languages where the code you write resembles actual machine language and instructions.

In other words, low-level languages don’t provide much abstraction of programming concepts. This sets them apart from high-level languages.

One major benefit low-languages offer is that you can create programs that run very fast and that don’t take up too much memory. The minimal amount of abstraction saves a lot of time for the developers at the smallest possible cost to efficiency and performance.

On the other hand, the low level of abstraction means that you need a deeper understanding of the language, its dynamics, and machine language.

Machine language

Also referred to as machine code, machine language is simply a collection of binaries or bits.

These are then read and interpreted by computers. Quite simply, they are the lowest-level programming language of all, consisting only of numbers.

Hence, out of all languages in the world, machine language is the only one that a computer can understand. Therefore, any computer program that you write in any programming language needs to be turned into machine language first. After that, your computer can execute it normally.

Natural language

All human languages are referred to as natural languages in computer science.

One major challenge in computer science is to make it as easy as possible for us humans to interact with computers and develop computers and programs that can understand natural languages. (Siri, you listening?)

Of all programming language generations so far, the fourth-generation ones are the closest to natural languages.