Vous êtes sur la page 1sur 11

Republica Bolivariana de Venezuela Instituto Universitario Politcnico Santiago Mario Maracay Edo Aragua.

Integrantes Jorge Robles C.I 19.110.280

Java.

Es un lenguaje de programacin de alto nivel, la cual es orientada a objetos y a las multiplataforma. Originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compaa Oracle) y publicado en el 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. El lenguaje deriva mucho de su sintaxis de C y C++, pero tiene menos facilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede correr en cualquier mquina virtual Java (JVM) sin importar la arquitectura de la computadora. Java es un lenguaje de programacin de propsito general, concurrente, basado en clases, y orientado a objetos, que fue diseado especficamente para tener tan pocas dependencias de implementacin como fuera posible. Su intencin es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo (conocido en ingls como WORA, o "write once, run anywhere"), lo que quiere decir que el cdigo que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir del 2012, uno de los lenguajes de programacin ms populares en uso, particularmente para aplicaciones de cliente-servidor de web, con unos 10 millones de usuarios reportados. La compaa Sun desarroll la implementacin de referencia original para los compiladores de Java, mquinas virtuales, y libreras de clases en 1991 y las public por primera vez en el 1995. A partir de mayo del 2007, en cumplimiento con las especificaciones del Proceso de la Comunidad Java, Sun volvi a licenciar la mayora de sus tecnologas de Java bajo la Licencia Pblica General de GNU. Otros tambin han desarrollado implementaciones alternas a estas tecnologas de Sun, tales como el Compilador de Java de GNU y el GNU Classpath. Origen. En Diciembre de 1990, Patrick Naughton, un empleado de la empresa Sun, reclut a sus colegas James Gosling y Mike Sheridan para trabajar sobre un nuevo tema conocido como "El proyecto verde". Este a su vez estaba auspiciado por la compaa "Sun founder Bill Joy" y tena como objetivo principal crear un lenguaje de programacin accesible, fcil de aprender y de usar, que fuera universal, y que estuviera basado en un ambiente C++ ya que haba mucha frustracin por la complejidad y las limitaciones de los lenguajes de programacin existentes.

En abril de 1991, el equipo decidi introducir sistemas de software con aplicaciones para consumidores smart como plataforma de lanzamiento para su proyecto. James Gosling escribi el compilador original y lo denomin "Oak", y con la ayuda de los otros miembros del equipo desarrollaron un decodificador que ms tarde se convertira en lenguaje Java.

Para 1992, el equipo ya haba desarrollado un sistema prototipo conocido como "*7", que era una especie de cruce entre un asistente digital personalizado y un mecanismo inteligente de control remoto.

Por su parte el presidente de la compaa Sun, Scott McNealy, se dio cuenta en forma muy oportuna y estableci el Proyecto Verde como una subsidiaria de Sun. De 1993 a 1994, el equipo de Naughton se lanz en busca de nuevas oportunidades en el mercado, mismas que se fueron dando mediante el sistema operativo base. La incipiente subsidiaria fracas en sus intentos de ganar una oferta con Time-Warner, sin embargo el equipo concluy que el mercado para consumidores electrnicos smart y las cajas Set-Up en particular, no eran del todo eficaces. La subsidiaria Proyecto Verde fue amortizada por la compaa Sun a mediados del 94.

Afortunadamente, el cese del Proyecto Verde coincidi con el nacimiento del fenmeno mundial Web. Al examinar las dinmicas de Internet, lo realizado por el ex equipo verde se adecuaba a este nuevo ambiente ya que cumpla con los mismos requerimientos de las set-top box OS que estaban diseadas con un cdigo de plataforma independiente pero sin dejar de ser pequeas y confiables. Patrick Naugthon procedi a la construccin del lenguaje de programacin Java que se accionaba con un browser prototipo, ms tarde se le fueron incorporando algunas mejoras y el browser Hot Java fue dado a conocer al mundo en 1995.

Con el paso del tiempo el Hot Java se convirti en un concepto prctico dentro del leguaje Java y demostr que podra proporcionar una forma segura multiplataforma para que el cdigo pueda ser bajado y corrido del Host del World Wide Web y que de otra forma no son seguros.

Una de las caractersticas ms atractivas del Hot Java fue su soporte para los "applets", que son las partes del cdigo Java que pueden ser cargadas mediante una red de trabajo para despus ejecutarlo localmente y as lograr o alcanzar soluciones dinmicas en computacin acordes al rpido crecimiento del ambiente Web.

Para dedicarse al desarrollo de productos basados en la tecnologa Java,

