Saltar al contenido

Lenguajes de programación. Evolución y clasificación.

Anteriormente, en este enlace, ya definimos que son los lenguajes de programación de una forma resumida. Sin embargo, una definición más concreta de un lenguaje de programación sería la siguiente.

Un lenguaje de programación es el idioma en el que un programador se comunica con los dispositivos de hardware y software de un ordenador.

Como cualquier otro idioma como el español o el ingles, los lenguajes de programación constan de los siguientes elementos.

  • Un alfabeto o vocabulario que es el conjunto de símbolos permitidos.
  • Unas reglas de sintaxis, que son las reglas para realizar correctamente construcciones como los símbolos.
  • Las reglas semánticas que determinan el significado de la construcción del lenguaje.

Clasificación de los lenguajes de programación.

Para clasificar los lenguajes de programación, se puede seguir hasta 11 criterios válidos. Sin embargo, los clasificaremos según tres criterios fundamentales.

Según su nivel de abstracción.

El nivel de abstracción, es el modo en el que los lenguajes de programación se alejan del código máquina y se acercan cada vez más al lenguaje que utilizamos hoy en día. Dentro de este grupo podemos encontrar los siguientes lenguajes.

De bajo nivel:

El único lenguaje de bajo nivel que existe es el que llamamos lenguaje máquina. Este lenguaje pertenece a los lenguajes de primera generación. Utiliza un sistema binario de ceros y unos para elaborar instrucciones que luego procesa el PC o computadora.

Lenguajes de medio nivel.

Estos lenguajes pertenecen a la segunda generación de lenguajes de programación. Cualquier programa escrito en este lenguaje tiene que ser traducido al lenguaje máquina mediante un proceso de compilación para poder ejecutarse. Se utilizan nombres mnemotécnicos, y las instrucciones trabajan directamente con registros de memoria física.

Aunque muchas veces se clasifican como lenguajes de alto nivel, permiten usar características de los lenguajes de programación de alto nivel. Además se suelen utilizar para la creación de sistemas operativos.

De alto nivel.

La gran mayoría de los lenguajes de programación que se utilizan hoy en día pertenecen a este nivel de abstracción.

Dentro de los lenguajes de programación de alto nivel, encontramos los lenguajes de tercera, cuarta y quinta generación.

  • Tercera generación. Son lenguajes de propósito general. Estos lenguajes tienen un alto nivel de abstracción, ya que la forma de programar es mucho más entendible e intuitiva, ya que se parece al lenguaje humano.
  • Cuarta generación. Son los lenguajes creados para un propósito específico. Por ello, permite reducir las líneas de código que para resolver un problema concreto respecto a los lenguajes de tercera generación.
  • Quinta generación. Este tipo de lenguajes los podemos encontrar frecuentemente en inteligencia artificial. Pretenden abstraer el lenguaje utilizado más aún que los lenguajes de cuarta generación.

Las características de un lenguaje de alto nivel son las siguientes.

  • Es totalmente independiente del ordenador.
  • Es muy utilizado en informática y con gran variedad de instrucciones.
  • Se puede modificar y actualizar fácilmente.
  • Para traducirlo necesitamos un compilador y un enlazador con librerías del propio lenguaje.

Lenguajes de programación según su forma de ejecución.

Compilados.

Cuando programamos en lenguajes de programación de alto nivel, se deben traducir las instrucciones escritas en lenguaje máquina. Para ello utilizamos lo que se denomina un compilador.

Interpretados.

Este tipo de lenguajes ejecutan las instrucciones directamente, sin que se genere código objeto. Para ello es necesario un programa intérprete en el sistema operativo o en la propia máquina donde cada instrucción es
interpretada y ejecutada de manera independiente y secuencial.

La principal diferencia con los lenguajes compilados, es que se traducen a tiempo real solo las instrucciones que se utilicen en cada ejecución.

Virtuales.

Los lenguajes virtuales tienen un funcionamiento muy similar al de los lenguajes compilados. Sin embargo, la diferencia con los lenguajes compilados, es que el compilador genera un archivo de bytecodes
que puede ser interpretado por cualquier ordenador que tenga instalada la máquina virtual. Estos lenguajes de programación pueden ser multiplataforma.

Según su paradigma de programación.

Imperativos.

Consisten en una serie de sentencias que establecen cómo debe manipularse la información digital presente en cada memoria. También puede indicar cómo se debe enviar o recibir la información en los dispositivos.

Dentro de esta categoría podemos incluir la programación estructurada, la programación modular o la programación orientada a objetos. Casi todos los lenguajes de desarrollo de software comercial son imperativos.

Declarativos.

Especifica o declara un conjunto de premisas y condiciones para indicar qué es lo que hay que hacer y no necesariamente cómo hay que hacerlo.

Procedimentales.

El programa se divide en partes más pequeñas, llamadas funciones y procedimientos que pueden comunicarse entre sí. Permite reutilizar código ya programado y solventa el problema de la programación spaghetti.

Lenguajes de programación orientados a objetos.

Encapsula el estado y las operaciones, creando una estructura
de clases y objetos que emula un modelo del mundo real. Permite la herencia entre clases y objetos.

Funcionales.

Evalúa el problema realizando funciones de manera recursiva.

Lógicos.

Define un conjunto de reglas lógicas para ser interpretadas mediante sentencias lógicas. Además, permite responder preguntas planteadas al sistema para resolver problemas.

Evolución de los lenguajes de programación.

En la actualidad hay gran cantidad de lenguajes de programación. Vamos a ver algunos de los lenguajes más importantes desde la década de los 50 hasta nuestros días.

LENGUAJES MÁS UTILIZADOS

Lenguajes entre 1950 y 1970.

  • Algol y BASIC derivados de Fortran creado en 1957.
  • Pascal, Modula 2, Simula, derivados de Algol en 1958.
  • Clojure y Sheme derivados de LISP creado en 1958.
  • COBOL en 1959.
  • Smalltalk y C++ derivados de Simula se extienden desde 1962 a 1967.
  • CPL creado en 1963 y del cual derivan otros lenguajes como C, C++, Java, C#, ObjetiveC.
  • 1970: Pascal.
  • 1972: Lenguaje C y Prolog.
  • 1973: ML
  • 1975: Sheme.
  • 1978: SQL.
  • 1980: C++.
  • 1984: MATLAB.
  • 1985: Eifel.
  • 1986: Erlang
  • 1987: Perl.
  • 1990: Haskell.
  • 1991: Python.
  • 1993: Ruby.
  • 1994: CLOS.
  • 1995: Java.
  • 1996: JavaSccript.

A partir del año 2000 y en la actualidad se siguen creando lenguajes de programación como:

  • 2000: C#.
  • 2002: F#
  • 2003: Groovy, Scala.
  • 2007: Clojure.
  • 2011: Dart.
  • 2014: Swift.