Clasificación de los lenguajes de programación¶
Existen muchísimos lenguajes de programación, cada uno con características y objetivos diferentes.
Para comprenderlos mejor, los clasificamos siguiendo 5 criterios principales:
- Nivel de abstracción
- Forma de ejecución
- Paradigma de programación
- Tipificación de datos
- Propósito
Clasificación por niveles de abstracción¶
El nivel de abstracción mide cuánto se aleja un lenguaje del código máquina.
Cuanto más alto es el nivel, más cercano está al lenguaje humano.
-
Lenguajes de bajo nivel
- 1ª generación (1GL): código máquina (0 y 1).
- Muy difícil de programar.
- Ejemplo:
EB11
en x86 (salto en el programa).
- 1ª generación (1GL): código máquina (0 y 1).
-
Lenguajes de medio nivel
- 2ª generación (2GL): ensamblador.
- Cada instrucción en ensamblador corresponde a una o varias en código máquina.
- Usado para programación de kernels, microcontroladores o videojuegos antiguos.
- Ejemplo:
MOV EAX, 5
(asigna 5 al registro EAX).
- 2ª generación (2GL): ensamblador.
-
Lenguajes de alto nivel
- 3ª generación (3GL): lenguajes imperativos y orientados a objetos.
- Más cercanos al lenguaje humano.
- Ejemplos: C, C++, Python, Java, PHP.
- Ejemplo:
IF contador = 10 THEN STOP
- 4ª generación (4GL): especializados en tareas concretas.
- Ejemplos: SQL, MATLAB, PL/SQL. - 5ª generación (5GL): lenguajes naturales, usados en IA.
- Ejemplo: Prolog, sistemas de inteligencia artificial.
- 3ª generación (3GL): lenguajes imperativos y orientados a objetos.
Clasificación por forma de ejecución¶
-
Lenguajes compilados
- El compilador traduce el programa completo a código máquina antes de ejecutarlo.
- Ejemplo: C, C++.
-
Lenguajes interpretados
- El intérprete traduce y ejecuta las instrucciones en tiempo real.
- Ejemplo: Python, JavaScript.
-
Lenguajes virtuales
- El compilador genera un bytecode (código intermedio).
- Este bytecode lo ejecuta una máquina virtual.
- Ventaja: multiplataforma.
- Ejemplo: Java (con la JVM), C#.
Clasificación por paradigma de programación¶
Un paradigma es un estilo de programación. Un mismo lenguaje puede usar varios paradigmas.
-
Lenguajes imperativos
- El programador indica paso a paso lo que debe hacer el ordenador.
-
Se basan en variables y operaciones.
-
Estructurados (usan secuencia, selección y repetición).
- Ejemplo: C, Pascal.
- No estructurados (carecen de estas estructuras).
- Ejemplo: BASIC, Fortran.
-
Lenguajes declarativos
- Se indica qué hacer, no cómo hacerlo.
- Ejemplo: SQL (
SELECT * FROM articulos WHERE precio > 5
), Prolog.
-
Lenguajes procedimentales
- Dividen el programa en funciones y procedimientos.
- Facilitan la reutilización de código.
-
Lenguajes orientados a objetos (OOP)
- Se basan en clases y objetos con atributos y métodos.
- Ejemplo: Java, Python, Ruby, C++.
- Principios:
- Abstracción → el objeto representa algo del mundo real.
- Encapsulamiento → oculta detalles internos, solo muestra lo necesario.
- Herencia → un objeto puede heredar atributos y métodos de otro.
- Polimorfismo → un mismo método puede comportarse de distintas formas según el objeto.
-
Lenguajes lógicos o de IA
- Usan reglas lógicas para resolver problemas.
- Ejemplo: Prolog.
Clasificación según la tipificación de los datos¶
-
Lenguajes fuertemente tipificados
- Las variables deben declarar su tipo.
- Operaciones entre tipos distintos no están permitidas (requieren conversión).
- Ejemplos: C, C++, Java.
-
Lenguajes débilmente tipificados
- No es necesario declarar tipos.
- El compilador hace conversiones automáticamente.
- Ejemplo: PHP, Perl.
Clasificación según propósito¶
-
Lenguajes de propósito general
- Se usan en muchos tipos de aplicaciones.
- Ejemplos: Java, C, Python, PHP.
-
Lenguajes de propósito específico
- Están diseñados para un uso concreto.
- Ejemplos:
- Gráficos: Graphviz.
- Procesamiento de texto: LaTeX.
- Bases de datos: SQL.
- Web: PHP, Coldfusion.
Actividad¶
-
AC 102 (RA 1/ CE1e / IC1 / 1p) Escoge 5 lenguajes de programación, y realiza una tabla en la que se vea:
- a. Clasificaciones
- b. Características
- c. Ventajas
- d. Principales usos
Finaliza el documento con una reflexión sobre los lenguajes que has escogido