• Alumno: Pedro Beltrán Canessa • Facultad: Ingeniería • Escuela: Ingeniería de Sistemas • Universidad Los Ángeles de Chimbote • Sede: Chimbote • Curso: Tecnología de Información y Comunicaciones 16/02/2013 INGº PEDRO BELTRÁN CANESSA 1 16/02/2013 INGº PEDRO BELTRÁN CANESSA 2 PROGRAMACION EN JAVA UNIVERSIDAD LOS ÁNGELES DE CHIMBOTE CURSO: TÉCNICAS DE PROGRAMACIÓN DOCENTE RESPONSABLE: INGº PEDRO BELTRÁN CANESSA 16/02/2013 INGº PEDRO BELTRÁN CANESSA 3 PRIMERA SESIÓN DE APRENDIZAJE 16/02/2013 INGº PEDRO BELTRÁN CANESSA 4 ¿QUE CONCEPTOS BÁSICOS SE DEBEN CONOCER PARA PROGRAMAR? POR EJEMPLO, LOS SIGUIENTES: EL ALGORITMO: ES UNA SECUENCIA DE PASOS QUE PERMITEN RESOLVER UN PROBLEMA DETERMINADO. LOS ALGORITMOS SON INDEPENDIENTES DEL LENGUAJE DE PROGRAMACIÓN ASÍ COMO DEL HARDWARE A UTILIZAR. UN PROGRAMA: ESTA CONFORMADO POR UNA SERIE DE INSTRUCCIONES QUE ESPECIFICAN QUE TIPO DE OPERACIONES DEBE REALIZAR LA COMPUTADORA. TODO PROGRAMA SE ESCRIBE UTILIZANDO UN LENGUAJE DE PROGRAMACIÓN. EL LENGUAJE DE PROGRAMACIÓN: SE UTILIZA PARA ESCRIBIR PROGRAMAS, ESTO IMPLICA CONOCER LA SINTAXIS DEL LENGUAJE UTILIZADO, ASÍ COMO LAS DIFERENTES INSTRUCCIONES QUE SE PUEDEN APLICAR. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 5 ¿CÓMO ENTIENDE LA MÁQUINA EL LENGUAJE DE PROGRAMACIÓN? EXISTE UN PROGRAMA LLAMADO COMPILADOR, QUE PERMITE CONVERTIR EL PROGRAMA ELABORADO POR EL USUARIO, DENOMINADO FUENTE, ESCRITO EN LENGUAJE DE ALTO NIVEL, EN CÓDIGO BINARIO, QUE SÍ ES COMPRENDIDO POR LA MÁQUINA. DE ESTO RESULTA UN PROGRAMA LLAMADO EJECUTABLE, EL CUAL ES DIRECTAMENTE DESARROLLADO POR LA MÁQUINA DONDE RESIDE EL PROGRAMA. POR EJEMPLO: UN PROGRAMA EN C++, NECESITA DE UN COMPILADOR DE C++ PARA PODER SER EJECUTADO. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 6 COMPILACIÓN DE UN PROGRAMA ESTÁNDAR PROGRAMA FUENTE PROGRAMA COMPILADOR PROGRAMA OBJETO O PROGRAMA EJECUTABLE 16/02/2013 INGº PEDRO BELTRÁN CANESSA 7 ¿ Y QUE CLASES DE LENGUAJES DE PROGRAMACIÓN EXISTEN? LA CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN, SE HACE EN FUNCIÓN DE LA PROXIMIDAD DEL LENGUAJE, YA SEA QUE ESTÉ ORIENTADO HACIA LA MÁQUINA O HACIA EL USUARIO, LO CUAL ESTABLECE TRES CATEGORÍAS A CONSIDERAR: 16/02/2013 INGº PEDRO BELTRÁN CANESSA 8 CATEGORÍAS: 1. EL LENGUAJE DE BAJO NIVEL O LENGUAJE DE MÁQUINA: ES EL QUE ENTIENDE DIRECTAMENTE LA COMPUTADORA Y UTILIZA EL CÓDIGO BINARIO (0 y 1). POR EXCELENCIA, EL LENGUAJE DE PROGRAMACIÓN QUE MÁS SE IDENTIFICA CON ESTA CATEGORIA ES EL LENGUAJE ENSAMBLADOR (ASSEMBLER). ESTE LENGUAJE UTILIZA UNA SERIE DE INSTRUCCIONES CONOCIDAS COMO NEMOTÉCNICOS (ADD PARA LA ADICIÓN, SUB PARA LA SUSTRACCIÓN, DIV PARA LA DIVISIÓN, ETC.), EN LUGAR DE CADENA DE BYTES. 2. EL LENGUAJE DE ALTO NIVEL: SON LOS MÁS UTILIZADOS POR LOS PROGRAMADORES Y UTILIZAN PALABRAS CLAVES PARECIDAS AL LENGUAJE COMÚN UTILIZADO POR LAS PERSONAS, POR EJEMPLO: TODOS LOS LENGUAJES VISUALES. 3. EL LENGUAJE DE NIVEL MEDIO: SE CONSIDERAN EN UNA CATEGORÍA INTERMEDIA, ES DECIR QUE POSEEN CARACTERÍSTICAS DE AMBOS LENGUAJES DESCRITOS ANTERIORMENTE, POR EJEMPLO: EL LENGUAJE C++. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 9 ¿Qué es JAVA? EN LA ACTUALIDAD, ES EL LENGUAJE DE PROGRAMACIÓN, QUE SE UTILIZA CON MAS ACEPTACIÓN EN EL DESARROLLO DE SOFTWARE EMPRESARIAL. APARECE EN 1995, CUANDO LA EMPRESA SUN MICROSYSTEM LO LANZA AL MERCADO DEL SOFTWARE Y DE INMEDIATO LO INCORPORAN A DIFERENTES PRODUCTOS DE SOFTWARE. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 10 Resumen de la Historia de JAVA (I) EL ORIGEN DEL LENGUAJE JAVA TIENE DIFERENTES VERSIONES, EL SIGUIENTE ES UN BREVE RESUMEN: 1992: LA COMPAÑÍA SUN MICROSYSTEMS LLEVA A CABO EL PROYECTO “GREEN”, PARA COMUNICAR DIVERSOS APARATOS O DISPOSITIVOS ELECTRÓNICOS. EL PROTOTIPO ERA UN SISTEMA OPERATIVO DISTRIBUÍDO LLAMADO “Star7”, DONDE CADA DISPOSITIVO ERA PARTE DEL TODO. SE CREA EL LENGUAJE “OAK” CON SU RESPECTIVO INTÉRPRETE Y CLASES CON ESTE LENGUAJE PARA ELABORAR LAS GUI (GRAPHIC USER INTERFACE – INTERFAZ GRÁFICA DE USUARIO). 16/02/2013 INGº PEDRO BELTRÁN CANESSA 11 Resumen de la Historia de JAVA (II) 1993 (MARZO): LA COMPAÑÍA FIRST PERSON, SUBSIDIARIA DE SUN, RESPONDE A UNA PETICIÓN DE OFERTAS PARA EL PROYECTO DE TELEVISIÓN INTERACTIVA DE LA COMPAÑÍA TIME WARNER. ELLOS REQUERÍAN DE UN PEQUEÑO SISTEMA OPERATIVO EN MICRO CÓDIGO ORIENTADO A OBJETOS, CAPAZ DE SUMINISTRAR FLUJOS DE VIDEOS MPEG SOBRE REDES ATM. SUN PIERDE ESTE NEGOCIO Y TAMPOCO LLEGA A UN ACUERDO CON OTRA COMPAÑÍA DE TELEVISIÓN POR CABLE. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 12 Resumen de la Historia de JAVA (III) 1994: SUN IMPLEMENTA UN NAVEGADOR DE WEB LLAMADO “Web Runner”, QUE PODÍA EJECUTAR CLASES TRASFERIDAS DESDE UN SERVIDIR HTTP. ESTO SERÍA LA PRIMERA APPLET: APARECE LA ANIMACIÓN DE UNA MASCOTA LLAMADA “DUKE”, SALUDANDO DESDE UNA PÁGINA. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 13 Resumen de la Historia de JAVA (IV) 1995 (ENERO): CAMBIAN DE NOMBRE A OAK POR JAVA Y A “Web Runner” POR “Hot Java”. EN NOVIEMBRE APARECE EN LA WEB LA 1ª VERSIÓN BETA OFICIAL DE JAVA: EL JDK 1.0 (JAVA DEVELOPMENT KIT – EQUIPO DE DESARROLLO JAVA). 16/02/2013 INGº PEDRO BELTRÁN CANESSA 14 Resumen de la Historia de JAVA (V) 1995 (DICIEMBRE): SE LIBERA A EL JDK 1.1. ACTUALMENTE SE LIBERÓ LA PLATAFORMA JAVA 2 SDK STANDAR EDITION (J2SE) VERSIÓN 1.4.1 QUE ES EL PRODUCTO QUE ESTAMOS TRATANDO EN EL PRESENTE CURSO. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 15 Ediciones de JAVA SUN MICROSYSTEMS HA DESARROLLADO TRES EDICIONES DE PLATAFORMAS DIFERENTES, CADA UNA DE ELLAS DESTINADAS A CUBRIR LAS DIFERENTES NECESIDADES DE PROGRAMACIÓN EN LA EMPRESA MODERNA. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 16 Ediciones de JAVA (I) PLATAFORMA JAVA 2 SDK STANDARD EDITION (J2SE): ES LA MÁS UTILIZADA DENTRO DEL ENTORNO JAVA, PERMITE CREAR APLICACIONES DE PROPÓSITO GENERAL QUE SE PUEDEN EJECUTAR EN DIFERENTES PLATAFORMAS, ASÍ COMO APPLETS. CONTIENE UN CONJUNTO DE APIs (INTERFACES DE PROGRAMACIÓN DE APLICACIONES), QUE PERMITEN CREAR LAS APLICACIONES. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 17 Ediciones de JAVA (II) PLATAFORMA JAVA 2 SDK ENTERPRISE EDITION (J2EE): J2EE ES UNA PLATAFORMA QUE PERMITE CREAR APLICACIONES DE SERVIDOR. LAS APLICACIONES QUE SE VAN A EJECUTAR EN UN SERVIDOR, TIENEN REQUISITOS ADICIONALES EN LA FASE DE DESARROLLO QUE SON PROPORCIONADOS POR LA PLATAFORMA J2EE. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 18 Ediciones de JAVA (III) PLATAFORMA JAVA 2 SDK MICRO EDITION (J2ME): J2ME ES UNA PLATAFORMA QUE PERMITE CREAR APLICACIONES JAVA PARA MICRO DISPOSITIVOS, COMO TELÉFONOS CELULARES, PDA, DEL INGLÉS PERSONAL DIGITAL ASSISTANT (AYUDANTE PERSONAL DIGITAL), QUE ES UN COMPUTADOR DE MANO ORIGINALMENTE DISEÑADO COMO AGENDA ELECTRÓNICA (CALENDARIO, LISTA DE CONTACTOS, BLOC DE NOTAS Y MEMOS) CON UN SISTEMA DE RECONOCIMIENTO DE ESCRITURA. HOY DÍA SE PUEDE USAR COMO UNA COMPUTADORA DOMÉSTICA (VER PELÍCULAS, CREAR DOCUMENTOS, JUEGOS, CORREO ELECTRÓNICO, NAVEGAR POR INTERNET, ETC.). EN NUESTRO CURSO UTILIZAREMOS LA PLATAFORMA JAVA 2 STANDAR EDITION (J2SE). 16/02/2013 INGº PEDRO BELTRÁN CANESSA 19 ¿Es complicado programar en JAVA? EL PROPÓSITO DEL CURSO ES INICIAR AL ESTUDIANTE EN LA CREACIÓN DE PROGRAMAS UTILIZANDO JAVA EN UN PROCESO SECUENCIAL, QUE PERMITA CAPTAR LOS DIFERENTES CONCEPTOS QUE SE EXPONDRÁN EN LOS SIGUIENTES CAPÍTULOS. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 20 ¿Entonces es fácil programar en JAVA? EXISTE UNA DIFICULTAD INICIAL QUE SE DEBE DE CONOCER ANTES DE EMPEZAR A ESCRIBIR PROGRAMAS CON JAVA, Y ESTO SE DEBE A QUE EL ALUMNO SE ENCONTRARÁ CON UNA SERIE DE TÉRMINOS APARENTEMENTE DIFÍCILES Y DESCONOCIDOS DE EXPLICAR EN EL CONTEXTO. SIN EMBARGO, CONFORME VAYA AVANZANDO, SE IRÁ FAMILIARIZANDO PAULATINAMENTE Y ES POR ELLO QUE SE DEBE TENER CONOCIMIENTO DE ALGUNOS CONCEPTOS BÁSICOS QUE PERMITAN TENER UN SUSTENTO SOBRE EL CUAL SE DESARROLLEN LOS TEMAS POSTERIORES. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 21 ¿CUÁLES SON LAS PRINCIPALES APLICACIONES DE JAVA? ESTE LENGUAJE DE PROGRAMACIÓN ES UTILIZADO PRINCIPALMENTE PARA DESARROLLAR LOS SIGUIENTES TIPOS DE PROGRAMAS: 1. APLICACIONES DE PROPÓSITO GENERAL. 2. ELABORACIÓN DE APPLETS (APLICACIONES PARA INTERNET). 16/02/2013 INGº PEDRO BELTRÁN CANESSA 22 ¿ Y QUE SON LOS “APPLETS”? UN APPLET ES UNA PEQUEÑA APLICACIÓN QUE SE ALMACENA EN UN SERVIDOR WEB (HTTP: HYPERTEXT TRANSFER PROTOCOL - PROTOCOLO DE TRANSFERENCIA DE HIPERTEXTO), PARA QUE PUEDA SER ACCEDIDA POR UNA ESTACIÓN CLIENTE (PC-USUARIO), TRANSMITIDA A TRAVÉS DE LA RED (INTERNET / INTRANET), QUE SE INSTALA AUTOMÁTICAMENTE Y ES EJECUTADA POR EL PROGRAMA NAVEGADOR WEB, COMO PARTE DE UN DOCUMENTO HTML: HYPERTEXT MARKUP LANGUAGE LENGUAJE DE MARCAS HIPERTEXTUALES. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 23 ¿ PORQUÉ SE DICE QUE JAVA ES “SEGURO”? UN PROGRAMA PUEDE TENER FUNCIONES GLOBALES (FUNCIONAN PARA TODO EL PROGRAMA), Y FUNCIONES LOCALES (FUNCIONAN PARA PARTE DEL PROGRAMA). LOS PROGRAMAS DE JAVA NO PUEDEN INVOCAR A FUNCIONES GLOBALES Y TENER ACCESO A RECURSOS DEL SISTEMA DE MANERA ARBITRARIA. POR LO TANTO, SE PUEDE EJERCER UN CONTROL SOBRE LOS PROGRAMAS EJECUTABLES DE JAVA, COSA QUE NO ES POSIBLE EN OTROS PROGRAMAS. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 24 ¿ PORQUÉ SE DICE QUE JAVA ES “ROBUSTO”? JAVA VERIFICA EL CÓDIGO DEL PROGRAMA MIENTRAS SE ESCRIBE Y UNA VEZ MÁS ANTES DE EJECUTARLO. ESTO PERMITE QUE EL PROGRAMA SEA PREDECIBLE, INCLUSO BAJO DIVERSAS CONDICIONES. POR EJEMPLO: JAVA AYUDA A EVITAR FALLAS POR CONDICIONES EXCEPCIONALES, TALES COMO LA DIVISIÓN POR CERO, EL ACCESO A ARCHIVOS INEXISTENTES, ETC., MEDIANTE UN MANEJO DE EXCEPCIONES ORIENTADO A OBJETOS. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 25 ¿ QUÉ ES LA ARQUITECTURA NEUTRAL DE JAVA? CUANDO SE CREÓ JAVA, SE TOMARON EN CUENTA CIERTAS CONSIDERACIONES, DE MANERA QUE EL PROGRAMA PUEDA “ESCRIBIRSE UNA SOLA VEZ, EJECUTARSE EN CUALQUIER SITIO, EN CUALQUIER MOMENTO Y PARA SIEMPRE”. LOS PROGRAMADORES DE JAVA SE BENEFICIAN PORQUE DESARROLLAN EL CÓDIGO UNA SOLA VEZ, SIN NECESIDAD DE ADAPTAR SUS APLICACIONES A CADA UNA DE LAS PLATAFORMAS DE HW Y SW. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 26 ¿ JAVA UTILIZA COMPILADOR O INTÉRPRETE? JAVA UTILIZA AMBOS. COMO ANTERIORMENTE YA HEMOS DEFINIDO LO QUE ES UN COMPILADOR, AHORA TENDRÍAMOS QUE DEFINIR LO QUE ES UN INTÉRPRETE. UN INTÉRPRETE ES UN PROGRAMA QUE EFECTÚA LA TRADUCCIÓN Y EJECUCIÓN SIMULTÁNEA PARA CADA UNA DE LAS SENTENCIAS DEL PROGRAMA. PARA EJECUTAR UN PROGRAMA SE NECESITA DEL PROGRAMA INTÉRPRETE QUE ESTÁ INSTALADO EN LA MÁQUINA QUE SE VA A EJECUTAR. UN PROGRAMA QUE UTILIZA UN INTÉRPRETE ES MÁS LENTO QUE EL QUE UTILIZA UN COMPILADOR. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 27 ¿ CÓMO TRABAJA EL INTÉRPRETE DE JAVA? JAVA ES UN LENGUAJE INTERPRETADO Y DE ALTO RENDIMIENTO. JAVA COMPILA A UNA REPRESENTACIÓN INTERMEDIA DENOMINADA CÓDIGO DE BYTES O BYTECODES, EL QUE SE PUEDE INTERPPRETAR EN CUALQUIER SISTEMA QUE TENGA UN INTÉRPRETE DE JAVA. ESTE CÓDIGO DE BYTES O BYTECODES FUE DISEÑADO DE TAL MANERA QUE SEA SENCILLA LA TRADUCCIÓN A CÓDIGO DE MÁQUINA NATIVO. CON ESTO SE LOGRÓ QUE EL INTÉRPETE SEA DE ALTO RENDIMIENTO. CADA PARTE DE UN PROGRAMA EN JAVA SE REDUCE A UNA SECUENCIA DE BYTES QUE REPRESENTAN INSTRUCCIONES EN UNA “MÁQUINA VIRTUAL” (JAVA VIRTUAL MACHINE), Y NO EN EL PROCESADOR DE UNA MÁQUINA ESPECÍFICA. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 28 ¿Qué es un BYTECODE? • BYTECODE: CÓDIGO GENERADO POR EL COMPILADOR DE JAVA Y QUE ES EJECUTADO POR EL INTÉRPRETE DEL LENGUAJE (JVM). ES INDEPENDIENTE DE PLATAFORMA. • EL BYTECODE: RECIBE ESTE NOMBRE PORQUE GENERALMENTE CADA CÓDIGO DE OPERACIÓN TIENE UNA LONGITUD DE UN BYTE, SI BIEN LA LONGITUD DEL CÓDIGO DE LAS INSTRUCCIONES VARÍA, CADA INSTRUCCIÓN TIENE UN CÓDIGO DE OPERACIÓN ENTRE 0 Y 255 SEGUIDO DE PARÁMETROS TALES COMO LOS REGISTROS O LAS DIRECCIONES DE MEMORIA. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 29 ¿Qué es un Archivo o Fichero de BYTECODES? CON JAVA, SE PUEDE “ESCRIBIR UNA VEZ Y EJECUTAR EN CUALQUIER PARTE”. ESTO SIGNIFICA QUE CUANDO SE COMPILA UN PROGRAMA NO SE GENERAN INSTRUCCIONES PARA UNA PLATAFORMA ESPECÍFICA. EN SU LUGAR, SE GENERAN BYTECODES JAVA QUE SON INSTRUCCIONES PARA LA “MÁQUINA VIRTUAL JAVA” (JVM). SI LA PLATAFORMA ES WINDOWS, LINUX, ETC. O UN NAVEGADOR DE INTERNET QUE TIENE INSTALADA LA JVM, PODRÁ ENTENDER LOS BYTECODES. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 30 PROGRAMA FUENTE (USUARIO) 1 2 COMPILADOR (CÓDIGO BINARIO) 3 5 INSTRUCCIONES EN JAVA (MÁQUINA VIRTUAL DE JAVA) 4 INTÉRPRETE (CÓDIGO DE BYTES O BYTECODES) PROGRAMA EN JAVA 16/02/2013 INGº PEDRO BELTRÁN CANESSA 31 ¿ CÓMO SE CREA UNA APLICACIÓN CON JAVA? PRIMERO SE CREA UN FICHERO JAVA: UN PROGRAMA O FICHERO FUENTE CONTIENE UN TEXTO ESCRITO EN UN PROCESADOR O EDITOR DE TEXTOS, TALES COMO EL WRITER, EL WORD O EL BLOC DE NOTAS, TAMBIÉN SE PUEDE UTILIZAR EL EDITOR DEL PROPIO JAVA. AL CREAR EL ARCHIVO, SE DEBERÁ DE OBSERVAR QUE ESTE SE GUARDE CON UNA EXTENSIÓN .java. SEGUNDO SE COMPILA EL ARCHIVO O FICHERO FUENTE: PARA EJECUTAR EL PROGRAMA CONTENIDO EN EL FICHERO FUENTE, QUE PREVIAMENTE SE TRADUJO A FICHERO DE CÓDIGO DE BYTES O BYTECODES, SE DEBE UTILIZAR LA “MÁQUINA VIRTUAL DE JAVA” QUE ESTÁ IMPLEMENTADA CON UN INTÉRPRETE JAVA. ESTE INTÉRPRETE TOMA EL FICHERO DE BYTECODES Y EJECUTA LAS INSTRUCCIONES, TRADUCIÉNDOLAS A OTRAS INSTRUCCIONES QUE EL PROCESADOR DEL COMPUTADOR PUEDE ENTENDER. 16/02/2013 INGº PEDRO BELTRÁN CANESSA 32