Introducción a La Programación Texto Bruto

download Introducción a La Programación Texto Bruto

of 26

Transcript of Introducción a La Programación Texto Bruto

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    1/26

    Introduccin a la programacin.

    1.- Introduccin.

    Cuntas acciones de las que has realizado hoy, crees que estn relacionadas con laprogramacin?

    Hagamos un repaso de los primeros instantes del da! te ha despertado la alarma de tutel"#ono m$il o radio-despertador, has preparado el desayuno utilizando el microondas,mientras desayuna%as has $isto u odo las &ltimas noticias a tra$"s de tu receptor detele$isin digital terrestre, te has $estido y puede que hayas utilizado el ascensor para%a'ar al portal y salir a la calle, etc. (uiz no es necesario que continuemos ms paradarnos cuenta de que casi todo lo que nos rodea, en alguna medida, est relacionado conla programacin, los programas y el tratamiento de alg&n tipo de in#ormacin.)l $olumen de datos que actualmente mane'amos y sus innumera%les posi%ilidades detratamiento constituyen un $asto territorio en el que los programadores tienen muchoque decir.)n esta primera unidad realizaremos un recorrido por los conceptos #undamentales de laprogramacin de aplicaciones. Iniciaremos nuestro camino conociendo con qu" $amos atra%a'ar, qu" t"cnicas podemos emplear y qu" es lo que pretendemos conseguir.

    Continuando con el anlisis de las di#erentes #ormas de programacin e*istentes,identi+caremos qu" #ases con#orman el desarrollo de un programa, a$anzaremosdetallando las caractersticas rele$antes de cada uno de los lengua'es de programacindisponi%les, para posteriormente, realizar una $isin general del lengua'e deprogramacin a$a. inalmente, tendremos la oportunidad de conocer con qu"herramientas podramos desarrollar nuestros programas, escogiendo entre una de ellaspara ponernos manos a la o%ra, utilizando el lengua'e a$a.

    .- /rogramas y programacin.

    .1.- 0uscando una solucin.

    eneralmente, la primera razn que mue$e a una persona hacia el aprendiza'e de laprogramacin es utilizar el ordenador como herramienta para resol$er pro%lemasconcretos. Como en la $ida real, la %&squeda y o%tencin de una solucin a un pro%lemadeterminado, utilizando medios in#ormticos, se lle$a a ca%o siguiendo unos pasos#undamentales. )n la siguiente ta%la podemos $er estas analogas.

    Resolucin de problemasEn la vida real... )n /rogramacin...Observacin de la situacin oproblema.

    2nlisis del pro%lema! requiere que elpro%lema sea de+nido y comprendidoclaramente para que pueda ser analizadocon todo detalle.

    Pensamos en una o varias posibles

    soluciones.

    3ise4o o desarrollo de algoritmos!

    procedimiento paso a paso parasolucionar el pro%lema dado.Aplicamos la solucin que estimamosms adecuada.

    5esolucin del algoritmo elegido en lacomputadora! consiste en con$ertir elalgoritmo en programa, e'ecutarlo ycompro%ar que soluciona $erdaderamenteel pro%lema.

    (u" $irtudes de%era tener nuestra solucin? Correccin y e+cacia! si resuel$e el pro%lema adecuadamente )+ciencia! si lo hace en un tiempo mnimo y con un uso ptimo de los recursos del

    sistema.

    /ara conseguirlo, cuando a#rontemos la construccin de la solucin tendremos que teneren cuenta los siguientes conceptos!

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    2/26

    6ema 1

    1. 2%straccin! se trata de realizar un anlisis del pro%lema para descomponerlo enpro%lemas ms peque4os y de menor comple'idad, descri%iendo cada uno de ellosde manera precisa. Divide y vencers, esta suele ser considerada una +loso#ageneral para resol$er pro%lemas y de aqu que su nom%re no slo #orme parte del$oca%ulario in#ormtico, sino que tam%i"n se utiliza en muchos otros m%itos.

    . )ncapsulacin! consiste en ocultar la in#ormacin para poder implementarla dedi#erentes maneras sin que esto in7uya en el resto de elementos.8. 9odularidad! estructuraremos cada parte en mdulos independientes, cada uno

    de ellos tendr su #uncin correspondiente.

    Citas para pensarEl comienzo de la sabidura para un ingeniero de software esreconocer la diferencia entre hacer que un programa funcione yconseguir que lo haga correctamente.Roger Pressman

    ..- 2lgoritmos y programas.3espu"s de analizar en detalle el pro%lema a solucionar, hemos de dise4ar y desarrollarel algoritmo adecuado. /ero, qu" es un algoritmo?

    lgoritmo! secuencia ordenada de pasos" descrita sin ambig#edades"que conducen a la soluci$n de un problema dado.

    :os algoritmos son independientes de los lengua'es de programacin y de lascomputadoras donde se e'ecutan. ;n mismo algoritmo puede ser e*presado en di#erenteslengua'es de programacin y podra ser e'ecutado en di#erentes dispositi$os. /iensa enuna receta de cocina, "sta puede ser e*presada en castellano, ingl"s o #ranc"s, podra sercocinada en #ogn o $itrocermica, por un cocinero o ms, etc. /ero independientementede todas estas circunstancias, el plato se preparar siguiendo los mismos pasos.:a di#erencia #undamental entre algoritmo y programaes que, en el segundo, los pasosque permiten resol$er el pro%lema, de%en escri%irse en un determinado lenguaje deprogramacin para que puedan ser e'ecutados en el ordenador y as o%tener lasolucin.:os lenguajes de programacin son slo un medio para e*presar el algoritmo y elordenador un procesador para e'ecutarlo. )l dise4o de los algoritmos ser una tarea quenecesitar de la creati$idad y conocimientos de las t"cnicas de programacin. )stilosdistintos, de distintos programadores a la hora de o%tener la solucin del pro%lema, darnlugar a algoritmos di#erentes, igualmente $lidos.)n esencia, todo pro%lema se puede descri%ir por medio de un algoritmo y lascaractersticas #undamentales que "stos de%en cumplir son!

    3e%e serprecisoe indicar el orden de realizacin paso a paso.

    3e%e estar bien defnido, si se e'ecuta dos o ms $eces, de%e o%tener el mismoresultado cada $ez.

    3e%e ser fnito, de%e tener un n&mero +nito de pasos.

    /ero cuando los pro%lemas son comple'os, es necesario descomponer "stos ensu%pro%lemas ms simples y, a su $ez, en otros ms peque4os. )stas estrategias reci%enel nom%re de diseo descendenteo diseo modular

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    3/26

    86ema 1

    Pseudocdigo$esta t"cnica se %asa en el uso de pala%ras cla$e en lengua'enatural, constantes, $aria%les, otros o%'etos, instrucciones y estructuras deprogramacin que e*presan de #orma escrita la solucin del pro%lema. )s lat"cnica ms utilizada actualmente.

    %ablas de decisin$ )n una ta%la son representadas las posi%les condiciones delpro%lema con sus respecti$as acciones. >uele ser una t"cnica de apoyo al

    pseudocdigo cuando e*isten situaciones condicionales comple'as.

    Debes conocer2 continuacin te o#recemos dos enlaces muy interesantes!

    )n el primer $deo puedes $er los elementos gr+cos #undamentales que seutilizan para la generacin de diagramas de7u'o.http!@@@.youtu%e.com@atch?$At9)scC)/Bg

    )n el segundo $deo se realiza la construccin de un diagrama de 7u'o con unaherramienta gr+ca y su trans#ormacin apseudocdigo.http!@@@.youtu%e.com@atch?$A/gDEu(Frdo

    8.- /aradigmas de la programacin.

    Cuntas #ormas e*isten de hacer las cosas?>upongo que estars pensando! $arias o incluso, muchas./ero cuando se esta%lece un patrn para la creacin de aplicaciones nos estamosacercando al signi+cado de la pala%ra paradigma.

    Paradigma de programacin: Es un modelo b%sico para eldise&o y la implementaci$n de programas. Este modelodeterminar% c$mo ser% el proceso de dise&o y la estructura 'naldel programa.

    )l paradigma representa un en#oque particular o +loso#a para la construccinde so#t@are. Cada uno tendr sus $enta'as e incon$enientes, ser ms o menosapropiado, pero no es correcto decir que e*ista uno me'or que los dems.5esumen de los di#erentes paradigmas de programacin!

    Programacin Declarativa$ se considera opuesta a la programacinimperati$a, se %asa en el desarrollo de programas realizando una especi+cacino Gdeclaracin de un con'unto de condiciones, proposiciones, a+rmaciones,restricciones y trans#ormaciones que descri%en el pro%lema y detallan susolucin. :as sentencias que se utilizan, lo que hacen es descri%ir el pro%lemaque se quiere solucionar, pero no las instrucciones necesarias para lle$arlo aca%o.3entro de este paradigma pueden destacarse la programacin #uncional y laprogramacin lgica.)l lengua'e >(: est %asado en este paradigma

    Programacin &uncional$ Considera al programa como una #uncinmatemtica, donde el dominio representara el con'unto de todas las entradasposi%les

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    4/26

    J6ema 1

    Programacin )onvencional$ 6am%i"n llamada, no estructurada, no e*istanen los lengua'es de programacin iniciales herramientas que permitieranestructurar el cdigo para su modi+cacin o reutilizacin. :os programas eranlneas y lneas de cdigo que hacan di#cil su lectura o modi+cacin. 6odo esta%a%asado en instrucciones de salto malltalM es un lengua'e %asado en el paradigma orientado ao%'etos. )l lengua'e de programacin >cheme, en cam%io, soporta sloprogramacin #uncional. /ython, soporta m&ltiples paradigmas.

    Para saber ms(e proponemos el siguiente enlace en el que encontrar%sinformaci$n adicional sobre los diferentes paradigmas deprogramaci$n.Paradigmas de programaci$n y lengua)es

    Cul es el o%'eti$o que se %usca con la aplicacin de los di#erentes en#oques?undamentalmente! reducir la difcultad para el mantenimientode las aplicaciones, mejorar el rendimientodel programador y, en general, mejorar la productividad y calidadde los programas.

    J.- ases de la programacin.

    >ea cual sea el estilo que esco'amos a la hora de automatizar una determinada tarea,de%emos realizar el proceso aplicando un m"todo a nuestro tra%a'o. )s decir, sa%emosque $amos a dar solucin a un pro%lema, aplicando una +loso#a de desarrollo y loharemos dando una serie de pasos que de%en estar %ien de+nidos.

    )l proceso de creacin de so#t@are puede di$idirse en di#erentes #ases! &ase de resolucin del problema.

    http://javierleal.wordpress.com/2009/08/27/paradigmas-de-programacion/http://javierleal.wordpress.com/2009/08/27/paradigmas-de-programacion/
  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    5/26

    N6ema 1

    &ase de implementacin.

    &ase de e-plotacin y mantenimiento.2 continuacin, analizaremos cada una de ellas.

    J.1.- 5esolucin del pro%lema./ara el comienzo de esta #ase, es necesario que el pro%lema sea de+nido y comprendido

    claramente para que pueda ser analizado con todo detalle. 2 su $ez, la #ase de resolucindel pro%lema puede di$idirse en dos etapas!

    a. Anlisis./or lo general, el anlisis indicar la especi+cacin de requisitos que se de%en cu%rir. :oscontactos entre el analistaprogramador y el clienteusuario sern numerosos, de esta#orma podrn ser conocidas todas las necesidades que precisa la aplicacin. >eespeci+carn los procesos y estructuras de datos que se $an a emplear. :a creacin deprototipos ser muy &til para sa%er con mayor e*actitud los puntos a tratar.)l anlisis inicial o#recer una idea general de lo que se solicita, realizandoposteriormente sucesi$os re+namientos que ser$irn para dar respuesta a las siguientescuestiones!

    )ul es la in/ormacin que o/recer la resolucin del problema0:a

    respuesta a esta primera pregunta se identi+ca con los resultados deseados o lassalidas del pro%lema. 1u2 datos son necesarios para resolver el problema0 :a respuesta a esta

    segunda pregunta indicar qu" datos se proporcionan o las entradas del pro%lema.)n esta #ase de%emos aprender a analizar la documentacin de la empresa, in$estigar,o%ser$ar todo lo que rodea al pro%lema y recopilar cualquier in#ormacin &til.

    )'ercicio resueltoDamos a ilustrar esta #ase realizando el anlisis del siguiente pro%lema!G:eer el radio de un crculo y calcular e imprimir su super+cie y circun#erencia.)st claro que las entradas de datos en este pro%lema se reducen al radio del crculo,pero piensa qu" salidas de datos o#recer la solucin?

    :as salidas sern... Daria%le de salida >;/)5ICI)! ser la super+cie del crculo. ila solucin aportada tiene errores, tendremos que $ol$er a la #ase de anlisis para realizarlas modi+caciones necesarias o tomar un nue$o camino para la solucin. >lo cuando el

    algoritmo cumpla los requisitos y o%'eti$os especi+cados en la #ase de anlisis se pasara la #ase de implementacin.

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    6/26

    S6ema 1

    J..- Implementacin.>i la #ase de resolucin del pro%lema requiere un especial cuidado en la realizacin delanlisis y el posterior dise4o de la solucin, la #ase de implementacin co%ra tam%i"n unaespecial rele$ancia. :le$ar a la realidad nuestro algoritmo implicar cu%rir algunas etapasms que se detallan a continuacin.

    a. )odifcacin o construccin.)sta etapa consiste en trans#ormar o traducir los resultados o%tenidos a un determinadolengua'e de programacin. /ara compro%ar la calidad y esta%ilidad de la aplicacin se hande realizar una serie de prue%as que comprue%en las #unciones de cada mdulo

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    7/26

    R6ema 1

    /eridicamente ser necesario realizar e$aluaciones y, si es necesario, lle$ar a ca%omodi+caciones para que el programa se adapte o actualice a nue$as necesidades,pudiendo tam%i"n corregirse errores no detectados anteriormente. )ste proceso reci%e elnom%re de mantenimiento del so#t@are.

    Mantenimiento del software: es el proceso de me)ora y optimizaci$n

    del software despu-s de su entrega al usuario 'nal. n+olucra cambiosal software en orden de corregir defectos y dependencias encontradasdurante su uso" as como la adici$n de nue+as funcionalidades parame)orar su usabilidad y su aplicabilidad.

    >er imprescindi%le a4adir una documentacin adecuada que #acilite al programador o ala programadora la comprensin, uso y modi+cacin de dichos programas.

    N.- Ciclo de $ida del so#t@are.

    )l proceso de desarrollo puede in$olucrar siempre las siguientes etapas mnimas! )speci+cacin y 2nlisis de requisitos. 3ise4o. Codi+cacin. /rue%as. Instalacin y paso a /roduccin. 9antenimiento.

    )*isten $arios tipos de ciclos de $ida del so#t@are, a continuacin te mostramos unresumen de los ms importantes.

    4odelo en cascada$)s tam%i"n conocido por modelo clsico,modelo tradicionalo modelo lineal secuencial. /ara comenzar una #ase ha de +nalizarse la anterior. )srgido y en la prctica presenta algunos pro%lemas de aplicacin. )s el msutilizado por su escasa comple'idad.

    Defnicin de requerimientos5 Anlisis y Diseo del so/t"are 5(mplementacin y prueba de unidades 5 (ntegracin y prueba delsistema 5 Operacin y 4antenimiento

    4odelo por prototipos$ )ste ciclo de $ida se %asa en la creacin de prototiposque irn me'orando el conocimiento del pro%lema, tanto para el usuario comopara los desarrolladores.:a #ase de especi+cacin de requerimientos est compuesta por las siguientessu%#ases!

    /eque4o anlisis y especi+cacin 3ise4o y realizacin

    )$aluacin 9odi+cacin inalizacin de los requerimientos

    4odelo Evolutivo$>e emplea para #acilitar la creacin de aplicaciones 7e*i%les yescala%les, que permitan incorporar modi+caciones muy rpidamente una $ez quese +nalice su desarrollo.)ste modelo permite adaptarse a requisitos que $aren en el tiempo. )s un modeloiterati$o, permiten desarrollar $ersiones cada $ez ms completas y comple'as,hasta llegar al o%'eti$o +nal deseadoU incluso e$olucionar ms all, durante la #asede e*plotacin.:os modelos iterati$o incremental y espiral son del tipo e$oluti$o.

    4odelo incremental$ )l #uncionamiento del modelo incremental permite laentrega de $ersiones parciales a medida que se $a construyendo el producto +nal.

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    8/26

    V6ema 1

    /or e'emplo, un procesador de te*to podra incluir inicialmente #unciones %sicas.)n un incremento posterior podra incorporar #unciones para pre$isualizacin ypaginacin. )n los siguientes incrementos podra disponer de #unciones decorreccin ortogr+ca, etc. 6as sucesi$os incrementos lograramos o%tener elprocesador de te*to +nal.

    4odelo en Espiral$)ste modelo emplea lo me'or de los modelos con$encional ypor prototipos. )st di$idido en cuatro #ases!

    /lani+cacin 2nlisis de riesgo 3esarrollo )$aluacin del cliente

    )l paso por cada una de estas #ases se repetir tantas $eces como sea necesario.

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    9/26

    W6ema 1

    S.- :engua'es de programacin.

    Como hemos $isto, en todo el proceso de resolucin de un pro%lema mediante la creacinde so#t@are, despu"s del anlisis del pro%lema y del dise4o del algoritmo que pueda

    resol$erlo, es necesario traducir "ste a un lengua'e que e*prese claramente cada uno delos pasos a seguir para su correcta e'ecucin. )ste lengua'e reci%e el nom%rede lenguaje de programacin.

    Lenguaje de programacin: con)unto de reglas sint%cticas ysem%nticas" smbolos y palabras especiales establecidas para laconstrucci$n de programas. Es un lengua)e arti'cial" una construcci$nmental del ser humano para e*presar programas.Gramtica del lenguaje:reglas aplicables al con)unto de smbolos y

    palabras especiales del lengua)e de programaci$n para la construcci$nde sentencias correctas.

    Lxico: es el con)unto 'nito de smbolos y palabras especiales" es el+ocabulario del lengua)e.intaxis:son las posibles combinaciones de los smbolos y palabrasespeciales. Est% relacionada con la forma de los programas.emntica:es el signi'cado de cada construcci$n del lengua)e" laacci$n que se lle+ar% a cabo.

    Hay que tener en cuenta que pueden e*istir sentencias sintcticamente correctas, perosemnticamente incorrectas. /or e'emplo, /n a+estruz dio una tremenda dentellada a sucuidadorest %ien construida sintcticamente, pero es e$idente que semnticamenteno.;na caracterstica rele$ante de los lengua'es de programacin es, precisamente, que ms

    de un programador pueda usar un con'unto com&n de instrucciones que seancomprendidas entre ellos. 2 tra$"s de este con'unto se puede lograr la construccin deun programa de #orma cola%orati$a.:os lengua'es de programacin pueden ser clasi+cados en #uncin de lo cerca que est"ndel lengua'e humano o del lengua'e de los computadores. )l lengua'e de loscomputadores son cdigos %inarios, es decir, secuencias de unos y ceros. 3etallaremosseguidamente las caractersticas principales de los lengua'es de programacin.

    S.1.- :engua'e mquina.

    )ste es el lengua'e utilizado directamente por el procesador, consta de un con'unto deinstrucciones codi+cadas en %inario. )s el sistema de cdigos directamente interpreta%lepor un circuito microprograma%le.)ste #ue el primer lengua'e utilizado para la programacin de computadores. 3e hecho,cada mquina tena su propio con'unto de instrucciones codi+cadas en ceros y unos.Cuando un algoritmo est escrito en este tipo de lengua'e, decimos que est en cdigomquina./rogramar en este tipo de lengua'e presenta%a los siguientes inconvenientes!

    Cada programa era $lido slo para un tipo de procesadoru ordenador. 'a lectura o interpretacin de los programas era e-tremadamente

    di/6cily, por tanto, insertar modifcaciones resultaba muy costoso. :os programadores de la "poca de%an memori3ar largas combinaciones de

    ceros y unos, que equi$alan a las instrucciones disponi%les para los di#erentestipos de procesadores.

    :os programadores se encarga%an de introducir los cdigos %inarios en el

    computador, lo que pro$oca%alargos tiempos de preparacin y posibleserrores.

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    10/26

    1B6ema 1

    2 continuacin, se muestran algunos cdigos %inarios equi$alentes a las operaciones desuma, resta y mo$imiento de datos en lengua'e mquina.

    3ada la comple'idad y di+cultades que o#reca este lengua'e,#ue sustituido por otros ms sencillos y #ciles utilizar. oo%stante, hay que tener en cuenta que todos los programas

    para poder ser ejecutados+ 7an de traducirse siempre allenguaje mquinaque es el &nico que entiende lacomputadora.Como recordatorio, te proponemos $er el siguiente $deo so%recmo #unciona elsistema %inario.

    S..- :engua'e ensam%lador.:a e$olucin del lengua'e mquina #ue el lengua'e ensam%lador.:as instrucciones ya no son secuencias %inarias, se sustituyen por cdigos de operacinque descri%en una operacin elemental del procesador. )s un lengua'e de %a'o ni$el, aligual que el lengua'e mquina, ya que dependen directamente del hard@are donde sone'ecutados.

    Mnemotcnico:son palabras especiales" que sustituyen largassecuencias de ceros y unos" utilizadas para referirse a diferentesoperaciones disponibles en el )uego de instrucciones que soporta cadam%quina en particular.

    )n ensam%lador, cada instruccin umar BB1B11B15estar BBB1BB119o$er BB111B1B

    Algunas operacionesen lenguajeensamblador

    Qperacin :engua'eensam%lador

    9ultiplicar 9;:3i$idir 3ID

    9o$er 9QD

    http://www.youtube.com/watch?v=cJhy9JutK_4http://www.youtube.com/watch?v=cJhy9JutK_4http://www.youtube.com/watch?v=cJhy9JutK_4
  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    11/26

    116ema 1

    6odo programa escrito en lengua'e ensam%lador necesita de un intermediario, que realicela traduccin de cada una de las instrucciones que componen su cdigo al lengua'emquina correspondiente. )ste intermediario es el programa ensamblador. )lprograma original escrito en lengua'e ensam%lador constituye el cdigo /uentey elprograma traducido al lengua'e mquina se conoce como programa objetoque serdirectamente e'ecutado por la computadora.

    S.8.- :engua'es compilados.

    /ara paliar los pro%lemas deri$ados del uso del lengua'e ensam%lador y con el o%'eti$o deacercar la programacin hacia el uso de un lengua'e ms cercano al humano que al delcomputador, nacieron loslenguajes compilados.2lgunos e'emplos de este tipo de lengua'es son! Pascal+ &ortran+ Algol+ )+ )99+etc.2l ser lengua'es ms cercanos al humano, tam%i"n se les denomina lenguajes de altonivel. >on ms #ciles de utilizar y comprender, las instrucciones que #orman parte deestos lengua'es utilizan pala%ras y signos reconoci%les por el programador.Cules son sus ventajas?

    >on muc7o ms /ciles de aprender y de utili3arque sus predecesores.

    >e reduce el tiempo para desarrollarprogramas, as como los costes. >on independientes del 7ard"are, los programas pueden e'ecutarse en

    di#erentes tipos de mquina. :alectura+ interpretacin y modifcacinde los programas es muc7o ms

    sencilla./ero un programa que est escrito en un lengua'e de alto ni$el tam%i"n tiene quetraducirsea un cdigo que pueda utilizar la mquina. :os programas traductores quepueden realizar esta operacin se llaman compiladores.

    Compilador: es un programa cuya funci$n consiste en traducir elc$digo fuente de un programa escrito en un lengua)e de alto ni+el alengua)e m%quina. l proceso de traducci$n se le conoce con el nombre

    de compilaci$n.

    )l compilador realizar la traduccin yadems in#ormar de los posi%les errores.;na $ez su%sanados, se generar elprograma traducido a cdigo mquina,conocido como cdigo objeto. )steprograma a&n no podr ser e'ecutadohasta que no se le a4adan los mdulos deenlace o %i%liotecas, durante el proceso deenlazado. ;na $ez +nalizado el enlazado,se o%tiene el cdigo ejecutable.

    S.J.- :engua'es interpretados.

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    12/26

    16ema 1

    5ecuerdas que en un apartado anterior ya ha%lamos de que e*isten dos #ormas detraducir los programas escritos en un lengua'e de alto ni$el a cdigo mquina y que unade esas #ormas es mediante un int"rprete?/ues %ien, ahora $amos a$er cules son las caractersticas de los lengua'es interpretados.>e caracterizan por estar dise4ados para que su e'ecucin se realice a tra$"s de

    unint2rprete. Cada instruccin escrita en un lengua'e interpretado se analiza, traduce ye'ecuta tras ha%er sido $eri+cada. ;na $ez realizado el proceso por el int"rprete, lainstruccin se e'ecuta, pero no se guarda en memoria.

    :os lengua'es interpretados generan programas de menor tama4o que los generados porun compilador, al no guardar el programa traducido a cdigo mquina. /ero presentan elincon$eniente de ser algo ms lentos, ya que han de ser traducidos durante su e'ecucin./or otra parte, necesitan disponer en la mquina del programa int"rprete e'ecutndose,algo que no es necesario en el caso de un programa compilado, para los que slo esnecesario tener el programa e'ecuta%le para poder utilizarlo.)'emplos de lengua'es interpretados son! Perl+ P:P+ Pyt7on+ ;ava

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    13/26

    186ema 1

    haciendo ms sencillo todo el proceso. :os pro%lemas se di$iden en o%'etos que tienenpropiedades e interact&an con otros o%'etos, de este modo, el programador puedecentrarse en cada o%'eto para programar internamente los elementos y #unciones que locomponen.:as caractersticas principales de lengua'e a$a se resumen a continuacin!

    )l cdigo generado por el compilador a$a es independiente de la arquitectura.

    )st totalmente orientado a o%'etos. >u sinta*is es similar a C y CKK. )s distri%uido, preparado para aplicaciones 6C/I/. 3ispone de un amplio con'unto de %i%liotecas. )s ro%usto, realizando compro%aciones del cdigo en tiempo de compilacin y de

    e'ecucin. :a seguridad est garantizada, ya que las aplicaciones a$a no acceden a zonas

    delicadas de memoria o de sistema.Caractersticas detalladas del lengua'e a$a

    R..- 0re$e historia.

    a$a surgi en 1WW1 cuando un grupo de ingenieros de >un 9icrosystems trataron dedise4ar un nue$o lengua'e de programacin destinado a programar peque4osdispositi$os electrnicos. :a di+cultad de estos dispositi$os es que cam%iancontinuamente y para que un programa #uncione en el siguiente dispositi$o aparecido,hay que rescri%ir el cdigo. /or eso la empresa >un quera crear unlengua'e independiente del dispositivo./ero no #ue hasta 1WWN cuando pas a llamarse a$a, dndose a conocer al p&%lico comolengua'e de programacin para computadores. a$a pasa a ser un lengua'e totalmenteindependiente de la plata#orma y a la $ez potente y orientado a o%'etos. )sa +loso#a y su#acilidad para crear aplicaciones para redes 6C/I/ha hecho que sea uno de los lengua'esms utilizados en la actualidad.)l #actor determinante para su e*pansin #ue la incorporacin de un int"rprete a$a en la

    $ersin .B del na$egador e% etscape a$igator, lo que supuso una gran re$uelo enInternet. 2 principios de 1WWR apareci;ava =.=+ que proporcion sustanciales me'oras allengua'e.

    ;ava =.>, ms tarde re%autizado como;ava >+naci a +nales de 1WWV.)l principal o%'eti$o del lengua'e a$a es llegar a ser el ne-o universalque conecte a losusuarios con la in#ormacin, est" "sta situada en el ordenador local, en un ser$idor e%,en una %ase de datos o en cualquier otro lugar./ara el desarrollo de programas en lengua'e a$a es necesario utilizar un entorno dedesarrollo denominado;D?

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    14/26

    1J6ema 1

    )l siguiente esquema muestra los elementos #undamentales de la plata#orma de

    desarrollo a$a .2ctualmente hay tres ediciones de la plata#orma a$a !

    ;>un relacionado con la creacin de aplicaciones y appletsenlengua'e a$a.

    ;>EE! /ensada para la creacin de aplicaciones a$a empresariales y del lado delser$idor.

    ;>4E! /ensada para la creacin de aplicaciones a$a para dispositi$os m$iles.

    9s in#ormacin!

    :os orgenes de a$aHistoria de a$a:nea de tiempo de la historia de a$a

    R.8.- :a /QQ y a$a.

    )n a$a, los datos y el cdigo

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    15/26

    1N6ema 1

    Qtro e'emplo para seguir aclarandoideas, piensa en los %loques de'uegos de construccin. >uponemosque conoces los cu%os de plstico en$arios colores y tama4os. /or una de

    sus caras disponen de peque4osconectores circulares y en otra de suscaras peque4os ori+cios en los quepueden conectarse otros %loques, conel o%'eti$o principal de permitirconstruir #ormas ms grandes. >i usasdi#erentes piezas del lego puedesconstruir a$iones, coches,edi+cios, etc. >i te +'as %ien, cadapieza es un o%'eto peque4o quepuede unirse con otros o%'etos paracrear o%'etos ms grandes./ues %ien, apro*imadamente as es

    como #unciona la programacin dirigida a o%'etos! unimos elementos peque4os paraconstruir otros ms grandes. uestros programas estarn #ormados por muchoscomponentes

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    16/26

    1S6ema 1

    aplican garantizan que las operaciones, operandos, con$ersiones, uso de clases y demsacciones son seguras.P en tercer lugar, a$a no permite la apertura de +cheros en la mquina local, tampocopermite e'ecutar ninguna aplicacin nati$a de una plata#orma e impide que se utilicenotros ordenadores como puente, es decir, nadie puede utilizar nuestra mquina parahacer peticiones o realizar operaciones con otra.

    )n de+niti$a, podemos a+rmar que a$a es un lengua'e seguro.

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    17/26

    1R6ema 1

    :os parmetros y sus tipos son adecuados. o e*isten con$ersiones de datos no permitidas.

    /ara que un %ytecode pueda ser e'ecutado en cualquier plata#orma, es imprescindi%leque dicha plata#orma cuente con el int"rprete adecuado, es decir,la mquina virtualespec6fca para esa plata/orma. )n general, la 9quina Dirtual a$a es un programa dereducido tama4o y gratuito para todos los sistemas operati$os.

    V.- /rogramas en a$a.Hasta ahora, hemos descrito el lengua'e de programacin a$a, hemos hecho un recorridopor su historia y nos hemos instruido so%re su +loso#a de tra%a'o, pero te preguntars!

    Cundo empezamos a desarrollar programas? (u" elementos #orman parte de un programa en a$a? (u" se necesita para programar en este lengua'e? /odemos crear programas de di#erente tipo?

    o te impacientes, cada $ez estamos ms cerca de comenzar la e*periencia con ellengua'e de programacin a$a. Iniciaremos nuestro camino conociendo cules son loselementos %sicos de un programa a$a, la #orma en que de%emos escri%ir el cdigo y lostipos de aplicaciones que pueden crearse en este lengua'e.

    V.1.- )structura de un programa.

    )n el gr+co al quepuedes acceder acontinuacin, sepresenta la estructurageneral de unprograma realizado enun lengua'e orientado ao%'etos como es a$a.

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    18/26

    1V6ema 1

    Damos a analizar cada uno de los elementos que aparecen en dicho gr+co! publicclass)laseFPrincipal! todos los programas han de incluir una clase como

    "sta. )s una clase general en la que se incluyen todos los dems elementos delprograma.

    )ntre otras cosas, contiene el m"todo o #uncin mainCque representa alprograma principal, desde el que se lle$ar a ca%o la e'ecucin del programa.

    )l archi$o que contiene esta clase puede contener a su $ez otras clases delusuario, pero slo una puede ser public ya que si la clase es public, el nom%redel +chero .javaque contiene el cdigo #uente de nuestro programa

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    19/26

    1W6ema 1

    herramientas &tiles para el desarrollo y prue%a de programas escritos en a$a ye'ecutados en la /lata#orma a$a.2s mismo, 'unto a 3F se incluye una implementacin del entorno de e'ecucin a$a,el;RE ;ava RuntimeEnvironmentCpara ser utilizado por el 3F. )l 5) incluye la9quina Dirtual de a$a 6utorial instalacin 3F

    http://educacionadistancia.juntadeandalucia.es/cursos/file.php/584/moddata/scorm/3824/PROG01_CONT_R20_Instalacion_Java_SE_v2.swfhttp://educacionadistancia.juntadeandalucia.es/cursos/file.php/584/moddata/scorm/3824/PROG01_CONT_R20_Instalacion_Java_SE_v2.swf
  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    20/26

    B6ema 1

    V.8.- :a 2/I de a$a.

    unto con el Mit de desarrollo que hemos descargado e instalado anteriormente, $ienenincluidas gratuitamente todas las %i%liotecas de la 2/I QMbin=>i no e*iste la $aria%le )'A

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    21/26

    16ema 1

    ;na $ez que la con+guracin del entorno a$a est completada y tenemos el cdigo#uente de nuestro programa escrito en un archi$o con e*tensin .java, la compilacin deaplicaciones se realiza mediante el programajavacincluido en el so#t@are de desarrollode a$a.

    Para lle+ar a cabo la compilaci$n desde la lnea de comandos"escribiremos!

    ja$ac arc&i$o(ja$a8ondeja$aces el compilador de 6a+a y arc&i$o(ja$aes nuestroc$digo fuente.)l resultado de la compilacin ser un archi$o con el mismo nom%re que elarchi$o a$a pero con la e-tensin .class. )sto ya es el archi$o con el cdigo en #ormade %ytecode, es decir, con el cdigo precompilado. >i en el cdigo #uente de nuestroprograma +guraran ms de una clase, $eremos cmo al realizar la compilacin segenerarn tantos archi$os con e*tensin .classcomo clases tengamos. 2dems, si estasclases tenan m"todo mainCpodremos e'ecutar dichos archi$os por separado para $er el#uncionamiento de dichas clases./ara que el programa pueda ser e'ecutado, siempre y cuando est" incluido en su interior

    el m"todo mainC, podremos utilizar el int"rprete incluido en el Mit de desarrollo.,a e)ecuci$n de nuestro programa desde la lnea de comandospodremos hacerla escribiendo!ja$a arc&i$o(class8ondeja$aes el int-rprete y arc&i$o(classes el archi+o con el c$digo

    precompilado. EsIMP,-./0.1aclarar que dondeponemos arc&i$o(class" nos referimos al archi+o ya precompiladoen bytecodes" que tiene la e*tensi$n (class" pero0, &a% 2ue ponerdic&a extensinpara e)ecutar el archi+o" s$lo el nombre. Esto se +em%s claro en las e*plicaciones del e)ercicio resuelto.

    Ejercicio resuelto!Damos a lle$ar a la prctica todo lo que hemos estado detallando a tra$"s de lacreacin, compilacin y e'ecucin de un programa sencillo escrito en a$a.

    Q%ser$a el cdigo que se muestra ms a%a'o, seguro que podrs entender parte de "l.Cpialo en un editor de te*to, respetando las may&sculas y las min&sculas. /uedesguardar el archi$o con e*tensin .javaen la u%icacin que pre+eras. 5ecuerda que elnom%re de la clase principal

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    22/26

    6ema 1

    o $arios i todo ha ido %ien, $ers escrito en pantalla!S4dulo pro/esional BProgramacinS.

    V.N.1.- >olucin a posi%les pro%lemas con la codi+cacin de caracteresacentuados.

    6e ha pasado que al pro%ar a e'ecutar un programa que de%e escri%ir alg&n carcteracentuado, en su lugar aparecen caracteres e*tra4os? 2lguna $ez has $isitado una @e%en la que todos los caracteres acentuados aparecen como un cuadradito negro con unainterrogacin dentro

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    23/26

    86ema 1

    inalmente pasamos a compilar el .javay a e'ecutar el .classy se $ercorrectamente.

    V.S.- 6ipos de aplicaciones en a$a.

    :a $ersatilidad del lengua'e de programacin a$a permite al programador crear distintos

    tipos de aplicaciones. 2 continuacin, descri%iremos las caractersticas ms rele$antes decada uno de ellos!

    Aplicaciones de consola$o >on programas independientes al igual que los creados con los lengua'es

    tradicionales.o >e componen como mnimo de un archi$o .classque de%e contar

    necesariamente con el m"todo mainC.o o necesitan un na$egador @e% y se e'ecutan cuando in$ocamos el

    comandojavapara iniciar la 9quina Dirtual de a$a on programas incrustados en otras aplicaciones, normalmente una pgina

    @e% que se muestra en un na$egador. Cuando el na$egador carga una @e%que contiene un applet, "ste se descarga en el na$egador @e% y comienzaa e'ecutarse. )sto nos permite crear programas que cualquier usuariopuede e'ecutar con tan solo cargar la pgina @e% en su na$egador.

    o >e pueden descargar de Internet y se o%ser$an en un na$egador.:os applets se descargan 'unto con una pgina H69: desde un ser$idor@e% y se e'ecutan en la mquina cliente.

    o o tienen acceso a partes sensi%les

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    24/26

    J6ema 1

    )n los comienzos de a$a la utilizacin de la lnea de comandos era algo ha%itual. )lprogramador escri%a el cdigo #uente empleando un editor de te*to %sico,seguidamente, pasa%a a utilizar un compilador y con "l o%tena el cdigo compilado. )nun paso posterior, necesita%a emplear una tercera herramienta para el ensam%lado delprograma. /or &ltimo, poda pro%ar a tra$"s de la lnea de comandos el archi$oe'ecuta%le. )l pro%lema surga cuando se produca alg&n error, lo que pro$oca%a tener

    que $ol$er a iniciar el proceso completo.)stas circunstancias hacan que el desarrollo de so#t@are no estu$iera optimizado. Con elpaso del tiempo, se #ueron desarrollando aplicaciones que incluan las herramientasnecesarias para realizar todo el proceso de programacin de #orma ms sencilla, +a%le yrpida. /ara cada lengua'e de programacin e*isten m&ltiples entornos de desarrollo,cada uno con sus $enta'as e incon$enientes. 3ependiendo de las necesidades de lapersona que $a a programar, la #acilidad de uso o lo agrada%le que le resulte tra%a'ar con"l, se elegir entre unos u otros entornos./ara el lengua'e de programacin a$a e*isten m&ltiples alternati$as, siendo losprincipales entornos de desarrollo Weteansun=, Eclipse y;)reator. :os dos primeros son gratuitos, con soporte deidiomas y multiplata#orma =.P cul ser con el que $amos a tra%a'ar? )l entorno que hemos seleccionado lle$ar a

    ca%o nuestros desarrollos de so#t@are en este mdulo pro#esional ser Weteans+ alha%er sido construido por la misma compa4a que cre a$a, ser de cdigo a%ierto yo#recer capacidades pro#esionales. 2unque, no te preocupes, tam%i"n haremos unrecorrido por otros entornos destaca%les.

    W.1.- (u" son?>on aplicaciones que o#recen la posi%ilidad de lle$ar a ca%o el proceso completo dedesarrollo de so#t@are a tra$"s de un &nico programa. /odremos realizar las la%ores deedicin, compilacin, depuracin, deteccin de errores, correccin y e'ecucin deprogramas escritos en a$a o en otros lengua'es de programacin, %a'o un entorno gr+co

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    25/26

    N6ema 1

    )n los siguientes epgra#es haremos una descripcin de et0eans y )clipse, paraposteriormente desarrollar los puntos cla$es del entorno et0eans.

    >i quieres conocer la situacin actual de uso y comparar los di#erentes entornosintegrados de desarrollo para el lengua'e de programacin a$a, puedes ampliar datos enel siguiente artculo!

    2rtculo con comparati$a so%re utilizacin de entornos a$a.

  • 7/25/2019 Introduccin a La Programacin Texto Bruto

    26/26

    S6ema 1

    /ara realizar la instalacin del entorno et0eans, seguiremos los siguientes pasos%sicos!

    1. 3escarga de la $ersin deseada desde la @e% o+cial o desde los enlacespropuestos ms a%a'o. :a $ersin completa contiene todas las posi%ilidadesaunque es la ms pesada . 6anto en indo@s como en :inu*, se descarga un archi$oe'ecuta%le que se encarga de la instalacin.

    8. >eleccionar el idioma.J. Comenzar la descarga del archi$o de instalacin e'ecuta%le y una $ez +nalizada,

    lanzar "ste, comenzando la instalacin en nuestro equipo.N. )n las primeras pantallas, seleccionaremos los componentes a instalar. Como

    mnimo, para poder programar en a$a ser imprescindi%le instalar el I3) %sicoy a$a >).

    S. /osteriormente, esta%lecemos el directorio donde se instalar et0eans, as comola carpeta que contiene el 3F que se utilizar por de#ecto.

    R. inalmente, la instalacin se completa y dispondremos de este entorno totalmente

    operati$o./ara lle$ar a ca%o las operaciones descritas en el paso 1, te o#recemos la posi%ilidad dedescargar cada una de las partes por separado, o %ien, en con'unto, a tra$"s de lossiguientes enlaces!3escarga &nicamente et0eans si tienes ya instalado el 3F.3escarga et0eans y 3F desde la pgina o+cial de Q52C:))n este &ltimo enlace, de%es elegir el icono correspondiente a 3F RuJB \et0eans R.8.1,y a partir de ah, seleccionar el archi$o de descarga adecuado para tu equipo, de #ormamuy similar a como ha%amos hecho para la descarga del 3F. )l proceso de instalacintampoco tiene ninguna di+cultad.

    W.N.- 2specto del entorno y gestin de proyectos.

    :a pantalla inicial de nuestro entorno de desarrollo o#rece accesos directos a lasoperaciones ms usuales! aprendiza'e inicial, tutoriales, e'emplos, demos, los &ltimosprogramas realizados y las no$edades de la $ersin./ara comenzar a descri%ir el aspecto del entorno, es necesario crear un nue$o proyectoaccediendo al men& &ile ! We" Project, indicaremos el tipo de aplicacin que $amos acrear.;na de las $enta'as que o#rece este entorno es poder e*aminar nuestros proyectos atra$"s de la $ista Arc7ivos. )sta $ista nos ense4a la realidad de los archi$os delproyecto, la carpeta buildcontiene los archi$os compilados