Diferencia entre revisiones de «Programación»

De MateWiki
Saltar a: navegación, buscar
(Cómo se escribe un programa)
Línea 32: Línea 32:
  
 
Un '''intérprete''' es un programa que lee el código fuente escrito en un lenguaje de alto nivel, y lo ejecuta línea a línea, directamente. Es decir, no genera ningún programa nuevo escrito en lenguaje máquina. Por este motivo, es necesario usar el intérprete cada vez que queramos ejecutar el programa de alto nivel. A pesar de esta desventaja respecto a los compiladores, es más fácil depurar y revisar la ejecución de un programa con un intérprete que con un compilador.
 
Un '''intérprete''' es un programa que lee el código fuente escrito en un lenguaje de alto nivel, y lo ejecuta línea a línea, directamente. Es decir, no genera ningún programa nuevo escrito en lenguaje máquina. Por este motivo, es necesario usar el intérprete cada vez que queramos ejecutar el programa de alto nivel. A pesar de esta desventaja respecto a los compiladores, es más fácil depurar y revisar la ejecución de un programa con un intérprete que con un compilador.
 +
 +
== Entornos de programación ==
 +
 +
Escribir programas es una tarea compleja, que requiere esfuerzo y es propensa a errores. Para mitigar la complejidad de desarrollar software, los programas se suelen escribir usando entornos de programación. Un entorno de programación, además del compilador o el intérprete, consta de otras herramientas que facilitan la tarea de programación. En concreto, en el caso de [[Octave UPM]], el entorno cuenta con las siguientes herramientas:
 +
 +
* Editor de código
 +
* Espacio de trabajo
 +
* Listado del directorio actual
 +
* Histórico de comandos
 +
* Depurador
 +
 +
El editor de código es un elemento que está en todos los entornos de programación. Nos permite escribir el código fuente de nuestro programa, y suele contar con características extra que facilitan la tarea de programación. Entre estas características tenemos el resaltado de sintaxis (colorear cada palabra del código según su significado) y el auto-completado del código (nombres de funciones, etc). Algunos editores realizan un análisis estático del código fuente (estático significa que se analiza sin ejecutar el código), que nos ofrece información acerca de potenciales errores que pueden ocurrir al ejecutar el programa.

Revisión del 17:44 10 may 2013

La Programación se refiere a la actividad de escribir programas que son ejecutados por ordenadores. El programa se escribe en un lenguaje de programación, que el ordenador interpreta o compila. Para escribir un programa, además de conocer el lenguaje de programación, es necesario diseñar, pensar y planificar bien el problema que se va a resolver. Los programas se conocen también por el nombre software. Ambos términos son sinónimos.

1 Qué es un programa

El ordenador no es capaz de funcionar sin programas. Un ordenador típico está formado por componentes electrónicos, organizados en una cierta arquitectura. Por ejemplo, los ordenadores más habituales hoy en día tienen un procesador (CPU), una memoria RAM (que es volátil, se pierde al apagar el ordenador), una unidad de almacenamiento permanente (normalmente, un disco duro) y otros dispositivos. El procesador y la memoria se comunican para intercambiarse valores y resultados de operaciones. Las operaciones ocurren en el procesador, y sus resultados se guardan en la memoria.

Este proceso de comunicaciòn entre el procesador y la memoria (y muchos otros que ocurren en el ordenador) los realiza un programa que se denomina sistema operativo. Por ejemplo, Windows es un sistema operativo. Es decir, siempre que usamos un ordenador estamos haciéndolo a través de un programa. El ordenador por sí solo, sin software, no puede hacer nada.

Existen otros tipos de programas que usamos de manera más consciente. Por ejemplo, procesadores de textos, navegadores web, programas de mensajería, correo electrónico.

Los programas, además de con personas, interactúan con otros programas. Por ejemplo, un navegador web se comunica con un servidor web, que es un programa que se ejecuta en otro ordenador.

2 Cómo se escribe un programa

