Sept.2011 TAP día 1 15/09/2011 El resto del curso seguirá el camino que se irá marcando a través de los.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 2: TECNOLOGÍA JAVA Ing. Ronald Criollo.
Advertisements

INTRODUCCIÓN A LA INFORMÁTICA EDUCATIVA Software de Aplicaciones
Introducción a la Programación
Sun Microsystems desarrolló, en 1991, el lenguaje de programación orientado a objetos que se conoce como Java. La intención de Sun era crear un lenguaje.
Complejidad Computacional
Complejidad Computacional
Características Generales y Entornos de Desarrollo
Framework de.Net Infraestructura sobre la que se reúne todo un conjunto de lenguajes y servicios que simplifican el desarrollo de aplicaciones Entorno.
La plataforma .NET David Carmona
Curso de java básico (scjp)
Curso de Java Capitulo 1: Introducción a Java Profesor:
Introducción a la programación en JAVA
Programación Interactiva Introducción a Java
LEgo Java Operating System (LeJOS)
Esta obra está bajo una licencia de Creative Commons.
TEMA 3 Parte A Lenguajes de programación. Criterios de clasificación según su nivel de abstracción según la forma de ejecución según el paradigma de programación.
Tecnologías para desarrollo de aplicaciones web. Un caso de uso
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
JAVA mas que un lenguaje – una tecnología Ing. Eduardo Fernández.
INSTITUTO TECNOLOGICO DE MINATITLAN
INSTITUTO TECNOLOGICO DE MINATITLAN
Programación Visual de Sistemas
Entornos de programación
Tema 1 Introducción a la programación (Lenguaje java).
Introducción a la programación
© Manuel ColladoEntornos de Programación-1 Entornos de programación Concepto, funciones y tipos.
Primer Programa en JAVA
El paradigma de la orientación a objetos La programación orientada a objetos genera códigos eficientes y estandariza la metodología de programación, además.
Java Mayra M. Méndez Anota.
Tema 6: Clases Antonio J. Sierra.
Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.
ALGORITMOS, LENGUAJES Y TECNICAS DE PROGRAMACION
Paradigmas de Programación
TALLER DE PROGRAMACIÓN III
Introducción a la Programación. Lenguaje de Máquina.
Programación e Ingeniería de Software III
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Entornos de Desarrollo
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
 Un programa informático es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora. Sin programas, estas.
Ejecución de un programa escrito en Java Java es un lenguaje que se ejecuta con un intérprete a diferencia de Pascal o C que se compilan para producir.
Curso de Java La tecnología Java
Leonard Camacho. DCom  Tecnología propietaria de Microsoft.  Extiende el modelo COM de Microsoft.  La “D” es debido al uso de su versión DCE/RCP, conocida.
 Los diseños para los lenguajes de programación han ido evolucionando desde que aparecieron los lenguajes de alto nivel que en su momento eran los de.
Seminario de Java Programación Orientada a Objetos.
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
 Un LENGUAJE DE PROGRAMACION es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas al cabo por maquinas como las computadoras.
Introducción al lenguaje de programación Java
Tema 6. Introducción a la programación
Programación Java y Desarrollo de Aplicaciones
PROGRAMACION presentado por: Jhon Viasus Fabian Valencia.
Programación Java y Desarrollo de Aplicaciones Modulo 3 Lenguaje de programación Java Software utilizado.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
Prof. Flor Narciso Departamento de Computación
Desarrollo DE apps móviles
ISAES Universidad Fundamentos de la tecnología
Lenguaje programación
Naime Cecilia del Toro Alvarez
Desarrollo DE apps móviles
Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 3 Programas.
¿ Por que utilizar Java y la POO
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
Diseño y Programación Orientados a Objetos1 Introducción a Java.
HISTORIA DE LOS LENGUJAES DE PROGRAMACIÓN HARDWARE: Computadoras primivas en programación MÉTODOS: Subprogramas Estructuras de datos Posibilidad.
Entorno de Trabajo e Introducción a Java Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 1.
Clase 2: introducción (2ª parte) iic1102 – introducción a la programación.
TAP día /09/2011 El resto del curso seguirá el camino que se irá marcando a través de los tutoriales de.
Historia de los Lenguajes de Programación.
Transcripción de la presentación:

Sept.2011 TAP día 1 15/09/2011 El resto del curso seguirá el camino que se irá marcando a través de los tutoriales de Java en la web de Oracle

