Tipos de lenguajes de programación
Los lenguajes de programación han evolucionado a lo largo del tiempo para aumentar su rendimiento y facilitar el trabajo a los programadores. Cada vez más existen lenguajes de programación que son más «user friendly» y más fáciles de programar.
Muchas veces el que se programe más rápido y los programas sean más sencillos de realizar provoca que los mismos sean más lentos y que ocupen más espacio.
Veamos las características de los Lenguajes de Programación existentes en la actualidad:
• Lenguaje máquina.
– Sus instrucciones son complejas e ininteligibles. Se componen de combinaciones de unos y ceros.
– No necesita ser traducido por lo tanto es el único lenguaje que entiende directamente el ordenador.
– Fue el primer lenguaje utilizado. Los expertos en su momento debían tener un dominio profundo del hardware para poder entender así este lenguaje de programación.
– Difiere para cada procesador. Las instrucciones no son portables de un equipo a otro.
– Salvo excepciones hoy día nadie programa en este lenguaje.
• Lenguaje de medio nivel o ensamblador:
– Dada la dificultad y poca portabilidad del lenguaje máquina, el ensamblador lo sustituyó para facilitar la labor de programación.
– Sigue estando cercano al hardware pero en lugar de unos y ceros se programa usando mnemotécnicos. Los mnemotécnicos son instrucciones más inteligibles por el programador que permiten comprender de una forma más sencilla qué hace el programa.
– Este lenguaje necesita compilarse, traducirse al lenguaje máquina para poder ejecutarse.
– Se trabaja con los registros del procesador y direcciones físicas. En lenguajes de nivel más alto ya se utilizan variables y estructuras más sofisticadas.
– Es difícil de comprender y programar.
– Dada la dificultad y poca portabilidad del lenguaje máquina, el ensamblador lo sustituyó para facilitar la labor de programación.
• Lenguajes de alto nivel:
– La mayoría de los lenguajes de programación actuales pertenecen a esta categoría.
– Tienen una forma de programar más intuitiva y sencilla.
– Más cercano al lenguaje humano que al lenguaje máquina. (por ejemplo: WHILE var DO….DONE).
– Suelen tener librerías y funciones predeterminadas que solucionan algunos de los problemas que se le suelen presentar al programador.
– En ocasiones ofrecen frameworks para una programación más eficiente y rápida.
– Suelen trabajar con mucha abstracción y orientación a objetos. De esa manera es más fácil la reutilización y el encapsulamiento de componentes.
Dependiendo de la forma de en la que son ejecutados se puede hacer otra clasificación:
• Lenguajes compilados.
Necesitan de un programa traductor (compilador) para convertir el código fuente en código máquina. Este tipo de programas se ejecutan de forma más rápida que los interpretados o los virtuales. Además del compilador, existe un programa llamado enlazador o linker que permite unir el código objeto del programa con el código objeto de las librerías.
• Lenguajes interpretados.
No se genera código objeto. El intérprete es un programa que tiene que estar cargado en memoria y se encarga de leer cada una de las instrucciones, interpretarlas y luego ejecutarlas. Las instrucciones se traducen «on the fly» y solamente se traducen las instrucciones que se van ejecutando en vez de interpretar todo el programa.
• Lenguajes virtuales.
Son lenguajes más portables que los lenguajes compilados puesto que el código que se genera tras la compilación es un código intermedio o bytecode. Este código puede ser a su vez interpretado por una máquina virtual instalada en cualquier equipo. Tienen una ejecución lenta pero su versatilidad de poder ejecutarse en cualquier entorno los hace muy apreciados.