Академический Документы
Профессиональный Документы
Культура Документы
Programacin Electrnica 2
Agenda
Programacin Electrnica 2
Introduccin
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.
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, e incluso de ver el mundo. Usted, programador o no, ya sabe qu es un objeto y cmo manipularlo, lo lleva haciendo desde que naci; si entiende la similitud entre los objetos del mundo fsico y los informticos, la POO se le har ms sencilla. Pero esto es lo ms difcil: hacer ver qu es la POO, quitarnos todas las ideas preconcebidas sobre programacin tradicional.
Ing. Mario Urrutia Espinoza
Programacin Electrnica 2
Programacin Electrnica 2
La historia de los lenguajes de programacin se ha desarrollado en base a una sola idea conductora: 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 (binario=bits) 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. Cronolgicamente 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 ceros y unos 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 0000 0000 0000 0010
Lenguaje Mquina
Instruccin 0000 1000 0000 0100 0000 1001 0000 0101 1000 0000 :
Microprocesador
Programacin Electrnica 2
12
El siguiente paso fue la aparicin de los lenguajes de alto nivel. El proceso de desarrollo de una aplicacin con un lenguaje de alto nivel es mucho ms rpido, simple y, por tanto, resulta ms fcil detectar y corregir errores. Esto se debe principalmente a dos factores:
Programacin Electrnica 2
13
Memoria Lenguaje
Mquina
Direccin 0000 0000 0000 0000 0000 0000 0000 0010 0000 0000 0000 0100 : Instruccin 0000 1000 0000 0100 0000 1001 0000 0101 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
Complejidad: LP BN ms difciles de programar que LP AN Portabilidad: LP AN mas fciles de trasladarlos a otros entornos Velocidad de ejecucin: Los LP BN estn directamente
relacionados con el hardware por lo que se ejecutan ms rpidamente
Programacin Electrnica 2
15
Programacin Electrnica 2
16
Programacin lineal:
Programacin Electrnica 2
17
Programacin Electrnica 2
18
Programacin estructurada
Los saltos estn altamente desaconsejados Lo que se intenta es que el programador pueda hacer
programas cada vez ms extensos sin perderse en un entramado de lneas de cdigo interdependientes.
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
Programacin Electrnica 2
30
Programacin Electrnica 2
31
NO ES es un lenguaje de programacin.
Las tcnicas de POO pueden utilizarse en cualquier lenguaje
conocido y que estn por venir, aunque estos, incluirn facilidades para el manejo de objetos.
Programacin Electrnica 2
32
La POO es un conjunto de tcnicas que nos permiten incrementar nuestro proceso de produccin de software; aumentando nuestra productividad por un lado y permitindonos abordar proyectos de mucha mayor envergadura por otro.
Usando estas tcnicas, nos aseguramos la re-usabilidad de nuestro 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
Dicho en trminos de POO, si queremos construir un objeto que comparte ciertas cualidades con otro que ya tenemos creado, no tenemos que volver a crearlo desde el principio; simplemente, decimos qu queremos usar del antiguo en el nuevo y qu nuevas caractersticas tiene nuestro nuevo objeto.
An hay ms, con OOP podemos incorporar objetos que otros programadores han construido en nuestros programas y, adems, podemos modificar los comportamientos de los objetos construidos por otros programadores sin tener que saber cmo los han construido ellos.
Programacin Electrnica 2
36
Esto supone una nueva concepcin en el desarrollo de programas, algo radicalmente nuevo y de una potencia y versatilidad hasta ahora inimaginables. Para el programador de la "vieja escuela" le parecer increble, sin embargo, podr comprobar, que es totalmente cierto.
Programacin Electrnica 2
37
Trabajo prctico:
Presentacin en formato paper (2 columnas)
Laboratorio
Programacin Electrnica 2
38
JAVA Introduccin
Programacin Electrnica 2
39
Creado en 1991 por Sun Microsystems (James Gosling) para dispositivos electrnicos: calculadoras, microondas y la 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
40
Lenguaje de programacin para computadores e Internet desde 1995. Ejecucin de Java como: Aplicacin independiente Applet (aplicacin dentro del navegador al cargar la pgina
Programacin Electrnica 2
41
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
42
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
43
Lectura personal:
Historia de Java
Programacin Electrnica 2
44
Programacin Electrnica 2
45
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
46
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)
Programacin Electrnica 2
47
Los programas Java son de fcil portabilidad e interdependientes 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:
Programacin Electrnica 2
48
El interprete de Java traduce instruccin por instruccin del bytecode en el tipo especfico de lenguaje mquina del CPU y a continuacin se ejecuta la instruccin, por tanto slo necesita un tipo diferente 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
49
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
50
Caractersticas de Java
Programacin Electrnica 2
51
Programacin Electrnica 2
52