Transcript unidad_1_A

U1. Introducción a la
programación
1.
2.
3.
4.
5.
Programación
Lenguajes de programación
Fases en el desarrollo de programas.
Estrategias de resolución de problemas
Elementos de un lenguaje de
programación
6. Entornos de desarrollo
7. Ejecución de un programa
8. Interfaz gráfica de usuario
1
1 . Programación
Algoritmo

Algoritmo Palabra que proviene del nombre de un
matemático y astrónomo árabe Al-Khôwarizmi del
sigo IX, que escribió un tratado sobre la manipulación
de números y ecuaciones llamado Kitab al-jabr
w’almugabala.
2
1 . Programación
Algoritmo


Un algoritmo es una secuencia ordenada de pasos,
no ambiguos, expresados en lenguaje natural que
conducen a la solución de un problema dado. Los
algoritmos deben cumplir con algunas características:
–
Preciso. Indica el orden de realización de cada uno de los pasos.
–
Definido. Si a un algoritmo se le suministra varias veces los mismosdatos los
resultados deben ser los mismos.
–
Finito. El algoritmo debe terminar en algún momento.
Ejemplos. Calculo de la raíz cuadrada, sumar dos números, recetas de
cocina, …
3
1 . Programación
Programación
Se llama Programación a la implementación de un algoritmo en un
determinado lenguaje de programación, para realizar un programa.


Programa es una secuencia de instrucciones que una computadora
puede interpretar y ejecutar.
Las computadoras son un ejemplo de sistemas basados en programa
almacenado, todos estos sistemas poseen un procesador central, cuya
actividad de una forma simple puede resumirse a:

1. Obtener una instrucción.
2. Determinar que instrucción es.
3. Ejecutar la instrucción
4. Ir al paso número 1
4
1 . Programación
Estructura de un ordenador

El conjunto de instrucciones que se desea que el sistema ejecute se
almacena en algún tipo de memoria, RAM, por el sistema operativo.
5
1 . Programación
Sistema Operativo

Un sistema operativo (SO, frecuentemente OS, del
inglés Operating System) es un programa o conjunto de programas
que en un sistema informático gestiona los recursos de hardware y
provee servicios a los programas de aplicación.
6
2 . Lenguajes de programación
Lenguajes de programación




Un lenguaje de programación es un lenguaje formal diseñado
para expresar procesos que pueden ser llevados a cabo por
máquinas como las computadoras.
Pueden usarse para crear programas que controlen el
comportamiento físico y lógico de una máquina, para
expresar algoritmos con precisión, o como modo de comunicación
humana.
Está formado por un conjunto de símbolos y
reglas sintácticas y semánticas que definen su estructura y el
significado de sus elementos y expresiones.
Al proceso por el cual se escribe, se prueba, se depura, se
compila (de ser necesario) y se mantiene el código fuente de
un programa informático se le llama programación.
7
2 . Lenguajes de programación
Historia



Para que la computadora entienda nuestras instrucciones debe
usarse un lenguaje específico conocido como código máquina, el cual
la máquina comprende fácilmente, pero que lo hace excesivamente
complicado para las personas. De hecho sólo consiste en cadenas
extensas de números 0 y 1.
Para facilitar el trabajo, los primeros operadores de computadoras
decidieron hacer un traductor para reemplazar los 0 y 1 por palabras
o abstracción de palabras y letras provenientes del inglés; éste se
conoce como lenguaje ensamblador.
Por ejemplo, para sumar se usa la letra A de la palabra
inglesa add (sumar). El lenguaje ensamblador sigue la misma
estructura del lenguaje máquina, pero las letras y palabras son más
fáciles de recordar y entender que los números.
8
2 . Lenguajes de programación
Historia




A finales de 1953, John Backus sometió una propuesta a sus
superiores en IBM para desarrollar una alternativa más práctica
al lenguaje ensamblador para programar la computadora central IBM
704, desarrollando el lenguaje Fortran.
El primer manual para el lenguaje Fortran apareció en octubre
de 1956, con el primer compilador Fortran entregado
en abril de 1957.
Esto era un compilador optimizado, porque los clientes eran reacios a
usar un lenguaje de alto nivel a menos que su compilador pudiera
generar código cuyo desempeño fuera comparable al de un código
hecho a mano en lenguaje ensamblador.
En 1960, se creó COBOL, uno de los lenguajes usados aún en la
actualidad, en informática de gestión.
9
2 . Lenguajes de programación
Historia

Lista de los lenguajes de programación:
http://es.wikipedia.org/wiki/Anexo:Lenguajes_de_programaci%C3%B3n
10
2 . Lenguajes de programación
Paradigmas de programación



Un paradigma de programación es una propuesta tecnológica
que es adoptada por una comunidad de programadores cuyo núcleo
central es incuestionable en cuanto a que únicamente trata de
resolver uno o varios problemas claramente delimitados.
Es un estilo de programación empleado. La resolución de estos
problemas debe suponer consecuentemente un avance significativo
en al menos un parámetro que afecte a la ingeniería de software.
Tiene una estrecha relación con la formalización de determinados
lenguajes en su momento de definición. Un paradigma de
programación está delimitado en el tiempo en cuanto a aceptación y
uso ya que nuevos paradigmas aportan nuevas o mejores soluciones
que la sustituyen parcial o totalmente.
11
2 . Lenguajes de programación
Paradigmas de programación





