Types of programming languages

Learn about various classifications of programming languages. He especially understands the two most important types of languages; low-level and high-level languages. We will also see something about the evolution of languages.

After getting to know some of them, in this article we are going to continue providing some more theoretical knowledge to get started in programming, making an analysis of the types of programming languages ​​that we can find in the industry.

Different classifications of programming languages

We can find various classifications of programming languages, as many as we can imagine, taking into account the various characteristics that they may have. For example, we can classify languages ​​according to:

  • If they are high or low level
  • The programming paradigm or style they have
  • The objective or scope of the programs that we are going to develop
  • If they are open source or if they are proprietary

Of course, if we are starting to program, we are not interested in stopping to explain all of them, because surely we are looking forward to starting to see code, but we do have to clarify at least one of them, such as high and low level languages.

Binary code

The computer, deep down, only understands a language known as binary code or machine code, consisting of zeros and ones. Namely, just use 0 and 1 to code any action.

This is something totally amazing if you think about it!! Any program of our day to day, from one so simple that it only calculates the sum of two numbers, to one as complex as the browser you are using to access this content, works on the computer using only zeros and ones.

Of course, no programmer uses binary code to express a program. There are actually a whole number of layers of software and hardware to get that, when we have to express programs, we don’t have to think about the complexity of coding in such a complex way.

Low and high level languages

Of course, programmers appreciate writing code that we can easily understand. If this were not the case, as soon as an application began to get complicated, it would be impossible to develop. Modern programming languages ​​have reached a level where programs can be structured into many small and easy-to-understand pieces, so that we can make our applications easy and, above all, highly maintainable.

See also  Component decorator in Angular 2

So, here we find the classification of languages ​​that we think is most important to understand when we are starting out, the low and high level: The languages ​​closest to the hardware architecture are called low-level languages. and those who are closest to programmers and users are called high-level languages.

low level languages

Low-level languages ​​are totally machine-dependent, that is, they depend directly on the hardware where they are going to run. For this reason, the programs that are made with this type of language cannot be migrated or used in other machines, with other types of processors.

Being practically custom-designed for the hardware, they take full advantage of its features. They are extremely fast, although the operations that we can ask of them are also extremely simple.

Within this group are:

  • machine language: this language orders the machine the fundamental operations for its operation. It consists of the combination of 0’s and 1’s, to form the orders understandable by the hardware of the machine. This language is much faster than high level languages. The downside is that they are tremendously difficult to handle and use, as well as having huge source codes, where finding a bug is merely impossible.
  • assembly language: is a derivative of machine language and is made up of abbreviations for letters and numbers called mnemonics. With the appearance of this type of language, translator programs were created to be able to transfer programs written in assembly language to machine language. An advantage over machine code is that the source codes were shorter and the programs created took up less memory. The disadvantages of this language remain practically the same as those of machine language, since they are still quite difficult to handle and allow only very basic operations to be expressed, such as accessing a memory location, changing a bit, setting everything to zero, etc. .. Nobody currently programs with assembly language since there is great difficulty in learning that language and programs cannot grow much because they are difficult to test and maintain.

high level languages

are those who are found closer to natural language of people than to machine language. They are aimed at solving problems through the use of EDD’s.

See also  Libraries of Free Illustrations

EDD’s are the abbreviations for Dynamic Data Structures, something widely used in all programming languages. They are structures that can change size during the execution of the program. They allow us to create data structures that adapt to the real needs of a program.

It’s all about languages independent of computer architecture and your hardware. So, in principle, a program written in a high-level language can be migrated from one machine to another without any problem. Depending on the language, there may be one or the other limitations, but as long as there is an interpreter or compiler for that language in the place where you want to run it, it will work.

These languages ​​allow the programmer completely forget about the inner workings of the machine/s for which they are designing the program. They only need a translator that manages to transform the high-level language source code into a code close to the characteristics of the machine. This translator is what we usually call Compiler.

High-level languages ​​often use type of data for programming that are sets of values ​​admissible for storage in memory locations. We will talk about these types of data later.

Of course, high-level languages ​​are the ones in use today, and there are a wide variety of them. In fact tens or hundreds of languages, with new ones appearing every year. They also have their own classifications, for example there are general-purpose languages ​​(through which we can develop any type of application) and specific-purpose languages ​​(which serve us mainly for a specific purpose, such as FORTRAN for scientific work).

Medium level languages

The truth is that not everyone considers “medium level” as an accepted term. It should be clear that the classification is high and low level, but you may have heard of them or will hear about them.

These languages ​​are somewhere in the middle between the two previous ones. Within these languages ​​C could be located since it can directly access the memory registers and other hardware devices of the system: manipulate memory addresses, access the ports of a printer, etc. Direct access to these memory locations is one of the characteristics of low-level languages, but medium-level languages, at the same time, allow instructions to be expressed in a way that is understandable to humans, something that has to do with high level languages.

See also  free fonts or fonts

We honestly prefer to say that every mid-level language is actually a high-level language. The low level ones are much more complex. It is true that most of the current high-level languages ​​do not allow direct access to the hardware, manipulating for example memory locations, something that is very dangerous in practice, but, from the moment in which constructions can be made with understandable code by humans, we are already talking about high-level languages.

Medium-level programming languages, such as C, are those used, for example, to build device drivers, such as printer drivers, graphics cards, etc.

Generations of programming languages

In the evolution of programming languages, we have seen how various languages ​​have appeared with more refined and sophisticated characteristics. These generations could also be used to classify programming languages. We currently find 5 stages or generations.

  • First generation: machine language.
  • Second generation: the first assembly languages ​​were created.
  • Third generation: the first high-level languages ​​are created. Eg C, Pascal, Cobol…
  • Fourth generation. They are the languages ​​capable of generating code by themselves, they are called RAD, with which applications can be made without being an expert in the language. Object-oriented languages ​​are also found here, making it possible to reuse parts of the code for other programs. Eg Visual, Natural Adobes…
  • Fifth generation: here are the languages ​​oriented to artificial intelligence. These languages ​​are still underdeveloped. eg LISP

conclusion

Now you have a little more knowledge about programming languages ​​and how they have evolved throughout the short but intense history of computing.

You don’t have to worry too much about having to use compiled and near-machine languages, because hardly anyone uses languages ​​like assembler. They are simply explained practically at the level of curiosity in the university, in the subjects that explain the operation of processors (CPU). Of course, we are going to learn to program using high-level languages ​​that are easy to understand and use.

In the next article we are going to make a , one of the most recommended languages ​​to learn to program. This will allow us to start to see some simple code, and then in subsequent articles we will return to theory to study the .

Loading Facebook Comments ...
Loading Disqus Comments ...