Un lenguaje de programación (en inglés, programming language) es un lenguaje formal que las personas usan para dar instrucciones a un ordenador. Está formado por un vocabulario de palabras y símbolos y por unas reglas estrictas que dicen cómo se combinan, su sintaxis (syntax), y qué significa cada combinación, su semántica (semantics). A diferencia de una lengua natural, no admite ambigüedad: cada instrucción válida tiene un único significado, porque la máquina que la ejecuta no puede interpretar lo que el programador quería decir. Un texto escrito en un lenguaje de programación es el código fuente (source code) de un programa informático.
El procesador solo entiende su propio lenguaje máquina (machine language), una serie de números que codifican operaciones muy elementales, como sumar dos registros o saltar a otra instrucción. Los primeros programas se escribían así, y poco después en lenguaje ensamblador (assembly language), que da nombres cortos a esas mismas operaciones. Se habla de lenguajes de bajo nivel (low-level languages) para estos, próximos a la máquina, y de lenguajes de alto nivel (high-level languages) para los que permiten escribir en términos próximos al problema, como «repetir para cada cliente» o «calcular la media», y que un compilador o un intérprete traducen después a lenguaje máquina.
El primer lenguaje de alto nivel de uso extendido fue FORTRAN, de IBM, en 1957, pensado para el cálculo científico. Le siguieron LISP, en 1958, orientado a la inteligencia artificial, y COBOL, en 1959, para la gestión de empresas, en cuyo diseño influyeron las ideas de Grace Hopper y que todavía mueve muchos sistemas bancarios. C, creado por Dennis Ritchie hacia 1972 para escribir el sistema Unix, sigue siendo la base de casi todos los sistemas operativos. Python, que Guido van Rossum publicó en 1991, es hoy uno de los más usados, sobre todo en ciencia de datos, y JavaScript, que Brendan Eich diseñó en diez días en 1995, es el lenguaje de las páginas web. Se han creado miles de lenguajes, y el primer programa que se suele escribir al aprender cualquiera de ellos, el que muestra en pantalla «Hola, mundo», se popularizó en 1978 con el manual de C de Brian Kernighan y Dennis Ritchie.
Los lenguajes se agrupan también por su paradigma (paradigm), la manera de organizar los programas que favorecen. En la programación imperativa (imperative), el programa es una secuencia de órdenes que cambian el estado de la máquina; la programación orientada a objetos organiza esas órdenes alrededor de objetos que reúnen datos y operaciones; la funcional (functional), heredera de LISP, construye los programas combinando funciones, a menudo mediante la recursividad; y la declarativa (declarative), como la del lenguaje de consultas SQL de las bases de datos relacionales, describe qué resultado se quiere y deja que el sistema decida cómo obtenerlo. Casi todos los lenguajes actuales combinan varios paradigmas. Y todos los de uso general tienen la misma potencia teórica, la de la máquina de Turing: lo que se puede programar en uno se puede programar en cualquier otro, aunque no con la misma comodidad.
Capa de abstracción – Mapeo objeto-relacional – El software libre – Editor (informática)