Imperativo o por procedimientos: es considerado el más común y
está representado, por ejemplo, por C, BASIC o Pascal
Funcional: está representado por Scheme o Haskell. Este es un caso
del paradigma declarativo.
Lógico: está representado por Prolog. Este es otro caso del
paradigma declarativo.
Modular, en su vertiente gráfica estaría como Pure Data o Max.
Orientado a objetos: está representado por Smalltalk y Java, un
lenguaje completamente orientado a objetos.
12
3 . Fases en el desarrollo de un programa
Ciclo de vida
13
3 . Fases en el desarrollo de un programa
Análisis del problema




En esta fase debemos especificar cuáles son los requisitos a los que
se debe dar solución desde el programa a realizar.
El problema debe estar completamente especificado y se entiende
perfectamente.
Debe responder a la pregunta ¿Qué queremos resolver de forma
clara?
Ejemplo. Escribir un programa para sumar dos números.
¿Este enunciado esta perfectamente especificado?
14
3 . Fases en el desarrollo de un programa
Diseño y verificación






En esta fase pasamos a establecer el diseño de una de las posibles
soluciones al problema, mediante un algoritmo.
Si el problema es muy complejo se establecen las ideas generales de
diseño, la arquitectura de la solución
Básicamente debemos responder a la pregunta ¿Cómo resolvemos el
problema?
Se trata de buscar soluciones.
Usando un método que sea correcto.
Ejemplo. Resolver el problema de multiplicar dos números enteros
usando el método de la multiplicación rusa.
15
3 . Fases en el desarrollo de un programa
Codificación o implementación




En esta fase se implementa el diseño del algoritmo mediante un
lenguaje de programación .
Una vez hemos realizado la codificación pasamos a la fase de prueba
y validación del programa.
Antes de esto como ya habíamos comentado hay que traducir el
código a lenguaje máquina, a este proceso se le denomina
compilación.
Para poder traducir el programa a código máquina primero
tendremos que depurarlo sintácticamente. Aunque sobre este tema
hay varios enfoques que veremos a continuación.
16
3 . Fases en el desarrollo de un programa
Compilación


La compilación consiste en coger los ficheros fuente que conforman
un programa y, línea por línea, traducir cada instrucción de alto nivel
por varias instrucciones en código máquina que realicen lo que la
instrucción de alto nivel expresa.
Si se repite esa traducción para todas las líneas del código fuente,
obtendremos un conjunto de instrucciones máquina. Grabando esas
instrucciones máquina en un fichero que contiene una estructura
interna que un determinado sistema operativo es capaz de entender,
obtenemos un fichero binario ejecutable, o simplemente, "un
ejecutable".
17
3 . Fases en el desarrollo de un programa
Interpretación





A diferencia del compilador, el intérprete no produce una traducción
a código máquina.
El intérprete intenta realizar "al vuelo" lo que se expresa en los
ficheros fuente.
Cuando un programa es interpretado, el proceso que se sigue es el
siguiente: el intérprete obtiene una instrucción del fichero fuente y la
realiza inmediatamente.
Repitiendo esta secuencia para todas las líneas, el intérprete realiza
lo que los ficheros fuente expresan... es decir, ejecuta el programa.
Programas escritos en lenguajes como C o Pascal prácticamente
siempre se compilan, y otros como Perl o Python prácticamente
siempre se interpretan.
18
3 . Fases en el desarrollo de un programa
El enfoque de máquina virtual


La filosofía de la máquina virtual es la siguiente: el código fuente se
compila, detectando los errores sintácticos, y se genera una especie
de ejecutable, con un código máquina dirigido a una CPU imaginaria.
A esta especie de código máquina se le denomina código
intermedio, lenguaje intermedio, p-code, o byte-code (según
quién nos lo cuente).
Como esa CPU imaginaria no existe, para poder ejecutar ese
ejecutable, se construye un intérprete. Este intérprete es capaz de
leer cada una de las instrucciones de código máquina imaginario y
ejecutarlas en una CPU real. A este intérprete se le
denomina máquina virtual.
19
3 . Fases en el desarrollo de un programa
El enfoque de máquina virtual
20
3 . Fases en el desarrollo de un programa
Verificación y depuración



En esta fase es donde se buscan errores producidos en las fases
anteriores y se eliminan.
Hay que tratar de diferenciar entre los errores de compilación que
son errores sintácticos y los errores de ejecución que son
semánticos.
Por último es importante establecer un buen juego de pruebas con la
finalidad de verificar que el programa funciona bien para todos los
casos.
21
3 . Fases en el desarrollo de un programa
Documentación y mantenimiento



En la fase de documentación se creará la documentación del
programa realizado, tanto técnica como a nivel de usuario
(manuales).
Esta fase es muy importante tanto para el usuario final como para
posteriores ampliaciones.
En la fase de mantenimiento iremos ampliando las funcionalidades
del programa. Siempre hay algo que mejorar.
22
3 . Fases en el desarrollo de un programa
Ejemplos de algoritmos





Escribir un algoritmo para encontrar el número mas pequeño de un
conjunto de tres.
Escribir un algoritmo para encontrar el número de veces que aparece
la letra “a” en una oración.
Escribir un algoritmo para subir el volumen un fichero de sonido
digital.
Escribir un algoritmo para dibujar figuras geométricas en un lienzo.
Escribir un algoritmo para sumar dos números.
23