TAP día 1 http://download.oracle.com/javase/tutorial/ 15/09/2011 El resto del curso seguirá el camino que se irá marcando a través de los tutoriales de.

Slides:



Advertisements
Presentaciones similares
Introducción a la Programación
Advertisements

Características Generales y Entornos de Desarrollo
Programación Interactiva Introducción a Java
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.
Java Mayra M. Méndez Anota.
PRINCIPIOS DE PROGRAMACION
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.
Curso de Java La tecnología Java
 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.
 Un LENGUAJE DE PROGRAMACION es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas al cabo por maquinas como las computadoras.
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
Desarrollo DE apps móviles
Desarrollo DE apps móviles
Clase práctica Nº 1. Introducción al entorno de desarrollo Eclipse. Dpto. de Ciencias e Ingeniería de la Computación. Universidad Nacional del Sur.
Tema 2 : Java Básico Conferencia 2 El entorno de desarrollo.
COMUNICACIÓN Y TIC Ángela Espinosa Hayler Peñaranda.
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN.
Pruebas de Funcionalidad de Software: Caja Negra y Caja Blanca Curso: Diseño de Sistemas 9no. Semestre.
Herencia Multiple en Java
INTRODUCCIÓN. Una computador u ordenador se compone principalmente del software, que se refiere al conjunto de programas, instrucciones y reglas informáticas,
Diseño y Programación Orientados a Objetos
Iniciación a Android Dia 1: Instalación Android Studio - 1h
DESARROLLO DE APPS MÓVILES Introducción
Diseño y Programación Orientados a Objetos
LOS DIFERENTES LENGUAJES DE PROGRAMACION PARA LA WEB
Diseño y Programación Orientados a Objetos
Historia de los Lenguajes de Programación.
PROGRAMACIÓN (1).
Ingeniero en Computación José Alfredo Cobián Campos
Agustín J. González Programación de Sistemas: ELO-330
LENGUAJE DE PROGRAMACIÓN Y SOFTWARE PROPIETARIO
Oscar Martin Tirado Ochoa
UNIVERSIDAD PEDAGÓGICA NACIONAL FRANCISCO MORAZÁN
Lenguajes de programación Lara Pedraza Cindy Denise Alvarez Guzman Marco Antonio Reyes Valdespino Israel ALA Gomez Cañedo natanael.
Tema 3. Lenguaje unificado de modelado UML
Tecnología de la Información Software
Tecnología de la Información Profesora Ariana Rosenthal Software
 PhoneGap es un framework de código libre para el desarrollo de aplicaciones móviles. Su principal característica: multiplataforma, es decir, con un.
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
Prof. Ofelia Verónica Méndez Lemus Prof. Erika C. Calderón García
Avalos Vega Claudia Judith
Tema 1 El entorno de desarrollo de C#
INTRODUCCIÓN A JAVA.
Diseño y Programación Orientados a Objetos
Java Historia Datos ¿ Por qué eligen Java ?.
CONCEPTOS PRELIMINARES (Cont)
INTRODUCCIÓN ING. IVONNE MALDONADO. PROGRAMACIÓN Programar no es mas que idear y ordenar las acciones. Lograr que un programa cumpla con una cierta tarea.
INTRODUCCIÓN A JAVA.
Conceptos básicos de.NET Explorar el entorno de desarrollo Crear un proyecto Visual Basic.NET Use Visual Studio.NET Acceso a datos Depurar e implantar.
Tema 1 Introducción a las Ciencias de la Computación
LENGUAJE DE SCRIPTING EN SERVIDORES WEB INTEGRANTES :JOSTIN FRANCO DARYENIS ARAUZ PABLO CANDANEDO.
UNIVERSIDAD DEL VALLE Docente: MsC. Cinthya Irene Rosales Martinez Facultad de Ingeniería Lenguajes de Programación.
QUE ES UN SISTEMA OPERATIVO ANDROID  Es un Sistema Operativo además de una plataforma de Software basada en el núcleo de Linux.  Permite controlar dispositivos.
Programación Orientada a Objetos. ¿Qué es un ordenador? “Un sistema digital con tecnología microelectrónica capaz de procesar información a partir de.
Características Generales y Entornos de Desarrollo
Fundamentos de la Programación I
Fundamentos de la Programación I
Entendiendo PHP En diseño de software en el Front-end es la parte del software que interactúa con los usuarios. Es la persona que se encarga del diseño.
Informática Aplicada al Medio Ambiente - Curso 99/00 1 Tema 6. Introducción a la programación 1 Conceptos básicos 2 Los algoritmos – Concepto de algoritmo.
“Conceptos Básicos de Java”
Informática Aplicada al Medio Ambiente - Curso 99/00 1 Tema 6. Introducción a la programación 1 Conceptos básicos 2 Los algoritmos – Concepto de algoritmo.
Última revisión: 2 de agosto de 2014
Diseño y Programación Orientados a Objetos
Ingeniería de Sistemas. Programación II Python ¿Qué es Python? Python es un lenguaje de programación creado por Guido Van Rossum a principios de los.
Diseño y Programación Orientados a Objetos
Informática Aplicada al Medio Ambiente - Curso 99/00 1 Tema 6. Introducción a la programación 1 Conceptos básicos 2 Los algoritmos – Concepto de algoritmo.
1 PROGRAMACION ORIENTADA A OBJETOS MARIA LAURA ESPIN B. INSTITUTO TECNOLÓGICO SUPERIOR ÁNGEL POLIBIO CHÁVEZ TECNOLOGÍA SUPERIOR EN DESARROLLO DE SOFTWARE.
EVOLUCIÓN DE LOS PARADIGMAS DE PROGRAMACIÓN Integrantes: Christian Abad, Kevin Colcha.
Tema 1 Introducción a la programación (Lenguaje java). 1.1 Conceptos básicos.
Transcripción de la presentación:

TAP día 1 http://download.oracle.com/javase/tutorial/ 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 http://download.oracle.com/javase/tutorial/ german.bordel@ehu.es http://gtts.ehu.es/German Sept.2011

1.- ¿Dónde esta Java en el universo del los lenguajes?... Situando el lenguaje en diferentes aspectos a considerar antes de empezar german.bordel@ehu.es http://gtts.ehu.es/German

german.bordel@ehu.es http://gtts.ehu.es/German FORTH TCL FORTRAN PASCAL COBOL APL LISP JAVA RUBY PYTHON C BASIC FORTH TCL C# PERL JAVASCRIPT ADA PROLOG PHP german.bordel@ehu.es http://gtts.ehu.es/German

1928 1938 Lenguajes Fortran Cobol Pascal C ... Lisp Scheme ML Hope 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 Euclides (Método axiomático), Aristóteles(Lógica formal), Muhammad ibn Musa Al’Khowarizmi (Algorítmo)… HILBERT 1928 1938 Máquina de Turing Alan Turing Alonzo Church Cálculo Lambda Sin olvidar las funciones recursivas de Herbrand-Gödel" Lenguajes Imperativos Fortran Cobol Pascal C ... Funcionales Lisp Scheme ML Hope CLOS ... Lógicos Prolog ... O/B objetos Object Pascal C++ Java ... Frameworks Ruby on Rails ... german.bordel@ehu.es http://gtts.ehu.es/German

60 70 80 90 A B Fortran Algol 68 Mesa Prolog Lisp Scheme ISWIM* ML Standard ML Common Lisp CLOS Algol 60 Pascal Modula-2 Oberon 60 70 80 90 CPL* BASIC BCPL Simula 67 sh, csh,ksh,.. C CSP* Pascal Concurrente Distributed Processes Ada RExx Smalltalk-80 C++ PERL TCL Visual BASIC “C++ ++ --” Python JAVA JavaScript german.bordel@ehu.es http://gtts.ehu.es/German

Ordenación de lenguajes por uso http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 21 a 50 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 51 a 100 german.bordel@ehu.es http://gtts.ehu.es/German

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 http://husnusensoy.blogspot.com/2006/06/c-vs-java-in-number-crunching.html 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 german.bordel@ehu.es http://gtts.ehu.es/German

"Write Once, Run Anywhere" 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. ). Distintos comportamientos en términos de velocidad y uso de memoria german.bordel@ehu.es http://gtts.ehu.es/German

Desarrollo en Java. Ideas globales y material necesario german.bordel@ehu.es http://gtts.ehu.es/German

El JDK. german.bordel@ehu.es http://gtts.ehu.es/German

Herramientas de desarrollo: Instalando 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. V+A V+A Con el directorio “bin” en el PATH, y la variable JAVA-HOME=<path de jdk1.6.0_07> 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> german.bordel@ehu.es http://gtts.ehu.es/German

Compilar y ejecutar german.bordel@ehu.es http://gtts.ehu.es/German

Uso de ficheros “Jar” El “Manifest.mf” debe situarse en una sub-carpeta denominada “meta-inf” german.bordel@ehu.es http://gtts.ehu.es/German

El “bin” german.bordel@ehu.es http://gtts.ehu.es/German

bin:Javadoc german.bordel@ehu.es http://gtts.ehu.es/German La documentación del código desarrollado esta ligada al mismo y se genera automáticamente mediante javadoc german.bordel@ehu.es http://gtts.ehu.es/German

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

Documentación de bibliotecas http://java.sun.com/javase/6/docs/api/ german.bordel@ehu.es http://gtts.ehu.es/German

Imagen global del marco de trabajo Java (VER SAUTRELA) german.bordel@ehu.es http://gtts.ehu.es/German

(Decompilación: probar con Jode y SAUTRELA) Desensamblado y decompilación 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."<init>":()V 4: return public static void main(java.lang.String[]); 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 } (Decompilación: probar con Jode y SAUTRELA) “Ofuscacion” german.bordel@ehu.es http://gtts.ehu.es/German

ECLIPSE (.org) NETBEANS(.org) IDEs de ayuda al desarrollo 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. NETBEANS(.org) 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. german.bordel@ehu.es http://gtts.ehu.es/German

Una defensa de Netbeans frente al resto. 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) german.bordel@ehu.es http://gtts.ehu.es/German

Desarrollo mediante modelado: UML Diag. de casos de uso Diag. de clases Diag. de secuencia Diag. de actividad Diag. de estados Diag. de implantación german.bordel@ehu.es http://gtts.ehu.es/German