Los lenguajes de programación han evolucionado paralelamente en dos campos: el manejo de datos y el manejo de instrucciones.
Abstracción operacional:
Se ha ido progresando hacia estructuras más complejas, que permiten tratar operaciones haciendo uso del lenguaje natural, alejandose de la implementación del hardware.
- Codificación de instrucciones simbólicas
- Macros
- Subrutinas
- Funciones
- Anidamiento
- Subprogramas
- Encapsulamiento
- Ocultación de información
- Métodos
- Mensajes
Abstracción de datos:
A medida que ha aumentado la complejidad de los programas se ha hecho uso de estructuras de datos más elaboradas, que separan los datos de su implementación física en el hardware.
- Direcciones de memoria
- Datos con acceso total
- Simbolos
- Tipos
- Operaciones restringidas
- Registros
- Tipos definidos
- Gestión dinámica de memoria
- Tipos abstractos de datos
- Objetos