Programar es diseñar algoritmos y expresarlos como programas escritos en un lenguaje de programación para poder ejecutarlos en un ordenador.
Algoritmo → Secuencia de pasos orientada a la consecución de un objetivo.
Los algoritmos se caracterizan por:
- Tener datos de entrada y datos de salida (resultados).
- Tener todos sus pasos definidos con exactitud, sin ambigüedad.
- Tener un número finito de pasos. Cada uno de estos pasos se podrá ejecutar en un tiempo finito, aunque el resultado global pueda durar indefinidamente.
- Ser eficientes, es decir, alcanzar su objetivo lo más rápidamente posible y empleando el mínimo número de recursos. En particular, una cantidad mínima de memoria.
Programa → Secuencia de instrucciones que se envían a la CPU de un ordenador para que realice una serie de tareas con un propósito definido (es decir, para que lleve a cabo un algoritmo).
Se llama instrucción a cada acción simple que puede desarrollar la CPU de un ordenador.
Lenguaje de programación → Los programas se escriben siguiendo unas reglas sintácticas determinadas, de manera similar a cualquier idioma. El conjunto de esas reglas determinan lo que se conoce como lenguaje de programación.
Los lenguajes de programación se clasifican en:
- Lenguajes de bajo nivel: sus instrucciones controlan directamente el hardware del equipo, por lo que dependen de éste. Escribir programas en este tipo de lenguajes es bastante complicado, debiendo conocerse en detalle las características técnicas de cada ordenador. Entre los lenguajes de bajo nivel encontramos el lenguaje máquina o los ensambladores.
- Lenguajes de alto nivel: los programas se escriben de una manera más fácilmente comprensible por un ser humano. Después, para poder ser ejecutados en un ordenador, es necesario convertirlos a lenguaje máquina. Según como se haga esta conversión, encontramos dos tipos:
- Compilados: El programa se pasa por un compilador que se encarga de generar un fichero ejecutable, es decir, convertido a un lenguaje máquina que entienda la CPU. Consiguen programas compactos y rápidos, pero son más complejos a la hora de programar y deben ser compilados para cada sistema operativo. Ejemplo de lenguajes compilados son C o Visual Basic.
- Interpretados: Necesitan un intérprete en el ordenador para traducirlos a lenguaje máquina cada vez que se ejecutan. Se ejecutan con mayor lentitud, pero suelen ser más sencillos de programar, además de que el programa funciona en cualquier ordenador que tenga un intérprete. Ejemplos de lenguajes interpretados son Java o Python.