Sun form la empresa Java Soft en enero de 1996, de esta forma de se dio continuidad al fortalecimiento del programa del lenguaje Java y as trabajar con terceras partes para crear aplicaciones, herramientas, sistemas de plataforma y servicios para aumentar las capacidades del lenguaje.

Durante ese mismo mes, Java Soft dio a conocer el Java Developmet Kit (JDK) 1.0, una rudimentaria coleccin de componentes bsicos para ayudar a los usuarios de software a construir aplicaciones de Java. Dicha coleccin inclua el compilador Java, un visualizador de applets, un debugger prototipo y una mquina virtual Java(JVM), necesaria para correr programas basados en Java, tambin inclua paquetera bsica de grficos, sonido, animacin y trabajo en red.

Asimismo el Netscape Comunications Inc, mostr las ventajas de Java y rpidamente se asoci con Java Soft para explotar su nueva tecnologa. No pas mucho tiempo antes de que Netscape Communications decidiera apoyar a los Java applets en Netscape Navigator 2.0. Este fue el factor clave que lanz a Java a ser reconocido y famoso, y que a su vez forz a otros vendedores para apoyar el soporte de applets en Java.

Como parte de su estrategia de crecimiento mundial y para favorecer la promocin de su nueva tecnologa, Java Soft otorg permisos a otras compaas para que pudieran tener acceso al cdigo fuente de Java y al mismo tiempo mejorar sus navegadores, dicha licencia tambin les permita crear herramientas de desarrollo para programacin Java y los facultaba para acondicionar Mquinas Virtuales Java (JVM), a varios sistemas operativos.

Programacin Orientada a Objetos. Java implementa la tecnologa bsica de C++ con algunas mejoras y elimina algunas cosas para mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus datos como objetos y con interfaces a esos objetos. Soporta las tres caractersticas propias del paradigma de la orientacin a objetos: encapsulacin, herencia y polimorfismo. Las plantillas de objetos son llamadas, como en C++, clases y sus copias, instancias. Estas instancias, como en C++, necesitan ser construidas y destruidas en espacios de memoria. Java incorpora funcionalidades inexistentes en C++ como por ejemplo, la resolucin dinmica de mtodos. Esta caracterstica deriva del lenguaje Objective C, propietario del sistema operativo Next. En C++ se suele trabajar con librera

Dinmicas (DLLs) que obligan a recompilar la aplicacin cuando se retocan las Funciones que se encuentran en su interior. Este inconveniente es resuelto por Java mediante una interfaz especfica llamada RTTI (Runtime Type Identification) que define la interaccin entre objetos excluyendo variables de instancias o implementacin de mtodos. Las clases en Java tienen una representacin en el runtime que permite a los programadores interrogar por el tipo de clase y enlazar dinmicamente la clase con el resultado de la bsqueda.

Programacin Estructurada.

La programacin estructurada es un paradigma de programacin orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando nicamente subrutinas y tres estructuras: secuencia, seleccin (if y switch) e iteracin (bucles for y while), considerando innecesario y contraproducente el uso de la instruccin de transferencia incondicional (GOTO), que podra conducir a "cdigo espagueti", que es mucho ms difcil de seguir y de mantener, y era la causa de muchos errores de programacin. Surgi en la dcada de 1960, particularmente del trabajo Bhm y Jacopini,1 y una famosa carta, la sentencia goto considerada perjudicial, de Edsger Dijkstra en 1968 y fue reforzado tericamente por el teorema del programa estructurado, y prcticamente por la aparicin de lenguajes como ALGOL con adecuadas y ricas estructuras de control. A finales de los aos 1970 surgi una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que adems estaban escritos de manera que facilitaba su mejor comprensin, no slo proveyendo ventajas durante la fase de desarrollo, sino tambin posibilitando una ms sencilla modificacin posterior. El teorema del programa estructurado, propuesto por Bhm-Jacopini, demuestra que todo programa puede escribirse utilizando nicamente las tres instrucciones de control siguientes:

Secuencia Instruccin condicional. Iteracin (bucle de instrucciones) con condicin al principio.

Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programacin tienen un mayor repertorio de estructuras de control, stas pueden ser construidas mediante las tres bsicas citadas. El teorema del programa estructurado proporciona la base terica de la programacin estructurada. Seala que tres maneras de combinar programas