¿Dónde esta Java en el universo del los lenguajes?... Situando el lenguaje en diferentes aspectos a considerar antes de empezar

FORTRAN PASCAL COBOL APL LISP JAVA RUBY PYTHON C BASIC FORTH TCL C# PERL JAVASCRIPT ADA PROLOG PHP

La Programación ES y VIENE DE las Matemáticas… (como parte de la computación) Del concepto de calculabilidad efectiva a una Clasificación general de lenguajes Lenguajes Funcionales Lisp Scheme ML Hope CLOS... Imperativos Fortran Cobol Pascal C... Lógicos Prolog... O/B objetos Object Pascal C++ Java... Alonzo Church Alan Turing Cálculo Lambda Máquina de Turing Sin olvidar las funciones recursivas de Herbrand-Gödel" Euclides (Método axiomático), Aristóteles(Lógica formal), Muhammad ibn Musa Al’Khowarizmi (Algorítmo)… Frameworks Ruby on Rails... HILBERT

Fortran Algol 68 Mesa Smalltalk-80 Algol 60 Pascal Modula-2 Oberon Simula 67 CSP* Pascal Concurrente Distributed Processes Ada CPL* BCPL C C++ JAVA BASIC Visual BASIC PERLTCL Python JavaScript RExx sh, csh,ksh,.. “C ” Prolog Lisp Scheme ISWIM* ML Standard ML Common Lisp CLOS A B

ABC, AD, Algol, Alpha, Applescript, AspectJ, Beta, Boo, C shell, cg, Ch, Clean, cT, Curl, Dylan, Eiffel, Factor, Felix, Focus, Icon, IDL, Inform, Io, MAD, Magic, Maple, Mathematica, Modula-2, MOO, MUMPS, Oberon, Occam, Oz, Pike, PILOT, Postscript, PowerBuilder, Progress, Q, REALbasic, Rebol, S-lang, Scala, SIGNAL, SPSS, TOM, VBScript, Verilog, VHDL, XSLT 21 a a 100 Ordenación de lenguajes por uso

A Java se le ha “acusado” desde un principio de ser LENTO. Al principio era cierto. Relación 4/1 frente a C Razón principal: lenguaje interpretado Otras razones: recogida de basuras, mecanismos de seguridad, etc Desde hace unos años es comparable a C, dependiendo de en qué tareas. Ciertamente no es el mejor caso el del cómputo intensivo (estimaciones de un estudio particular 2004). En gráficos bate a C Relación media: 1.4/1 frente a C si excluimos gráficos En cálculo intensivo la diferencia es más acusada Actualmente Java es más rápido que C en muchas tareas (particularmente gráficos) y similar en los peores casos (cómputo intensivo) Máquina HotSpot Java (los lenguajes sobre máquinas virtuales en general) serán los más rápidos en el futuro (ante cómputos complejos, no para el caso de algoritmos muy “cerrados”) Ejemplo peor caso Java vs. C (14ago08) (cálculo de PI por MonteCarlo) La relación de tiempo de ejecución es del orden de 3,5 a favor de C La relación de tiempo de preparación del experimento a partir del código tomado de ha sido del orden de 120 a favor de Java JAVA: copiar, pegar, compilar, ejecutar y listo en unos segundos. C: copiar pegar, compilar, corregir fuente, compilar, ejecutar, observar falta de resolución de la función “time”, ir a la bibliografía para resolver el tema, no encontrar solución, reescribir con itreraciones para obtener tiempos mayores, compilar, resolver problemas de apuntadores, compilar, ejecutar, resolver problemas de violación de segmentos, compilar, ejecutar y listo en una hora a causa de las iteraciones en la búsqueda de precisión. Falta de precisión en la medida de C

La máquina virtual. "Write Once, Run Anywhere" Una idea novedosa, pero no del todo: cierta similitud con los lenguajes con código intermedio. Sí es novedoso el enfoque de emulador de máquina. Ventajas: se pueden incluir con facilidad técnicas que en un diseño hardware pueden resultar prohibitivas por su complejidad técnica, la posibilidad de evolución es mucho más sencilla al no requerir cambios de hardware permite utilizar las "plataformas" existentes sin implicar una ruptura con los sistemas actuales (existe la máquina real pero…). el diseño es público y la "implementación" es privada ( especificaciones técnicas que debe complir toda JVM. ). especificaciones técnicas que debe complir toda JVM Distintos comportamientos en términos de velocidad y uso de memoria

