There is a single programming language which any computer can really understand and run: his own native binary machine code. This is the lowest level of the language in which it is possible to write a program to communicate with a computer. All other programming languages are called from highest level or lower level in proportion to how much away or closer to the binary code of the machine.
Accordingly, the lowest level language corresponds completely to machine code, so a low level language instruction results in a single machine language instruction. However, a high level language instruction usually translates into several machine-language instructions.
Low level languages have the advantage that can be written to take advantage of the peculiarities of the architecture of the central processing unit (CPU) which is the “brain” of any computer. So, a program written in a low level language can be very effective, making optimal use of the memory of the computer and processing time. However, writing a low-level program requires a considerable amount of time, as well as a very clear understanding of the inner workings of the microprocessor. Therefore, low level programming is typically used only for very small programs, or to segments of code that are very critical and must operate as efficiently as possible.
High level languages allow a development much more quickly of large programs. The final program executed by the computer is not as efficient, but the advantages of saving in time of the programmer usually outweigh the disadvantages of the inefficiencies of the program. This is because the cost of writing a program is nearly constant for each line of code, regardless of the language used. Thus, a high-level language where every line of code is equivalent to 10 machine-language instructions, slope only tenth part of what it would cost to set the 10 lines of code in machine language.
The first high-level programming languages were designed for specific kinds of tasks. Modern languages are most for general use. In any case, each language has its own characteristics, vocabulary and syntax. The most important are the following:
It was one of the first programming languages. FORTRAN (FORmula TRANslator acronym) was designed to handle mathematical operations, originally on mainframe computers. Although it was very efficient in mathematical calculations, FORTRAN was unable to handle any text and could hardly place titles and identifiers in their printed outputs.
Its name is an acronym for COmmon Business Oriented Language. COBOL in its conception, is almost the opposite of FORTRAN. COBOL was designed to facilitate output written text-heavy in business data processing applications and using English to their output reports. It was conceived to handle textual data of business and its math abilities are restricted to little more than operations with money and percentages.
It owes its name to Blaise Pascal, philosopher and physicist French, and one of the fathers of the automation of the calculation. PASCAL was designed specifically as a teaching language. The purpose was to help the student to properly learn the techniques and requirements of structured programming. It was originally designed to be used on any platform. I.e., a PASCAL program could be compiled on any computer, and the result would run correctly on any other computer, even with a different or incompatible microprocessor type. The result was a language relatively slow, but work and fulfilled its mission while it was fashionable.
Its name is the acronym for Beginner’s all-purpose Symbolic Instruction Code (all-purpose symbolic instruction code) and was the first interpreter language designed for general use. It was the programming language most used and today evolved as Visual Basic to work under Windows environment.
It is a compiler and interpreter that was originally developed for the management of operations in real time and also allowing the user control it and make changes quickly. The name FORTH originated the concept of 4th generation language and had the restriction of only allowing file names of up to 5 characters.
Originated as A so-called experimental language that was then improved, corrected and expanded and was called B. This language at the same time was improved, updated, refined and eventually was called C. The C language has proved to be very versatile and surprisingly powerful. It is a very simple language and is nevertheless able to make large-scale developments. The operating system Unix, which has been adapted to a wide range of platforms and has continued to gain popularity, is written in language C.
When the concept of objects and object-oriented programming development, C language standard had no internal structure to handle it. However, C was, and still is, very helpful so it has remained in use. Further development but a kind of extended C language that was originally called “C and somewhat” or C-plus (C +). Subsequently further they developed the concepts of Object Oriented Programing and C +, C ++ evolved in.
The constant search for a platform-independent language, gender the emergence of Java. This is the most recent language designed with that objective. Any computer with a Java runtime environment, can run a program written in this language, which makes it, so far, the Universal language par excellence.
One of the most useful aspects of Java is that web browsers are now designed to be able to incorporate small Java applications, or “applets” in Web pages. Other Java programs, called “servlets” run on Web servers. This allows additional communications between the page and the server and provides a high degree of interactivity and dynamic page generation.
The disadvantage of using the applets in this way is that they inherently run much more slowly than the programs developed in the computer.
The Practical Extraction and Report Language, Perl, is very similar to the C language in many ways. However, it has a number of features that make it useful for a wide range of applications. The most popular use is Perl CGI programming (Computer Generated Imagery) or Generation Computer Imaging for Web application development. For example, generally, when you fill out and send a form via the Internet, most likely that this program written in Perl.
However, that is not the only use of PERL, because it is also an excellent programming language which allows the rapid development in a wide range of platforms.
The acronym stands for Hypertext Markup Language, made reference to the “markup language” for the preparation of Web pages. It is a standard that serves as a reference of the software that connects with the development of web pages in its different versions, defines a basic structure and one code (called HTML code) for the definition of the content of a web page, such as text, images, videos, games, among others.
There are also another large number of programming languages for application specific and of which only make mention, such as PHP, LISP, ADA, RUBY, Python and HASKELL.
Turning the machine languages on high level language.
Programming Languages we saw above, they are all considered High-Level Languages, and as we mentioned, Computers, as electrical equipment at end, only understand the basic language, the lowest level of zeros and ones, as representation of the passage or not the electric current by its millions of circuits.
To convert the low level languages to high-level languages, there are tools to specific programming that they do the job. Let’s talk about them.
Assembly language is not more than a symbolic representation of machine code, which also allows the symbolic designation of memory locations. Therefore, an instruction to add the contents of a memory location to an internal record of the CPU, called accumulator, might add a number instead of a string of binary digits (bits).
No matter how close this language to machine code assembler, the Computer still can not understand it. The Assembly language program must be translated into machine code by a program called assembler. The assembler program recognizes the strings that make up the symbolic names of the various operations of the machine and replaced the machine code required for each instruction.
At the same time, also calculates the desired direction, in memory, each symbolic name of this location, and replaces the addresses with the names. The end result is a program of machine-language that can operate by itself at any time.
When you reach that point, the Assembly and the Assembly language program are no longer necessary. To help distinguish between “before” and “after” versions of the program, the original assembly language program is also known as the source code, while the final machine-language program is designated the object code.
If a program of language assembler needs to be changed or corrected, it is necessary to make changes to the code source and reassemble it to create a program object.
Compiler language equivalent to the high level of Assembly language. Each instruction in the compiler language can correspond to many machine-language instructions. Once the program has been written, translates to a program called compiler equivalent machine code. Once the program is compiled, the resulting machine code is stored separately and can be run by itself at any time.
As is the case with Assembly language programs, update or correction of a compiled program requires that the original program or source, is modified appropriately and then compiled to form a new object or machine language program.
In general, the compiled machine code is less efficient than the produced code when using assembly language. This means that it works a bit slower and uses more memory than required for mounting the assembler program. To compensate this drawback we have the fact that it takes much less time to develop a program of compiler language, that required for an assembly language program.
Interpreter language, like a compiler language, is considered high level. However, it works completely differently to the of these. Interpreter program resides in memory and run the program of high level without previously making the translation to machine code.
Using an interpreter program to directly run the user program has advantages and disadvantages. The main advantage is that you can run program to test its performance, make some changes and run again in a direct way. I.e., there is no need to recompile because there is never any new machine code. This greatly accelerates the development and testing process.
As a disadvantage, we have that this provision requires that both the interpreter and the users program reside in memory at the same time. In addition, since the interpreter has to only scan one line of the program of the user at the same time, and also run internal parts of itself in response, an interpreted program execution is much slower than a compiled program.