Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
N I C U L O V E DE LOS LENGUAJES DE C A M A R G O R P IN
Tema 1 Fase 1
Programacin Electrnica 2
Agenda
1 2 3 4
INTRODUCCIN
JAVA
Programacin Electrnica 2
1 2 3 4
Introduccin
Evolucin de los lenguajes de programacin
Java
Programacin Electrnica 2
No debe confundirse Tcnicas de Programacin con Lenguajes de Programacin. La Programacin Orientada a Objetos (POO) es una tcnica de programacin por lo que puede aplicarse a algunos lenguajes de programacin. La POO hoy en da se aplica a muchos LP:
C Pascal Java
C++ Delphi
Programacin Electrnica 2
Hay que dejar de lado todas las ideas preconcebidas acerca de cmo debe realizarse un programa La POO tiene muy poco que ver con la forma habitual de programar. Ya se sabe qu es un objeto comn y cmo manipularlo. Si entiende la similitud entre los objetos del mundo fsico y los informticos, la POO se har ms sencilla. Esto es lo ms difcil: hacer ver qu es la POO, quitarnos todas las ideas preconcebidas sobre programacin tradicional.
Programacin Electrnica 2
1 2 3 4
Introduccin
Java
Programacin Electrnica 2
Los lenguajes de programacin se han desarrollado en base a una idea: hacer que la tarea de realizar programas sea cada vez lo ms simple, flexible y portable posible. "A medida que se van desarrollando los lenguajes, se va desarrollando tambin la posibilidad de resolver problemas cada vez ms complejos. En la evolucin de cada lenguaje, llega un momento en el que los programadores comienzan a tener dificultades a la hora de manejar programas que sean de un cierto tamao y sofisticacin". (Bruce Eckel)
Programacin Electrnica 2
La evolucin en los lenguajes ha venido impulsada por motores muy distintos: i. Los avances tecnolgicos ii. Los avances conceptuales (de planteamiento) iii. Los avances en cuanto a enfoque de la
programacin
Programacin Electrnica 2
Un computador es un sistema electrnico digital secuencial. El microprocesador es la CPU de un computador Un programa es una sucesin de instrucciones que se ejecutan secuencialmente. Para que el programa sea ejecutado por el microprocesador debe ser elaborado en binario. En la programacin pueden cometerse muchos errores (bugs) los cuales deben ser depurados.
Programacin Electrnica 2
10
Programar en binario es prcticamente imposible aun cuando se use como alternativa el sistema hexadecimal. El primer avance importante vino con la aparicin de los lenguajes ensambladores. A estos lenguajes se les llama de "bajo nivel", ya que se hallan estrechamente ligados a la forma de trabajo del microprocesador. Lo que hace un lenguaje ensamblador es transcribir unos nemnicos (palabras fciles de recordar) a una secuencia de 0 y 1 a los que el nemnico representa y que s son entendibles por el microprocesador.
Programacin Electrnica 2
11
Lenguaje Ensamblador
Memoria
Direccin 0000 0000 0000 0000
Lenguaje Mquina
Instrucci n 0000 1000 0000 0100
Microprocesador
0000 MOV AX, 04 0002 MOV BX, 05 0004 ADD AX, BX : : Programa a bajo nivel construido con nemnicos
1000 0000 :
Programacin Electrnica 2
12
El siguiente paso fue la aparicin de los lenguajes de alto nivel. El proceso de desarrollo de una aplicacin con lenguajes de alto nivel es ms rpido, simple y resulta ms fcil detectar y corregir errores, debido a:
Programacin Electrnica 2
13
Memoria Lenguaje
Mquina
Direccin 0000 0000 0000 0000 Instrucci n 0000 1000 0000 0100 0000 0000 0000 0010 0000 1001 0000 0101 0000 0000 0000 0100 : 1000 0000 :
Los compiladores se enlazan con otros cdigos o programas de bibliotecas del LP especfico y se convierten en un archivo ejecutable. Los Intrpretes son traductores que no producen copias completas y nicas del programa en lenguaje mquina sino que traducen y ejecutan el programa fuente instruccin a instruccin
public class Hello { public static void main(String[] args) { System.out.println("Hola mundo"); } } : :
Programacin Electrnica 2
14
Programacin Electrnica 2
15
Programacin Electrnica 2
16
Programacin lineal:
Programacin Electrnica 2
17
Este sistema de trabajo es complicado, pues obliga al programador a retener en su cabeza permanentemente todo el cdigo escrito hasta un momento determinado para poder seguir escribiendo el programa;
adems a la hora de leerlo, el programador se pierde con facilidad porque debe ir saltando continuamente de unos trozos de cdigo a otros.
1. Hacer una variable igual a 0 2. Sumar 1 a esa variable 3. Mostrar la variable 4. Si la variable es 100 -> terminar, si_no -> saltar a 1
Programacin Electrnica 2
18
Programacin estructurada
Programacin Electrnica 2
19
Programacin Electrnica 2
20
Programacin Electrnica 2
21
Programacin Electrnica 2
22
Programacin Electrnica 2
23
La evolucin de los lenguajes de programacin, en cuanto a enfoque es tambin una evolucin conceptual, pero sta es tan profunda que supone un cambio drstico en cuanto al modo de concebir el tratamiento de la programacin. En este sentido, existen tres enfoques diferentes:
Programacin Electrnica 2
24
Programacin Procedural
Programacin Electrnica 2
25
Programacin Declarativa
Programacin Electrnica 2
26
Programacin Electrnica 2
27
Programacin Electrnica 2
28
Programacin Electrnica 2
29
1 2 3 4
Introduccin
Java
Programacin Electrnica 2
30
LA
POO:
Programacin Electrnica 2
31
NO ES es un lenguaje de programacin.
Las tcnicas de POO pueden utilizarse en cualquier
lenguaje conocido y que est por venir, aunque estos, incluirn facilidades para el manejo de objetos.
Programacin Electrnica 2
32
La POO es un conjunto de tcnicas que permiten incrementar el proceso de produccin de software, aumentando la productividad y permitiendo abordar proyectos de mucha mayor envergadura. Con estas tcnicas, aseguramos la reusabilidad del cdigo, es decir, los objetos que hoy escribimos, si estn bien escritos, nos servirn para "siempre".
Programacin Electrnica 2
33
Hasta aqu, no hay ninguna diferencia con las funciones, una vez escritas, estas nos sirven siempre. Pero es que, y esto s que es innovador, con POO podemos re-usar ciertos comportamientos de un objeto, ocultando aquellos otros que no nos sirven, o redefinirlos para que los objetos se comporten de acuerdo a las nuevas necesidades
Programacin Electrnica 2
34
Ejemplo: si tenemos un automvil y queremos que sea ms rpido, no construimos uno nuevo; simplemente le cambiamos el carburador por otro ms potente, cambiamos las ruedas por otras ms anchas para mayor estabilidad y le aadimos un sistema turbo, pero seguimos usando todas las otras piezas. Desde el punto de vista de la POO Qu hemos hecho?
Programacin Electrnica 2
35
En trminos de POO, si se quiere construir un objeto que comparte ciertas cualidades con otro ya creado, no se tiene que volver a crearlo desde el principio; simplemente, se define qu se quiere usar del antiguo en el nuevo y qu nuevas caractersticas tiene el nuevo objeto. Con POO se puede incorporar objetos que otros programadores han construido y, adems, se puede modificar los comportamientos de los objetos construidos por otros programadores sin tener que saber cmo los han construido.
Programacin Electrnica 2
36
Trabajo prctico:
Presentacin en formato IEEE paper (2 columnas)
Laboratorio
Memoria USB
Programacin Electrnica 2
37
1 2 3 4
Introduccin
Java
Programacin Electrnica 2
38
Introduccin
Creado en 1991 por Sun Microsystems (James Gosling) para dispositivos electrnicos: calculadoras, microondas y televisin interactiva. Baja potencia de clculo Usa poca memoria Distintas CPUs Consecuencias: Lenguaje sencillo que genera cdigo reducido Lenguaje que es independiente de la plataforma
Programacin Electrnica 2
39
Ejecucin
de Java como:
al cargar la pgina Web) Servlet (aplicacin ejecutada en un servidor de Internet, sin interfaz grfica).
Programacin Electrnica 2
40
Actualmente es un Lenguaje de Programacin de propsito general Muy popular y usado para aplicaciones generales y aplicaciones web e internet, dispositivos y redes de comunicaciones como:
Servidores web Bases de datos Sistemas de informacin geogrfica (SIG) Telfonos mviles Sistemas de teledeteccin Asistentes digitales Sistemas medioambientales
Programacin Electrnica 2
41
Java no slo es un LP sino una plataforma completa para el desarrollo del software pues dispone de una biblioteca gigantesca de clases y aplicaciones con numerosos cdigos reutilizables. Posee un entorno de ejecucin de alta calidad y aade propiedades de gestin automtica de memoria y soporte de aplicaciones multimedia. Mas fcil de aprender pues se han eliminado algunas caractersticas complejas de la POO como herencia mltiple, punteros, sentencias goto, etc
Programacin Electrnica 2
42
Java se ha creado pensando en la independencia de las plataformas y de las computadoras por ello se ha creado el concepto de Mquina Virtual Java Para que los programas escritos en Java puedan ejecutarse primero deben traducirse a un lenguaje intermedio bytecode y luego se interpretan a un lenguaje mquina especfico. El programa que traduce las instrucciones escritas en Java a bytecode es un compilador.
Programacin Electrnica 2
43
Entonces, la JVM es una mquina hipottica que emula por software una mquina real. Es definida por una especificacin. Conjunto de instrucciones de mquina (C.O.) + Operandos Pila Memoria ... El compilador genera bytecodes (instrucciones de cdigo maquina para la JVM) El interprete traduce y ejecuta los bytecodes para cada mquina especfica.
Programacin Electrnica 2
44
Compilador
Intrprete
Programacin Electrnica 2
45
Los programas Java son de fcil portabilidad e independientes de la CPU sobre las que se ejecutan. La JVM es una computadora virtual cuyo lenguaje mquina es el bytecode. Existen numerosas mquinas virtuales disponibles para un gran nmero de plataformas que permiten a los programas ser independientes de la mquina: Un programa compilado en UNIX puede ejecutarse en Windows 7 o Macintosh
Programacin Electrnica 2
46
El interprete de Java traduce instruccin por instruccin el bytecode en el tipo especfico de lenguaje mquina del CPU y a continuacin se ejecuta la instruccin, por tanto slo necesita un tipo de intrprete para cada tipo de CPU En el caso de C++, el compilador traduce el cdigo completo por lo que necesita un compilador diferente para cada tipo de mquina
Programacin Electrnica 2
47
Los intrpretes son ms sencillos que los compiladores, aunque ms lentos. Tambin Java incluye amplias bibliotecas de clases incorporadas que vienen con los entornos de desarrollo JDK (Java Development Kit) y contienen centenares de clases integradas con millares de mtodos
Programacin Electrnica 2
48
Caractersticas de Java
Lenguaje de fcil uso orientado a objetos Lenguaje compilado e interpretado Facilita un entorno interpretado: Velocidad de desarrollo (no de ejecucin) Portabilidad del cdigo Ejecucin de multitareas Cambios dinmicos en tiempo de ejecucin Seguridad del cdigo.