2.Desarrollo en Java. Ideas globales y material necesario

El JDK.

Herramientas de desarrollo: javac (compilador), java (máquina virtual), jdb (debugger), javadoc (documentador), jar (compactador), javap (desensamblador), extcheck (verificador de.jar), etc. Java Runtime Environment. Máquina virtual, Biblioteca de clases y todo lo necesario para dar soporte a aplicaciones [compiladas] java. Librerias adicionales para desarrollo. Cabeceras para métodos nativos. Con el directorio “bin” en el PATH, y la variable JAVA-HOME= podemos desarrollar nuestro primer programa. // // Aplicación ejemplo "HolaMundo" // public class HolaMundo { public static void main(String[] args) { System.out.println("Hola, mundo"); } Prompt> javac HolaMundo.java Prompt> java HolaMundo Hola, Mundo Prompt> V+A Instalando el JDK.

Compilar y ejecutar

El “Manifest.mf” debe situarse en una sub-carpeta denominada “meta-inf” Uso de ficheros “Jar”

El “bin”

bin:Javadoc La documentación del código desarrollado esta ligada al mismo y se genera automáticamente mediante javadoc

Core Java 2 (Java1.3) Contenido de C:\...\jdk1.3\jre\lib\rt.jar 2008: mucho más de lo mostrado aquí jre/lib - biblioteca “rt”

Documentación de bibliotecas

Imagen global del marco de trabajo Java (VER SAUTRELA)

Desensamblado y decompilación (Decompilación: probar con Jode y SAUTRELA) “Ofuscacion” C:>javap -c HolaMundo Compiled from "HolaMundo.java" public class HolaMundo extends java.lang.Object{ public HolaMundo(); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object." ":()V 4: return public static void main(java.lang.String[]); Code: 0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #3; //String Hola, mundo 5: invokevirtual #4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return }

ECLIPSE (.org) NETBEANS(.org) Comunidad de desarrollo en código abierto Proyectos enfocados al desarrollo de una plataforma de marcos extensibles, herramientas y ejecutables para construir, implantar y gestionar software a lo largo de todo su ciclo de vida. Un “vibrante” y “amplio” ecosistema de grandes fabricantes de tecnología, innovadoras start-ups, universidades, instituciones de investigación y particulares. Un IDE de código abierto gratis para desarrolladores de software. Proporciona todas las herramientas para crear aplicaciones profesionales de sobremesa, de empresa, web y móviles, con Java, C/C++, y Ruby. NetBeans es fácil de instalar y usar de inmediato, y corre en numerosas plataformas incluyendo Windows, Linux, Mac OS X y Solaris. IDEs de ayuda al desarrollo

Una defensa de Netbeans frente al resto. (desde el desconocimiento del resto) - El slogan de Netbeans 6 es “The only IDE you need!”, y probablemente no sea sólo un slogan sino una verdad absoluta. - El competidor más importante es Eclipse, aunque también están en el juego Jbuilder (Borland) y Java Studio (Creator/ Entrprise). -Jbuilder fue importante hasta hace un par de años al destacar en varios aspectos (p.ej. integración de UML), pero los esquemas de desarrollo en comunidad de Netbeans y Eclipse lo han superado (sin dejar de ser un buen entorno) - Java Studio es el IDE de SUN. Los padres de la tecnología Java han luchado siempre por liderar la oferta de entornos de desarrollo para Java con interesantes iniciativas y con dedicación de medios, pero su éxito ha sido más bien escaso. Su propia consciencia de este hecho les ha llevado, desde hace varios años, a apoyar Netbeans “oficialmente” (es el IDE descargable como “bundle” con el kit de desarrollo de la web de SUN) sin que hayan renunciado a su propio sistema (¿?) - Eclipse puede ser comparable a Netbeans (¿superior?), pero su modelo de desarrollo es comercial, por lo que nos podemos encontrar con que una determinada capacidad que nos resulte interesante sea de pago (Actualmente no se exige el “ánimo” comercial y se sigue un esquema mixto) -La comparación de netbeans.og frente a eclipse.org muestra netamente una mejor atención en la primera, así como la aplicación de las últimas técnicas web (Web 3.0) IDEs de ayuda al desarrollo

Diag. de clases Diag. de secuencia Diag. de estados Diag. de actividad Diag. de implantación Diag. de casos de uso Desarrollo mediante modelado: UML