son suficientes para expresar cualquier funcin computable: secuencia, seleccin e iteracin. Esta observacin no se origin con el movimiento de la programacin estructurada. Estas estructuras son suficientes para describir el ciclo de instruccin de una unidad central de procesamiento, as como el funcionamiento de una mquina de Turing. Por lo tanto un procesador siempre est ejecutando un "programa estructurado" en este sentido, incluso si las instrucciones que lee de la memoria no son parte de un programa estructurado. Sin embargo, los autores usualmente acreditan el resultado a un documento escrito en 1966 por Bhm y Jacopini, posiblemente porque Dijkstra haba citado este escrito. El teorema del programa estructurado no responde a cmo escribir y analizar un programa estructurado de manera til. Estos temas fueron abordados durante la dcada de 1960 y principio de los aos 1970, con importantes contribuciones de Dijkstra, Robert W. Floyd, Tony Hoarey y David Gries. Programacin Orientada a Eventos. Los lenguajes visuales orientados al evento y con manejo de componentes dan al usuario que no cuenta con mucha experiencia en desarrollo, la posibilidad de construir sus propias aplicaciones utilizando interfaces grficas sobre la base de ocurrencia de eventos. Para soportar este tipo de desarrollo interactan dos tipos de herramientas, una que permite realizar diseos grficos y , un lenguaje de alto nivel que permite codificar los eventos. Con dichas herramientas es posible desarrollar cualquier tipo de aplicaciones basadas en el entorno. Visual Basic es uno de los lenguajes de programacin que ms entusiasmo despiertan entre los programadores de computadoras, tanto expertos como novatos. En el caso de los programadores expertos por la facilidad con la que desarrollan aplicaciones complejas en poqusimo tiempo (comparado con lo que cuesta programar en Visual C++, por ejemplo). En el caso de los programadores novatos por el hecho de ver de lo que son capaces a los pocos minutos de empezar su aprendizaje. El precio que hay que pagar por utilizar Visual Basic es una menor velocidad o eficiencia en las aplicaciones. Visual Basic es un lenguaje de programacin visual, tambin llamado lenguaje de 4ta. Generacin. Esto quiere decir que un gran nmero de tareas se realizan sin escribir cdigo, simplemente con operaciones grficas realizadas con el ratn sobre la pantalla. Visual Basic es tambin un programa basado en objetos, aunque no orientado a objetos como Visual C++. La diferencia est en que Visual Basic utiliza objetos con propiedades y mtodos, pero carece de los mecanismos de herencia y polimorfismo propios de los verdaderos lenguajes orientados a objetos como Java y C++.

En este trabajo se presentar las caractersticas generales de Visual Basic, junto con algunos ejemplos sencillos que den idea de la potencia del lenguaje orientado a eventos, y del modo en que se utiliza. Clases. En la programacin orientada a objetos, una clase es una construccin que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y el comportamiento que todos los objetos de la clase comparten. Un objeto de una determinada clase se denomina una instancia de la clase. La clase que contiene (y se utiliz para crear) esa instancia se puede considerar como del tipo de ese objeto. Por ejemplo, una instancia del objeto de la clase "Persona" sera del tipo "Persona". Una clase por lo general representa un sustantivo, como una persona, lugar o (posiblemente bastante abstracta) cosa - es el modelo de un concepto dentro de un programa de computadora. Fundamentalmente, encapsula el estado y el comportamiento del concepto que representa. Encapsula el estado a travs de marcadores de datos llamados atributos (o variable miembro o variables de instancia), y encapsula el comportamiento a travs de secciones de cdigo reutilizables llamados mtodos. Ms tcnicamente, una clase es un conjunto coherente que consiste en un tipo particular de metadatos. Una clase tiene una interfaz y una estructura. La interfaz describe cmo interactuar con la clase y sus instancias con mtodos, mientras que la estructura describe cmo los datos se dividen en atributos dentro de una instancia. Una clase tambin puede tener una representacin (meta objeto) en tiempo de ejecucin, que proporciona apoyo en tiempo de ejecucin para la manipulacin de los metadatos relacionados con la clase. En el diseo orientado a objetos, una clase es el tipo ms especfico de un objeto en relacin con una capa especfica. Los lenguajes de programacin que soportan clases difieren sutilmente en su soporte para diversas caractersticas relacionadas con clases. La mayora soportan diversas formas de herencia. Muchos lenguajes tambin soportan caractersticas para proporcionar encapsulacin, como especificadores de acceso.

Objetos. En el paradigma de programacin orientada a objetos (POO, o bien OOP en ingls), un objeto se define como la unidad que en tiempo de ejecucin realiza las tareas de un programa. Tambin a un nivel ms bsico se define como la instancia de una clase. Estos objetos interactan unos con otros, en contraposicin a la visin tradicional en la cual un programa es una coleccin de subrutinas (funciones o procedimientos), o simplemente una lista de instrucciones para el computador.

