17 Programming Language Paradigm Terms Explained


updated Apr 6, 2019


Ever since I started to learning how to code, I’ve been bombarded with 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.

Therefore, today’s post is all about understanding the different terms around programming languages and their different types, programming language paradigms.

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

So, in case you’ve ever wondered what sets a first-generation language apart from a fourth-generation one, keep reading!

Here are a couple of related posts you may find helpful, too:

Table of contents

Here’s a little overview of all the items in this little glossary of different terms and concepts around programming language paradigms.

See something you’re not familiar with? Great – just click it and see what it’s all about!

  1. Assembly language
  2. Compiled language
  3. Compiler
  4. First-generation language
  5. Second-generation language
  6. Third-generation language
  7. Fourth-generation language
  8. Fifth-generation language
  9. General-purpose language
  10. High-level language
  11. Loosely typed vs strong typed language
  12. Low-level language
  13. Machine language
  14. Markup language
  15. Natural language
  16. Procedural language
  17. Pseudolanguage

Recommended: 14 Popular Programming Languages and Their Uses Explained

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.

back to top

Compiled language

Compiled programming languages are used to create code that can be executed directly on your computer’s processor.

Using a compiled language has one major advantage against interpreted languages: programs written in compiled languages tend to run faster.

back to top


Relating to the point above, a compiler is the tool which needs to be used to run programs written in a compiled programming language.

Whenever you need to run a piece of code written in a compiled language, you need to use a compiler to do that for you.

A compiler simply transforms the code into machine code, which your computer can then execute without any additional applications or translation procedures – hence as an .exe file, for instance.

back to top

First-generation language

The first generation of programming languages refers to any low-level language that is basically a machine language.

In other words, a program written in a first-generation language can be directly run by a computer without using a compiler first.

back to top

Second-generation language

Second-generation languages are low-level assembly languages.

They are easier for you and me to read than pure machine language programs, but still difficult to understand and master, let alone write complex programs and manage them efficiently.

back to top

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.

back to top

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.

back to top

Fifth-generation language

Fifth-generation languages contain visual tools for developing programs with them.

One good example of them is Visual Basic.

back to top

General-purpose language

A general-purpose programming language is designed to be used for creating all sorts of different programs.

Once you learn one language of this type, you have the tools to use your skills for various different projects.

For instance, pick Python as your first programming language and you can write games, do data mining, or write complex web apps from scratch.

back to top

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.

If you’re looking for an easy programming language to learn for beginners, go for a high-level one.

back to top

Loosely typed vs strong typed language

With a loosely typed programming language, you can define and declare a variable, but you don’t need to specify its type.

The opposite to this type of a language is a strong typed language, where you need to classify the type for each of your variables.

back to top

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.

back to top

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.

back to top

Markup language

Markup languages are designed and developed to process and present text.

For example, the code you write in HTML defines the structure, content, and styling of text on your website. To specify the formatting in HTML, you use different tags inside your code, such as:


Related: Learning HTML Basics: Web Development Fundamentals

back to top

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.

back to top

Procedural language

Procedural languages follow a set of instructions or commands in order.

These sets of commands build up functions, or routines, that simply consist of individual computational steps that the program executes.

back to top


Simply put, a pseudolanguage is any programming language that first needs to be compiled into machine language in order for a computer to be able to understand it and run your program.

back to top

Programming language paradigms: Summing it all up

These are just a few of the terms I’ve been explaining to myself quite a few times now during the past months.

If you’re just starting with coding, I hope you found an answer or two to any questions you might have. You should definitely check out my Free Coding Guide for Beginners to get you started. Let me know what you think of the guide!

Especially early on, some of the jargon with all the different programming language paradigms may feel a bit overwhelming – I know how that feels!

But trust me, it gets easier with time!

Here are a few related posts you might want to read:

If you liked this post about programming language paradigms, just drop me a line in the comments below!

P.S. If you found this article helpful, I’d appreciate if you shared it with others! Thanks so much!

Happy coding!
– Mikke

Share this post with others:

About Mikke

Hi, I’m Mikke! I’m a blogger, freelance web developer, and online business nerd. Join me here on MikkeGoes.com to learn how to code for free, build a professional portfolio website, launch a tech side hustle, and make money coding. When I’m not blogging, you will find me sipping strong coffee and biking around town in Berlin. Learn how I taught myself tech skills and became a web dev entrepreneur here. And come say hi on Twitter!

Leave a reply:

0 0 votes
Article Rating
Notify of

1 Comment
Oldest Most Voted
Inline Feedbacks
View all comments
sumon sinha
26 May 2018 6:37 pm

good job. newbie here.
question: I am planning on doing a masters degree in mathematics and computing. but i
dont see how tha’s going to help me becausse the web already has almost
everything that course might offer. what do you think?

Learn to code for free - 15 coding tips for beginners – Free ebook