DE
PROGRAMACIN
Objetivos
1. Qu es un Computador?
2.Programas y algoritmos
3.Lenguajes de programacin
4.Java
Qu es un Computador?
Elementos de un Computador
(hardware)
Unidad aritmetica
y logica
(ALU)
Procesador
Unidad
de
(CPU)
Control (CU)
Dispositivos de entrada
teclado
ratn
Memoria Principal
(RAM)
Programa
Dispositivos de salida
pantalla
impresora
Dispositivos de
almacenamiento de datos
disco duro
lector/grabador de CD-ROM
4
lector/grabador de disquete
Base 2:
Dgitos = {0, 1}
1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 = 15
Representacin de textos
Representacin de imagen
00000000
00110110
00100010
00100010
00110110
00000000
00110110
00000000
Representacin de sonido
4 8 12 13 12 10 8
Discretizacin de la amplitud
Un byte para cada valor
9
Qu es un programa?
Acceso a la memoria
RAM
1 12
2 125
3 45
4 2
CPU
5 0
6 10
7 32
8 64
9 15
11
Algoritmo
12
Algoritmo
Componentes:
Entrada: datos del problema a resolver
Salida: el resultado de la resolucin
Proceso: pasos a seguir para la resolucin
Propiedades:
Preciso: orden estricto + expresiones precisas
Definido: con la misma entrada, siempre resulta la
misma salida
Finito: nmero finito de pasos
13
Algoritmo 1
14
Algoritmo 2
Algoritmo 3
Leer el pedido
Examinar la ficha del cliente
Si el cliente es solvente, aceptar pedido
En caso contrario, rechazar pedido
16
Lenguajes de programacin
Lenguajes mquina
Lenguajes ensamblador
Lenguajes de alto nivel: C, C++, Visual Basic, Java, Pascal,
Prolog, LISP,
17
Lenguajes mquina
Programas son secuencias de instrucciones compuestas de bytes:
16 29 156 9 82 75
Ventajas:
La CPU entiende estos programas
Desventajas:
Pensar en modo de 0s y 1s es muy difcil para nosotros
18
Lenguajes ensamblador
Instrucciones compuestas de palabras cortas y nmeros:
LOD 15 6
LOD 16 8
ADD 15 16 17
JMP 10
Ventajas:
Ms fcil a entender
Desventajas:
Todava bastante abstracto
Necesita traducir el cdigo a lenguajes mquina
19
20
Lenguajes de programacin:
Por qu hay tantos?
Cmo nacen, sobreviven y caducan?
1. Diferentes dominios de aplicacin:
Lenguajes de programacin:
Por qu hay tantos?
Cmo nacen, sobreviven y caducan?
1. Diferentes necesidades:
Fiabilidad: Ada
Escabilidad, paradigma orientado a objeto: C C++
Portabilidad: Java
2. Evolucin:
3. Importancia de la estandardizacin
4. Nmero de usuarios!
22
Traductores de lenguaje:
intrpretes
PROGRAMA FUENTE
INTERPRETE
EJECUCION DE LA(S)
INSTRUCCION(ES)
INTERPRETADA(S)
23
Traductores de lenguaje:
compiladores
OPCION 1
OPCION 2
PROGRAMA FUENTE
Fase de compilacin
Fase de compilacin
programa
ejecutable
COMPILADOR
ENLAZADOR
(binder, linker)
programa
objeto
Fase de ejecucin
Fase de ejecucin
EJECUCION
24
Java
Se desarroll en los comienzos de los aos 1990
La intencin era crear una herramienta para escribir programas
cortos y efectivos
Ventajas:
Desventajas:
La ejecucin es ms lenta que algunos otros lenguajes
25
Java
El cdigo fuente se guarda en un archivo con extensin
.java
Un compilador traduce el cdigo fuente en cdigo de
byte, y lo guarda en un archivo con extensin .class
Las instrucciones son diferentes para diferentes
sistemas operativos
Un intrprete especfico al sistema operativo interpreta
el cdigo byte para ejecutar el programa
Un programa puede ser compuesto de varios archivos
26
PROGRAMA OBJETO
INTERPRETE (JVM)
para Windows
INTERPRETE (JVM)
para Linux
WINDOWS
LINUX
INTERPRETE (JVM)
para Macintosh
MACINTOSH
27
HolaMundo.java
javac HolaMundo.java
HolaMundo.class
llamar a la JVM
System.class
java HolaMundo
SISTEMA OPERATIVO
28
Componentes de un lenguaje
Sintaxis (gramtica): reglas que determinan de manera
estricta el vocabulario, orden y formato de las
instrucciones permitidas
Errores sintcticos: el programa no compila y/o no se puede
interpretar.
29
Errores de programacin
Modificar o crear un
archivo .java
Compilar
Editar para
corregir
errores
no hay errores
Ejecutar programa
errores de ejecucin (semntica)
Depurar
(debugging)
30
BIBLIOGRAFIA
Fundamentos de Programacin. Algoritmos y
Estructuras. Luis Joyanes Aguilar. Editorial
Mc Graw Hill.