Cada objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a otros objetos de manera similar a un servicio. En el mundo de la programacin orientada a objetos (POO), un objeto es el resultado de la instanciacin de una clase. Una clase es el anteproyecto que ofrece la funcionalidad en ella definida, pero sta queda implementada slo al crear una instancia de la clase, en la forma de un objeto. Por ejemplo: dado un plano para construir sillas (una clase de nombre clase_silla), entonces una silla concreta, en la que podemos sentarnos, construida a partir de este plano, sera un objeto de clase_silla. Es posible crear (construir) mltiples objetos (sillas) utilizando la definicin de la clase (plano) anterior. Los conceptos de clase y objetos son anlogos a los de tipo de datos y variable; es decir, definida una clase podemos crear objetos de esa clase, igual que disponiendo de un determinado tipo de dato (por ejemplo el tipo entero), podemos definir variables de dicho tipo: int a,b; (int es un tipo de dato y 'a' y 'b' son variables de tipo entero con las que podemos operar) Para utilizar la funcionalidad definida en una clase en particular (salvo en las clases abstractas), primeramente es necesario crear un objeto de esa clase. De la misma manera, para una persona que desea sentarse, las especificaciones para construir una silla sern de poca utilidad; lo que se necesita es una silla real construida a partir de esas especificaciones. Siguiendo con la analoga anterior, tambin se puede decir que para hacer operaciones aritmticas, de nada sirve por s solo el tipo entero (int); para ello necesitamos variables (o constantes) con las que operar. Herencia En orientacin a objetos la herencia es, despus de la agregacin o composicin, el mecanismo ms utilizado para alcanzar algunos de los objetivos ms preciados en el desarrollo de software como lo son la reutilizacin y la extensibilidad. A travs de ella los diseadores pueden crear nuevas clases partiendo de una clase o de una jerarqua de clases preexistente (ya comprobadas y verificadas) evitando con ello el rediseo, la modificacin y verificacin de la parte ya implementada. La herencia facilita la creacin de objetos a partir de otros ya existentes e implica que una subclase obtiene todo el comportamiento (mtodos) y eventualmente los atributos (variables) de su superclase. Es la relacin entre una clase general y otra clase ms especfica. Por ejemplo: Si declaramos una clase prrafo derivada de una clase texto, todos los mtodos y variables asociadas con la clase texto, son automticamente heredados por la subclase prrafo.

La herencia es uno de los mecanismos de los lenguajes de programacin orientada a objetos basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad. La clase de la que se hereda se suele denominar clase base, clase padre, superclase, clase ancestro (el vocabulario que se utiliza suele depender en gran medida del lenguaje de programacin). En los lenguajes que cuentan con un sistema de tipos fuerte y estrictamente restrictivo con el tipo de datos de las variables, la herencia suele ser un requisito fundamental para poder emplear el Polimorfismo, al igual que un mecanismo que permita decidir en tiempo de ejecucin qu mtodo debe invocarse en respuesta a la recepcin de un mensaje, conocido como enlace tardo (late binding) o enlace dinmico (dynamic binding). Abstraccin La abstraccin consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompaan. En programacin, el trmino se refiere al nfasis en el "qu hace?" ms que en el "cmo lo hace?" (Caracterstica de caja negra). El comn denominador en la evolucin de los lenguajes de programacin, desde los clsicos o imperativos hasta los orientados a objetos, ha sido el nivel de abstraccin del que cada uno de ellos hace uso. Los lenguajes de programacin son las herramientas mediante las cuales los diseadores de lenguajes pueden implementar los modelos abstractos. La abstraccin ofrecida por los lenguajes de programacin se puede dividir en dos categoras: abstraccin de datos (pertenecientes a los datos) y abstraccin de control (perteneciente a las estructuras de control). Los diferentes paradigmas de programacin han aumentado su nivel de abstraccin, comenzando desde los lenguajes de mquina, lo ms prximo al ordenador y ms lejano a la comprensin humana; pasando por los lenguajes de comandos, los imperativos, la orientacin a objetos (POO), la Programacin Orientada a Aspectos (POA); u otros paradigmas como la programacin declarativa, etc. La abstraccin encarada desde el punto de vista de la programacin orientada a objetos expresa las caractersticas esenciales de un objeto, las cuales distinguen al objeto de los dems. Adems de distinguir entre los objetos provee lmites conceptuales. Entonces se puede decir que la encapsulacin separa las caractersticas esenciales de las no esenciales dentro de un objeto. Si un objeto tiene ms caractersticas de las necesarias los mismos resultarn difciles de usar, modificar, construir y comprender. La misma genera una ilusin de simplicidad dado a que minimiza la cantidad de caractersticas que definen a un objeto. Durante aos, los programadores se han dedicado a construir aplicaciones muy parecidas que resolvan una y otra vez los mismos problemas. Para conseguir

