Programming languages are communication systems which allow programmers giving specific instructions to machines and computers, so that they can perform the actions that are necessary to achieve certain goals. Through programming languages, programmers can communicate with machines using their language (programming), through which they can write instructions in the form of algorithms and tell computer systems what they want them to do.

A few weeks ago we talked about the most popular programming languages today and we noticed that some of these languages were even an evolution of others that had been created before, so they were very similar to each other. On the other hand, this year we have also talked about the basics that can be found in most languages, whether or not they are very similar. So, since there are so many different programming languages, today we want to explain how to classify them following different classification criteria.

Classification by level

One way to classify languages is considering their level of abstraction, that is, whether they are more or less similar to the way machines communicate. We can divide them into three groups:

  • Machine language: it is the language that machines can understand directly, as it uses only zeros and ones (binary).
  • Low-level languages: they are languages which are very close to the way machines communicate, but do not reach binary. The disadvantage of these languages is that they are specific to each machine. Within this group, the most characteristic language is the assembly language.
  • High-level languages: they are languages that are closer to the way people communicate. They are portable and make the process of writing, reading and modifying programs much easier. Python and C++ are two examples of high-level languages.

Classification by paradigm

Another way to classify them is according to programming paradigms, which determine different ways of structuring and ordering the actions that a program must perform. In this case, we can divide them into two types:

  • Imperative languages: in this type of language, programmers specify the sequence of operations that the program must perform to solve the problem. PHP, Java or Python are some examples of imperative languages.
  • Declarative languages: in this case, programmer specify a desired result and the language is responsible for getting what it takes to achieve it. Prolog, Lisp and Haskell are declarative languages.

Classification by compilation

Third, we can also classify them according to their compilation, which is the process of translating programs so that machines can understand them. There are two types of languages according to this criteria:

  • Interpreted languages: they act a bit like a human interpreter when doing simultaneous translation of a speaker who is talking in another language. The program is translated at runtime, that is, at the same time as it is used – the interpreter reads a line, translates it and executes it. JavaScript and PHP are examples of interpreted languages.
  • Compiled languages: they function as a human translator who takes a complete work and translates it in its entirety. Instead of doing it line by line, the program is completely translated into a language close to the machine language before running it, thus generating an object file. The object program is used at run time. Java and C++ are two examples of compiled languages.

Classification by purpose

Finally, the is also a classification according to the purpose of each language. In this case, we divide them into the following groups:

  • General-purpose languages: they are languages that have been designed to solve multiple problems. Java and Python are general-purpose languages.
  • Domain-specific languages: they are languages which have been created for a specific thing and it doesn’t make sense to use them outside their scope. SQL is a specific language.

Codelearn helps students to learn as many programming languages as possible, which is why the school has designed a detailed study plan that follows a logical order when it comes to learning different languages and technologies. Focusing on a single language would not make sense since technology is progressing faster and faster, and we don’t know what programming languages today’s children will need in the future.

The most popular languages today may be completely obsolete in a few years, but if we get our children to learn the basics of programming and understand most languages, they will be able to find similarities between languages and learn new ones in the future easily. Contact us to learn more about the Codelearn method and join the adventure of programming.