java 2. curso de programación

Upload: itzama-vasquez

Post on 19-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 Java 2. Curso de Programacin.

    1/15

    Fases en el desarrollo de un programa

    En este captulo aprender lo que es un programa, cmo escribirlo y qu hacerpara que el ordenador lo ejecute y muestre los resultados perseguidos.

    Tambin adquirir conocimientos generales acerca de los lenguajes deprogramacin utilizados para escribir programas. espus, nos centraremos enun lenguaje de programacin espec!co y objeti"o de este libro, Java,presentando sus antecedentes y marcando la pauta a seguir para realzar unprograma sencillo.

    #u es un programa

    $robablemente alguna "ez haya utilizado un ordenador para escribir undocumento o para di"ertirse con un juego. %ecuerde que en el caso de escribirun documento, primero tu"o que poner en marcha un procesador de te&tos, yque si quiso di"ertirse con un juego, lo primero que tu"o que hacer 'ue poneren marcha el juego. Tanto en el procesador de te&tos como el juego son

    programasde ordenador.

    $oner un programa en marcha es sinnimo de ejecutarlo. (uando ejecutamosun programa, nosotros slo "emos el resultado que produce )el procesador dete&tos muestra en la pantalla el te&to que escribimos* el juego "isualiza sobrela pantalla las imgenes que "an sucediendo+ pero no "emos es guion seguidopor el ordenador para conseguir estos resultados. Ese guion es el programa.

    hora, si nosotros escribimos un programa, entonces s que sabemos cmotrabaja y por qu trabaja de esa 'orma. Esto es una 'orma muy di'erente ycuriosa de "er un programa de ordenador. -o cual no tiene nada que "er con lae&periencia adquirida en la ejecucin de distintos programas.

    hora piense en un juego cualquiera. -a pregunta es, qu hacemos siqueremos ense/ar a otra persona a jugar0 -gicamente le e&plicamos lo quese debe hacer* esto es, los pasos que tiene que seguir. icho de otra 'orma, ledamos instrucciones de cmo debe actuar. Esto es lo que hace un programa deordenador. 1n programano es ms que una serie de instrucciones dada alordenador en un lenguaje entendido por l, para decirle e&actamente lo quequeremos que haga. 2i el ordenador no entiende alguna instruccin, locomunicar generalmente mediante mensajes "isualizados en la pantalla.

    -enguajes de programacin

    1n programa tiene que escribirse en un leguaje entendible por el ordenador.esde el punto de "ista 'sico, un ordenador es una mquina electrnica. -oselementos 'sicos )memoria, unidad central de proceso, etc.+ de que dispone elordenador para representar los datos son de tipo "iario* esto es, cada elementopuede di'erenciar dos estados )dos ni"eles de "oltaje+. (ada estado se

  • 7/23/2019 Java 2. Curso de Programacin.

    2/15

    denomina genricamente bit y se simboliza por 3 o 4. $or tanto, pararepresentar y manipular in'ormacin numrica, al'abtica y al'anumrica seemplean cadenas de bits. 2eg5n esto, se denomina byte a la cantidad dein'ormacin empleada por un ordenador para representar un carcter*generalmente un byte es una cadena de ocho bits.

    s, por ejemplo, cuando un programa le dice al ordenador que "isualice unmensaje sobre el monitor, o que imprima sobre una impresora, lasinstrucciones correspondientes para lle"ar a cabo esta accin, para que puedanser entendibles por el ordenador, tienen que estar almacenadas en la memoriacomo cadenas de bits. Esto hace pensar que escribir un programa utilizando

    ceros y unos )lenguaje mquina+, lle"ara mucho tiempo y con muchasposibilidades de cometer errores. $or este moti"o, se desarrollan lenguajesensambladores.

    1n lenguaje ensamblador utiliza cdigos nemotcnicos para indicarle alhard6are )componentes 'sicos del ordenador+ las operaciones que tiene querealizar. 1n cdigo nemotcnico es una palabra o abre"iatura 'cil de recordarque representa una tarea que debe realizar el procesador del ordenador. $orejemplo.

    789 :, ;(:

    El cdigo MOVe&presa una operacin consistente en mo"er alguna in'ormacindesde una posicin de memoria a otra.

    $ara traducir un programa escrito en ensamblador a lenguaje mquina )cdigobinario+ se utiliza un programa llamado ensamblador que ejecutamos medianteel propio ordenador. Este programa tomar como datos nuestro programaescrito en lenguaje mquina, lenguaje que entiende el ordenador.

  • 7/23/2019 Java 2. Curso de Programacin.

    3/15

    (ada modelo de ordenador, dependiendo del procesador que utilice, tiene supropio lenguaje ensamblador. ebido esto decimos que estos lenguajes estnorientados a la mquina.

    :oy en da son ms utilizados los lenguajes orientados al problema o lenguajesde alto ni"el. Estos lenguajes utilizan una terminologa 'cilmente comprensibleque se apro&ima ms al lenguaje humano. En este caso la traduccin eslle"ada a cabo por otro programa denominado compilador.

    (ada sentencia de un programa escrita en un lenguaje de alto ni"el sedescompone en general en "arias instrucciones en ensamblador. $or ejemplontel, 2parA,7otorola, etc.+ que tenga instalada una mquina "irtual =a"a y ejecutarse.$ensando en >nternet esta caracterstica por ejemplo, es independiente de laplata'orma slo en cdigo 'uente, lo cual signi!ca que cada plata'ormadi'erente debe proporcionar el compilador adecuado para obtener el cdigomquina que tiene que ejecutarse.

    2eg5n lo e&puesto, =a"a incluye dos elementos< un !ompiladory un int#rprete.El compilador produce un cdigo de bytes que se almacena en un !chero paraser ejecutado por el intrprete =a"a denominado m$%ina virtal de =a"a.

    Imagen pgina 7.

  • 7/23/2019 Java 2. Curso de Programacin.

    5/15

    -os cdigos de bytes de =a"a son un conjunto de instruccionescorrespondientes a un lenguaje mquina que no es espec!co de ning5nprocesador si no de la mquina "irtual de =a"a. nde consigue esta mquina"irtual0 :oy en da casi todas las compa/as de sistemas operati"os yna"egadores han implementado mquinas "irtuales seg5n las especi!caciones

    publicadas por Sn Mi!rosystems, propietario de =a"a, para que seancompatibles con el lenguaje =a"a. $ara las aplicaciones de internet )porejemplo, los applets + la mquina "irtual est incluida en el na"egador y paralas aplicaciones =a"a con"encionales, puede "enir con el sistema operati"o, conel paquete de =a"a, o bien puede obtenerse a tra"s de internet.

    $or qu no se dise/ =a"a para que 'uera un intrprete ms entre los que hayen el mercado0 -a respuesta es porque la interpretacin, si bien es cierto queproporciona independencia de la mquina, conlle"a tambin a un problemagra"e, y es la prdida de "elocidad en la ejecucin del programa. $or estarazn la solucin 'ue dise/ar un compilador que produjera un lenguaje que

    pudiera ser interpretado a "elocidades, si no iguales, s cercanas a la de losprogramas nati"os )programas en cdigo mquina propio de cada ordenador+,logro conseguido mediante la mquina "irtual de =a"a.

    (on todo, las aplicaciones toda"a adolecen de una 'alta de rendimientoapreciable. Bste conjunto de los problemas que siempre se ha acachado a =a"a.'ortunadamente, la di'erencia de rendimiento con respecto a aplicacionesequi"alentes escritas en cdigo mquina nati"o ha ido disminuyendo hastamrgenes muy reducidos gracias a la utilizacin de compiladores =>T )Jst &n'ime Ccompilacin al instante+. 1n compilador =>T interacciona con la mquina"irtual para con"ertir el cdigo de bytes en cdigo mquina nati"o. (omoconsecuencia, se mejora la "elocidad durante la ejecucin.

    :istoria de ja"a

    El lenguaje de programacin =a"a 'ue desarrollado por 2un 7icrosystems en4DD4. ace como parte de un proyecto de in"estigacin para desarrollarso't6are para comunicacin entre aparatos electrnicos de consumo como"deos, tele"isores, equipos de m5sica, etc. urante la 'ase de in"estigacinsurgi un problema que di!cultaba enormemente el proyecto iniciado< cadaaparato tena un microprocesador di'erente y muy poco espacio de memoria*esto pro"oc un cambio en el rumbo de la in"estigacin independiente deldispositi"o que 'ue bautizado inicialmente como Oa.

    -a e&plosin de internet en 4DD;, gracias al na"egador gr!co Mosai! para laord ide eb (),no pas desapercibida para el grupo in"estigador de2un. 2e dieron cuenta de que los logros alcanzados en su proyecto dein"estigacin eran per'ectamente aplicables a internet. (omparati"amente,internet era como un gran conjunto de aparatos electrnicos de consumo, cada

  • 7/23/2019 Java 2. Curso de Programacin.

    6/15

    uno con un procesador di'erente. @ es cierto* bsicamente, internet es una granred mundial que conecta m5ltiples ordenadores con di'erentes sistemasoperati"os y di'erentes arquitecturas de microprocesadores, pero todos tienenen com5n un na"egador que utilizan para comunicarse entre s. Esta idea hizoque el grupo in"estigador abandonara el proyecto de desarrollar un lenguaje

    que permitiera la comunicacin entre aparatos electrnicos de consumo ydirigiera sus in"estigaciones hacia el desarrollo de un lenguaje que permitieracrear aplicaciones que se ejecutaran en cualquier ordenador de internet con el5nico soporte de na"egador.

    partir de aqu todo es conocido. 2e empez a hablar de =a"a y de susaplicaciones conocidas como applets. 1n applet es un programa escrito en =a"aque se ejecuta en el conte&to de una pgina eb en cualquier ordenador,independientemente de su sistema operati"o y de la arquitectura de suprocesador. $ara ejecutar un applet solo se necesita un na"egador que soportela mquina "irtual de =a"a como, por ejemplo, Mi!rosoft &nternet *+plorer o

    Moilla -irefo+. 1tilizando un na"egador de stos, se puede descargar la pginaeb que contiene applet y ejecutarlo. $recisamente en este campo, a =a"acomo lenguaje de programacin le han salido otros competidores como7icroso't .ET que o'rece una mquina "irtual, (-%, que admite "arioslenguajes como (, 9isual Gasic, (H(II, etc. =a"a tambin puede utilizarsecomo un lenguaje de propsito general, pero desde este punto de "ista, hoypor hoy, =a"a tiene muchos competidores que le sobrepasan con claridad* porejemplo (II, da o 9isual Gasic.

    $or qu aprender =a"a0

    1na de las "entajas ms signi!cati"as de =a"a es su independencia de laplata'orma. En el caso de que tenga que desarrollar aplicaciones que tenga queejecutarse en sistemas di'erentes, esta caracterstica es 'undamental.

    8tra caracterstica importante de =a"a es que es un lenguaje de programacinorientada a objetos )$88+. -os conceptos en los que se apoya esta tcnica deprogramacin y sus "entajas sern e&puestos en el captulo siguiente.

    dems de ser transportable y orientada a objetos, =a"a es un leguaje 'cil deaprender. Tiene un tama/o peque/o 'a"orece el desarrollo y reduce lasposibilidades de cometer errores* a la "es es potente y Je&ible.

    =a"a est 'undamentado en (II. #uiere esto decir que muchas de las sinta&isy dise/o orientado a objetos se tom de este lenguaje. $or lo tanto a lossectores que estn 'amiliarizados con (II y la $88 les ser muy 'cilaprender a desarrollar aplicaciones con =a"a. #uiero ad"ertir a este tipo depotenciales usuarios de =a"a que en este lenguaje no e&isten puntero niaritmtica de punteros, las cadenas de caracteres son objetos y laadministracin de memoria es automtica, lo que elimina el problema que

  • 7/23/2019 Java 2. Curso de Programacin.

    7/15

    presenta (II con las lagunas de memorias al ol"idar liberar bloques de lamisma que 'ueron asignados dinmicamente.

    %ealizacin de un programa en ja"a

    En este apartado se "an a e&poner los pasos a seguir en la realizacin de un

    programa, por medio de un ejemplo. -a siguiente !gura muestra de 'ormaesquemtica lo que el usuario de =a"a necesita y debe hacer para desarrollarun programa.

    Imagen pgina 9.

    E"identemente, para poder escribir programas se necesita un entorno dedesarrollo =a"a. Sn Mi!rosystems )adquirida por Ora!leen K33D+, propietariode =a"a, proporciona uno de 'orma gratuita, Java evelopment it )=L+, que sepuede obtener en la direccin de internet