que sus esfuerzos pudiesen ser utilizados por otras personas se cre la POO que consiste en una serie de normas para garantizar la interoperabilidad entre usuarios de manera que el cdigo se pueda reutilizar. Polimorfismo. En programacin orientada a objetos el polimorfismo se refiere a la posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza puede ser heterognea. El nico requisito que deben cumplir los objetos que se utilizan de manera polimrfica es saber responder al mensaje que se les enva. La apariencia del cdigo puede ser muy diferente dependiendo del lenguaje que se utilice, ms all de las obvias diferencias sintcticas. Por ejemplo, en un lenguaje de programacin que cuenta con un sistema de tipos dinmico (en los que las variables pueden contener datos de cualquier tipo u objetos de cualquier clase) como Smalltalk no se requiere que los objetos que se utilizan de modo polimrfico sean parte de una jerarqua de clases. En lenguajes basados en clases y con un sistema de tipos de datos fuerte (independientemente de si la verificacin se realiza en tiempo de compilacin o de ejecucin), es posible que el nico modo de poder utilizar objetos de manera polimrfica sea que compartan una raz comn, es decir, una jerarqua de clases, ya que esto proporciona la compatibilidad de tipos de datos necesaria para que sea posible utilizar una misma variable de referencia (que podr apuntar a objetos de diversas subclases de dicha jerarqua) para enviar el mismo mensaje (o un grupo de mensajes) al grupo de objetos que se tratan de manera polimrfica. En Java, es frecuente y profusamente aconsejada la utilizacin de interfaces (que es un mecanismo del lenguaje que se emplea por medio de la palabra clave Interface) para proveer la necesaria concordancia de tipos para hacer posible el polimorfismo, tambin como un contrato que debe cumplir cualquier clase que implemente una cierta interfaz y como una forma de documentacin para los desarrolladores. A veces, en la literatura que refiere especficamente a Java se hace mencin a "herencia y polimorfismo de interfaces", lo que no concuerda con los conceptos de la programacin orientada a objetos porque una clase que implementa una interfaz slo obtiene su tipo de datos y la obligacin de implementar sus mtodos, no obtiene comportamiento ni de atributos. Esto muchas veces resulta paradjico porque en Java frecuentemente se utiliza la mal llamada "herencia de interfaces" para dotar a una clase con un tipo adicional (o varios) para que su uso en combinacin con la agregacin (colaboracin o composicin) permita evitar la necesidad de la herencia mltiple y favorezca una utilizacin ms amplia del polimorfismo. No obstante, el uso de una jerarqua de clases como paso previo, es muy habitual incluso en aquellos lenguajes en los que es posible prescindir de tal jerarqua, ya que, desde una perspectiva conceptual, se puede decir que al pertenecer los "objetos polimrficos" a subclases de una misma jerarqua, se

asegura la equivalencia semntica de los mensajes que se invocarn de modo polimrfico. Por esto, en programacin orientada a objetos a veces se denomina al polimorfismo como "polimorfismo de subclase (o de subtipo)". En resumen, en la programacin orientada a objetos, la esencia del polimorfismo no atae a la clase o prototipo de la que provienen los objetos. Aun as, en los lenguajes basados en clases, es habitual (y en algunos tal vez sea el nico modo) que dichos objetos pertenezcan a subclases pertenecientes a una misma jerarqua. Entonces, el polimorfismo debe verse como una forma flexible de usar un grupo de objetos (como si fueran slo uno). Podra decirse que el polimorfismo en esencia refiere al comportamiento de los objetos, no a su pertenencia a una jerarqua de clases (o a sus tipos de datos). Encapsulamiento En Programacin modular, y ms especficamente en programacin orientada a objetos, se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro de un objeto de manera que slo se pueda cambiar mediante las operaciones definidas para ese objeto. Cada objeto est aislado del exterior, es un mdulo natural, y la aplicacin entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados de un objeto contra su modificacin por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones. De esta forma el usuario de la clase puede obviar la implementacin de los mtodos y propiedades para concentrarse slo en cmo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas.

Vous aimerez peut-être aussi