4.2 Conceptos de la programacion

Anuncio
Programas
Un programa es un conjunto de líneas de código escritas en un lenguaje de
programación determinado. Pero el código escrito en un lenguaje de alto nivel no
puede ser entendido por el ordenador, por lo que es necesaria la traducción a código
máquina. En este proceso tienen lugar dos fases. En la primera fase (compilación) el
compilador traduce cada uno de las partes del programa y crea módulos objeto, que
posteriormente serán unidos por el linker (enlazado), creando el módulo ejecutable
.exe. Como la compilación y el enlazado son dos procesos dependientes, a menudo se
suele denominar a todo el proceso compilación.
En el diseño de un programa tenemos diferentes pasos:
1. Análisis del problema. Este paso es fundamental. La correcta resolución de un
problema viene determinada en gran medida por el planteamiento inicial. Un
planteamiento correcto nos evitará perder tiempo en la implementación de
algoritmos que posteriormente nos demos cuenta que son incorrectos. En este
paso nos debemos hacer tres preguntas: ¿Qué entradas se nos ofrece?, ¿Qué
salida debemos generar? y ¿Cuál es el método que debemos usar para llegar
hacia la solución deseada?
2. Diseño del algoritmo. Si en el análisis determinamos qué hace el programa aquí
determinamos cómo lo hace. Para ello se divide el problema en varios
subproblemas que se solucionan de forma independiente (divide y vencerás), lo
que se denomina diseño modular. En este paso puede ser conveniente la
utilización de diagramas de flujo o pseudocódigo.
3. Codificación. Es la escritura del código según el algoritmo decidido en las etapas
anteriores.
4. Compilación y ejecución. Una vez escrito el código, se compila. Si el código
contiene errores el compilador nos los mostrará: son los llamados errores de
compilación, que suelen estar relacionados con incoherencias en la sintaxis,
conversión incorrecta de tipos, etc. Una vez solucionados estos errores, se
creará el programa ejecutable.
5. Verificación. Al ejecutar el programa puede ocurrir que realice lo que queríamos
o que, por el contrario, produzca un resultado indeseado. Nos encontramos aquí
con dos tipos de errores:
- Errores de ejecución: Se producen cuando el programa llega a un punto en el
que el ordenador no puede realizar la operación que se le solicita: división por
cero, desbordamiento, etc.
- Errores del algoritmo: Son los más difíciles de detectar, se producen cuando el
algoritmo está mal implementado. Nos conduce al siguiente paso.
6. Depuración. Esta es una parte importante. Se utilizan las herramientas de
depuración del compilador que usamos, lo que en gran medida determina si el
compilador es mejor o peor. En general, todos los compiladores incluyen entre
sus herramientas de depuración las siguientes:
- Ejecución paso a paso: En lugar de ejecutar todo el programa hasta su
finalización, se ejecuta línea a línea, lo que permite observar el comportamiento
del programa en cada momento.
- Watches (inspecciones): permiten seguir el valor de una variable y comprobar
que cambia su valor en su momento y modo deseado.
- Debug Inspector: similar a las watches pero especialmente útil para la
visualización de arrays, listas, etc.
- Breakpoints: si la ejecución es demasiado larga, podemos definir un
breakpoint (punto de ruptura) en una o varias líneas. El programa se ejecutará
normalmente hasta que llegue a una de esas líneas. En ese momento la
ejecución se detendrá y podremos consultar valores de variables o ejecutar
paso a paso desde ese punto.
- Evaluar/modificar: permite obtener el valor de una variable en un punto en el
que la ejecución del programa se ha pausado. Se puede modificar el valor de
dicha variable para comprobar, por ejemplo, que si tuviera otro valor el
comportamiento también sería el esperado.
Fuente: http://old.algoritmia.net/intro/programa.htm
Lenguajes de programación
Para poder crear un programa debemos utilizar un determinado lenguaje de
programación. Nos encontramos con varios tipos de lenguaje, que se distinguen por su
proximidad al lenguaje humano o al lenguaje máquina.
Lenguajes de bajo nivel: Son muy parecidos al código máquina (el que entiende el
ordenador), por lo que son muy difíciles de aprender y usar, pero tienen como gran
ventaja la posibilidad de utilizar al máximo las prestaciones de la máquina.
Lenguajes de alto nivel: Están más alejados del código máquina pero son más
parecidos al lenguaje humano. Son, por tanto, más fáciles de aprender y usar, pero no
permiten acceder a ciertas operaciones que sí permiten los de bajo nivel. No todos los
lenguajes pertenecientes a este grupo tienen el mismo nivel. Así, podríamos considerar
el BASIC como el de más nivel y el C el de menos nivel (pero siempre dentro de los
cercanos al lenguaje humano).
Al primer grupo pertenece el ensamblador, que sólo se usa para casos muy concretos
que necesiten la manipulación de bits o para crear virus. Al segundo grupo pertenecen
la mayoría de los lenguajes existentes, entre los que podemos destacar los siguientes:
C: Es el lenguaje que vamos a usar en esta web, fue creado por Brian Kernighan y
Dennis Ritchie y es uno de los más utilizados en la actualidad. El sistema operativo
UNIX fue escrito en este lenguaje. Posteriormente a la aparición de C, se diseñó C++,
ampliación del anterior y que está dirigido a la OOP (Programación Orientada a
Objetos).
PASCAL: Fue creado por Niklaus Wirth, que también creó Modula-2. Está pensado
para crear programas de tipo matemático. Delphi, entorno creado para desarrollar
programas en 32 bits bajo interfaz gráfica, está basado en este lenguaje.
FORTRAN: (Acrónimo de FORmula TRANslator). Es el lenguaje de programación más
antiguo, aunque aún se sigue utilizando.
BASIC: Su nombre es debido a que es una simplificación del FORTRAN. Fue un
lenguaje muy utilizado en la década de los ochenta, aunque ha perdido terreno.
Actualmente, es muy utilizado Visual Basic, que es la versión creada por Microsoft para
desarrollar programas con interfaz gráfica en BASIC.
COBOL (COmmon Business Oriented Language): Se utilizaba hace años para la
creación de aplicaciones comerciales. Fue uno de los lenguajes de programación más
populares y aún se usa.
LOGO: Este lenguaje no se caracterizaba por su eficiencia, sino porque era muy fácil
de aprender. Fue diseñado con el objetivo de facilitar el aprendizaje de la
programación a los niños, que en el futuro podrían aprender fácilmente otro lenguaje
más completo. Apenas se usa hoy en día.
LISP (LISt Processing): El nombre es debido a que sus estructuras de datos
fundamentales son las listas. Está dirigido a la creación de sistemas que simulen la
inteligencia humana.
Desde que se inició la programación de ordenadores, los lenguajes han ido
evolucionando, hasta el punto de que podemos diferenciarlos en cinco generaciones:





Primera generación: Al principio los ordenadores sólo podían ser programados
en código binario, es decir, secuencias de ceros y unos. Los programadores
debían adaptarse al lenguaje de la máquina (lenguaje máquina), que era
distinto en cada modelo de ordenador.
Segunda generación: Dado que la programación en código binario era
extremadamente difícil, se crearon los primeros lenguajes simbólicos o
ensambladores. También dependían del ordenador que se estaba utilizando,
aunque el código era más legible.
Tercera generación: Se crearon los primeros lenguajes de alto nivel. Los
códigos utilizados ya no dependían de la máquina y además eran muy parecidos
al lenguaje humano y el lenguaje matemático.
Cuarta generación: Corresponde a los lenguajes que pertenecen a la OOP
(Object Oriented Programming o Programación Orientada a Objetos). En este
tipo de lenguajes se pretende que las aplicaciones consten de diversos
segmentos de programa, los cuales se pueden reutilizar para otros programas.
Quinta generación: Esta generación se refiere a los lenguajes dirigidos a la
Inteligencia Artificial (IA). Aún están muy poco desarrollados.
Fuente: http://old.algoritmia.net/intro/lenguaje.htm
Descargar