Los programas se escriben en un lenguaje de programación. Existe una infinidad de lenguajes de programación. Algunos lenguajes son de propósito general, y otros son más adecuados para tareas especializadas (desarrollo de aplicaciones en la web, en el escritorio, en un móvil, cálculo científico).

El ordenador es capaz de entender un lenguaje denominado lenguaje máquina o lenguaje ensamblador. En los primeros tiempos de la Informática, los programadores escribían código directamente en este lenguaje máquina. Este tipo de lenguajes eran muy complejos de usar por parte de los programadores, pero muy sencillo de ejecutar por parte del ordenador. Por este motivo, los programas escritos en lenguaje máquina se suelen ejecutar con rapidez y sin requerir muchos recursos.

Conforme la tecnología de los ordenadores fue avanzando, también cambiaron los lenguajes de programación. Se crearon lenguajes de alto nivel. Un lenguaje de alto nivel es más fácil de entender por parte de los programadores, pero requiere ser traducido a lenguaje máquina para poder ser ejecutado por el ordenador. Por este motivo, los programas escritos en lenguajes de alto nivel suelen ser más lentos que los programas escritos en lenguajes de alto nivel. Aunque el tiempo de desarrollo requerido para escribir programas en lenguajes de alto nivel es mucho menor. La siguiente tabla muestra un resumen de ventajas e inconvenientes de los lenguajes de alto y bajo nivel:

Lenguajes de alto nivel Lenguajes de bajo nivel
Ventajas Fáciles de entender y usar por los programadores. Tiempo de desarrollo corto. Fáciles de ejecutar por el ordenador. Tiempo de ejecución rápido.
Inconvenientes Requieren traducción a un lenguaje de bajo nivel. Tiempo de ejecución lento. Difíciles de entender por los programadores. Provoca problemas de mantenimiento de software. Tiempo de desarrollo largo.

En la práctica se suelen emplear mucho más los lenguajes de alto nivel. Pero esto requiere usar un programa que haga de traductor a lenguaje máquina. Existen dos clases de estos programas traductores:

  • Compiladores
  • Intérpretes

Un compilador es un programa que toma el código fuente escrito en un lenguaje de alto nivel, y lo transforma en un archivo escrito en lenguaje de bajo nivel, que es ejecutable directamente por el sistema operativo. Una vez generado el programa por parte del compilador, ya no se necesita usar el compilador cada vez que se quiera ejecutar el programa, se puede ejecutar directamente. Ésta es la principal ventaja de los compiladores.

Un intérprete es un programa que lee el código fuente escrito en un lenguaje de alto nivel, y lo ejecuta línea a línea, directamente. Es decir, no genera ningún programa nuevo escrito en lenguaje máquina. Por este motivo, es necesario usar el intérprete cada vez que queramos ejecutar el programa de alto nivel. A pesar de esta desventaja respecto a los compiladores, es más fácil depurar y revisar la ejecución de un programa con un intérprete que con un compilador.

3 Entornos de programación

Escribir programas es una tarea compleja, que requiere esfuerzo y es propensa a errores. Para mitigar la complejidad de desarrollar software, los programas se suelen escribir usando entornos de programación. Un entorno de programación, además del compilador o el intérprete, consta de otras herramientas que facilitan la tarea de programación. En concreto, en el caso de Octave UPM, el entorno cuenta con las siguientes herramientas:

  • Editor de código
  • Espacio de trabajo
  • Listado del directorio actual
  • Histórico de comandos
  • Depurador

El editor de código es un elemento que está en todos los entornos de programación. Nos permite escribir el código fuente de nuestro programa, y suele contar con características extra que facilitan la tarea de programación. Entre estas características tenemos el resaltado de sintaxis (colorear cada palabra del código según su significado) y el auto-completado del código (nombres de funciones, etc). Algunos editores realizan un análisis estático del código fuente (estático significa que se analiza sin ejecutar el código), que nos ofrece información acerca de potenciales errores que pueden ocurrir al ejecutar el programa.