Un lenguaje de programación es el idioma en el que nos comunicamos con el ordenador (por ejemplo, C, Fortran, Java, Python, Matlab, Octave,...). Idealmente, el lenguaje es:
Sencillo, es decir, muy fácil de aprender
Conciso, esto es, permite expresar las instrucciones de forma compacta.
Expresivo, es decir, suficientemente rico desde el punto de vista sintáctico.
¿Por qué crees que hay cientos de lenguajes de programación distintos?
Se llama programa a una secuencia de instrucciones con las siguientes propiedades:
Las instrucciones no pueden ser ambiguas, porque los ordenadores actuales son deterministas y, por construcción, progresan entre estados únicos.
El programa debe tener una extensión finita para que pueda ser interpretado en un tiempo limitado.
La ejecución de las instrucciones debe concluir siempre.
En cambio, no es necesario que sea correcto (o exacto).
¿Qué es un algoritmo?
La única diferencia entre un algoritmo y un programa es que el primero es una secuencia de instrucciones genérica (en un lenguaje natural, por ejemplo, inglés) mientras que el segundo es la expresión del algoritmo en un lenguaje de programación particular. Por ejemplo:
El algoritmo de Euclides para el máximo divisor común de a y b
Si b es uno entonces la respuesta es a.
En caso contrario, calcúlese el m.d.c. de b y el resto del cociente entre a y b.
El algoritmo de Euclides programado en Python
def gcd(a, b) :
if b == 1 :
r = a
else :
r = gcd(b, a % b)
return r
Observa la diferencia entre asignación y comparación: la primera se representa con un igual (=) mientras que la segunda con dos (==).