Está en la página 1de 16

Instituto Nacional De Mxico

INM
INSTITUTO TECNOLGICO DE
OAXACA
ITO
INGENIERA EN SISTEMAS COMPUTACIONALES
ESPECIALIDAD: DESARROLLO DE SOFTWARE CON TECNOLOGA WEB
PROGRAMACIN ORIENTADA A OBJETOS
Unidad 2
Clases y objetos
Evaluacin formativa n1
PROFESOR: Arturo armando Aragn Sorroza
ALUMNO: DAZ PREZ MARCOS
N DE CONTROL: 13161106
11:00-12:00
IS-C
LUNES 22 DE SEPTIEMBRE DEL 2014
AGOSTO-DICIEMBRE/2013

AV. ING. VCTOR BRAVO AHUJA #125 ESQ. CLZ. TECNOLGICO EN LA CIUDAD DE OAXACA DE JUREZ.
OAXACA.


1

ndice

1.- ventajas y desventajas tiene java comparado con la manera tradicional de compilar cdigo,
para una plataforma en particular2

2.- Qu es un compilador? 4

3.- Qu es bytecode? 8

4.- revise exhaustivamente y construya un mapa conceptual del IDE bluJ para el
desarrollo de software en java para fines educativos como para aplicaciones a
pequea escala: 10

5.- Describa mediante un esquema o diagrama el ciclo de desarrollo de
programas en java: .14

Bibliografa ..15



















2

1.- EN GENERAL QUE VENTAJAS Y DESVENTAJAS TIENE JAVA COMPARADO CON
LA MANERA TRADICIONAL DE COMPILAR CDIGO, PARA UNA PLATAFORMA EN
PARTICULAR

JAVA VIRTUAL MACHINE OTROS
Caractersti
ca
Ventaja DESVENTAJAS Ventaja DESVENTAJAS
Independe
ncia de la
plataforma
Java funciona con las principales
plataformas de hardware y sistemas
operativos, o bien con el software
JVM directamente desde Oracle.
Como debe existir un paso
intermedio para usar un
programa en Java, no
podremos usar Java si
queremos desarrollar
programas para un sistema
concreto, para el que no exista
esa mquina virtual.
Suelen ser de mayor
velocidad al ejecutarse
directamente en el sistema
operartivo
La portabilidad los programas
creados en una plataforma tiene
que ser nuevamente escritos en
otra plataforma si es que se
quiere que se ejecuten
Alto
rendimient
o
HotSpot y JRockit son ejemplos de
tecnologas de equipos virtuales de
interpretacin dinmica (JIT) y de
eficacia probada que hacen de Java
uno de los entornos de
programacin ms rpidos.
Al existir un paso intermedio a
generar el bytecode suele ser
un poco ms lento (este
aspecto no suele tener tanta
relevancia ya que los tiempos
para las computadoras no son
tan diferentes)
Los programas realizados
son ejecutables
directamente al estar en
lenguaje maquina propio
del sistema operativo
no hay procesos de certificacin
formal para estos lenguajes
y muchos implementadores
simplemente ignoran algunas
caractersticas de stos
estndares
Fcil de
aprender
Java es el lenguaje de programacin
preferido por las universidades y las
instituciones de enseanza de todo
el mundo.
El modelo de Java para la gestin de
la memoria, los procesos mltiples y
la gestin de excepciones lo
convierte en un lenguaje eficaz para
los desarrolladores nuevos y para
los ms experimentados.
Para poder ejecutar un
programa en bytecode dentro
de un equipo es necesario que
este instalada la mquina
virtual de java para el sistema
operativo en especifico

Ejemplo en C las libreras
estndar ya no cumplen con todo
lo necesario por lo que se tienen
que buscar libreras de terceros
Basado en
estndares
El lenguaje Java y la tecnologa
relacionada evolucionan a travs de
Java Community Process, un
mecanismo que permite desarrollar
especificaciones tcnicas para la
tecnologa Java.

Prevalencia
mundial
Java es la plataforma de
aplicaciones ms popular del planeta
y proporciona un interesante
ecosistema de desarrolladores

3

impulsado por herramientas
eficaces, libros, bibliotecas,
muestras de cdigo y mucho ms.
automatic
garbage
collector
En Java el problema fugas de
memoria se evita en gran medida
gracias a la recoleccin de basura

Optimizado
para los
dispositivos
integrados
Java SE for Embedded Devices
incluye compatibilidad con requisitos
clave, como la compatibilidad con
procesadores integrados, la gestin
de potencia, los despliegues con
huella pequea y mucho ms.

Aplicacione
s porttiles
con alto
rendimient
o
Java alcanza un rendimiento nativo
y proporciona portabilidad en una
amplia gama de procesadores y
sistemas operativos integrados.

Modelo con
seguridad
probada
Java ofrece un entorno de
aplicaciones avanzado con un alto
nivel de seguridad que es idneo
para las aplicaciones de red.


















4

2.- Qu es un compilador?

Compilar significa traducir el cdigo escrito en Lenguaje entendible por humanos (por
ejemplo Java, C, Pascal, Fortran), a un cdigo en Lenguaje Mquina, que entienden las
mquinas, pero no entendible por nosotros. Se hace esto porque a los humanos nos
resultara casi imposible trabajar directamente con el lenguaje de los ordenadores. Es por
eso por lo que usamos un lenguaje ms asequible para nosotros (en nuestro caso Java) y
luego empleamos un traductor (compilador). La creacin de programas en muchos
lenguajes se basa en el proceso: escribir cdigo fuente --> compilar y obtener programa
ejecutable. El compilador se encarga de evitar que se pueda traducir un programa con
cdigo fuente mal escrito y de hacer otras verificaciones previas, de modo que el cdigo
mquina tiene ciertas garantas de que cumple cuando menos con los estndares de sintaxis
obligatorios de un lenguaje.






5

Historia de los Compiladores

A finales de la dcada de 1940, comenzaron a construirse las primeras
computadoras digitales y fue necesario implementar un lenguaje capaz de realizar
los clculos, es aqu donde aparece el lenguaje de mquina que representaba
secuencias de cdigos numricos:
C7 06 0000 0002 (instruccin que mueve el nmero dos a la ubicacin 0000)
Desafortunadamente este lenguaje era tedioso de seguir y complicado de
mantener, por lo que esta forma de codificacin fue reemplazada por el lenguaje
ensamblador, en el cual las instrucciones y las localidades de memoria son formas
simblicas. Un ensamblador traduce de los cdigos simblicos a lenguaje de
mquina. An con esta mejora, el lenguaje ensamblador sigue siendo demasiado
difcil de mantener:
MOV X, 2 (instruccin en ensamblador equivalente a la anterior)
En este punto se presenta la necesidad de lenguajes que permitan escribir los
programas de forma concisa, similar a una notacin matemtica, y que se pudieran
traducir a cdigo ejecutable para una mquina dada:
X = 2
En 1950, G. M. Hooper acua el trmino compilador y aparecen los primeros
trabajos sobre compiladores relacionados con la traduccin de frmulas aritmticas
a cdigo de mquina.

John Backus lider un grupo de trabajo en IBM para realizar de un traductor de
cdigo mquina a frmulas matemticas. Resultando con gran xito: la
especificacin de un lenguaje de alto nivel (FORTRAN, FORmule TRANslation)
Trabajaron 18 personas durante ms de un ao en el proyecto. Fue un compilador
hecho ad-hoc (a puro corazn), pues no exista una teora formal, sino que se iban
resolviendo las construcciones una a una, para cada situacin particular.

Noam Chomsky comienza sus estudios sobre la estructura del lenguaje natural. Sus
estudios lo condujeron a la clasificacin de los lenguajes de acuerdo a una jerarqua
de sus gramticas, adems sus estudios sobre los algoritmos de reconocimiento
derivaron en una automatizacin del proceso de traduccin ms eficiente.

1960, se disea el lenguaje LISP. En un principio, el cdigo LISP se traduca
manualmente a cdigo mquina. Se escribi en LISP un programa capaz de
interpretar programas LISP, que se tradujo manualmente a cdigo de mquina,
construyendo de este modo un intrprete ejecutable de LISP.

Knuth desarrolla la mayora de las tcnicas de anlisis sintctico.
6


1970, se presentan los mayores avances en el rea de lenguajes de programacin.

Aparecen los primeros programas que automatizan los procesos de anlisis lxico y
sintctico. Surgiendo la llamada Torre de Babel debido a la proliferacin de la teora
para la construccin de compiladores.

Niklaus Wirth, disea Pascal, pensado para la enseanza.

Wirth propone el concepto de representacin intermedia de cdigo, separando el
proceso de traduccin en dos fases: el front-end encargada de analizar el programa
fuente (operaciones dependientes slo del lenguaje fuente) y el back-end encargada
de generar el cdigo para la mquina objeto.

1980, comienzan a proliferar las tcnicas de mejoramiento de cdigo (optimizacin),
se consolida y prolifera el concepto de asignacin y liberacin de memoria dinmica.
La programacin orientada a objetos es extensamente utilizada y madura.

1990, los lenguajes de programacin y compiladores son muy similares a lo que
tenemos actualmente, surgen los ambientes de desarrollo, los lenguajes
interpretados comienza a ganar terreno en aplicaciones de Internet y el cdigo
intermedio se vuelve a poner de moda.




















7


INTRPRETE:
Interpretes Ejecutan las instrucciones del programa segn se vallan presentando. Necesitan
menos memoria, pero son ms lentos que los compiladores (LISP, Prolog). Histricamente,
se pusieron de moda en los primeros aos porque los recursos de memoria eran escasos.
Permiten aadir cdigo dinmicamente durante la ejecucin.
Ventajas del compilador
Se compila una vez, se ejecuta n-veces
En bucles, la compilacin genera cdigo equivalente al bucle pero un intrprete se
traduce tantas veces una lnea como veces se repite el bucle
El compilador tiene una visin global del programa, por lo que la informacin de
mensajes de errores es ms detallada.
Ventajas del intrprete
Un intrprete necesita menos memoria que un compilador
Permite una mayor interactividad con el cdigo en tiempo de desarrollo.
Ventajas del compilador - intrprete
Proporcionan algo de flexibilidad extra
Son independientes de la plataforma en la que se ejecuten.
Permiten un mecanismo de reflexin.
Tipos de datos altamente dinmicos.
Gestin de memoria dinmica.
Fcilmente depurables y reducidos en tamao.
FASES DE UN COMPILADOR
Un compilador se compone internamente de varias etapas, o fases, que realizan
operaciones lgicas.
Es til pensar en estas fases como piezas separadas dentro del compilador, y pueden en
realidad escribirse como operaciones codificadas separadamente aunque en la prctica a
menudo se integran.
Fases de un compilador:
Anlisis Lxico
Anlisis Sintctico
Anlisis Semntico
Generacin y Optimizacin de cdigo intermedio
Generacin de cdigo objeto


8

3.- Qu es bytecode?

En l enfoque tradicional de compilacin de un programa, el archivo ejecutable no es vlido
para cualquier ordenador. Por ejemplo, si se ha generado el ejecutable para Windows, no
podr utilizarse en Macintosh. Sin embargo el proceso en Java es diferente. Esta fue una
caracterstica novedosa de Java respecto a otros lenguajes cuando se lanz la primera
versin de Java. La novedad introducida fue que Java se hizo independiente del hardware
y del sistema operativo en que se ejecutaba. En otros lenguajes exista el problema de
compatibilidad descrito. Sin embargo, Java se hizo independiente de la plataforma
aadiendo un paso intermedio: los programas Java no se ejecutan en nuestra mquina real
(en nuestro ordenador o servidor) sino que Java simula una mquina virtual con su propio
hardware y sistema operativo. En resumen, el proceso se ampla en un paso: del cdigo
fuente, se pasa a un cdigo intermedio denominado habitualmente bytecode entendible
por la mquina virtual Java. Y es esta mquina virtual simulada, denominada Java Virtual
Machine o JVM, la encargada de interpretar el bytecode dando lugar a la ejecucin del
programa.












Esto permite que Java pueda ejecutarse en una mquina con el Sistema Operativo Unix,
Windows, Linux o cualquier otro, porque en realidad no va a ejecutarse en ninguno de los
sistemas operativos, sino en su propia mquina virtual que se instala cuando se instala
9

Java. El precio a pagar o desventaja de este esquema es que todo ordenador que quiera
correr una aplicacin Java ha de tener instalado Java con su mquina virtual. Las diferencias
entre ambas concepciones podemos verlas en los siguientes esquemas.






























10

4.- revise exhaustivamente y construya un mapa conceptual del IDE bluJ para el
desarrollo de software en java para fines educativos como para aplicaciones a
pequea escala:



PANTALLA PRINCIPAL DE
BLUEJ
BARRA DE HERRAMIENTAS DE BLUEJ
(Project, edit, tool, view, help)
Nos da las herramientas estndar de todo
programa (abrir, crear nuevo proyecto,
imprimir, guardar)
Adems de las referentes al programa (nueva
clase, paquete, compilar, etc.)
Elementos de ayuda para la creacin de los
diagramas bsicos UML
11








CUANDO YA SE TIENE UN
PROYECTO EN MARCHA
Diagrama UML de un
pequeo programa (aqu
podemos notar las clases de
una manera grfica para una
mejor comprensin), damos
clic en alguna clase y
entraremos al rea de cdigo
En esta ventada es donde incluiremos el cdigo a desarrollar, si podemos notar
est dividido en colores segn abarque cada llave para no perder el orden,
adems contamos con herramientas como: cortar, copiar, pegar, buscar,
cerrar, y compilar
12












Ya que tenemos desarrollado el cdigo si lo deseamos as podemos crear los distintos
objetos a utilizar de cada una de las clases para despus poder compilar y ejecutar el
cdigo. Damos clic derecho sobre una clase y seleccionamos crear un nuevo objeto de la
clase, en el cuadro que aparece escribimos los parmetros que contendr el nuevo
objeto, de esta manera crearemos los objetos que nos sean necesarios segn el programa
Adems dando clic derecho podremos observar las caractersticas de los objetos creados
(valores de atributos, tipo de dato, relaciones, visibilidad, etc). Despus de tener los
objetos necesarios creados se procede a compilar el codigo y listo podemos ver el
resultado.
13


BlueJ es un entorno de desarrollo Java diseado especficamente para la enseanza a un
nivel introductorio. Ha sido diseado e implementado por el equipo BlueJ en la Deakin
University, Melbourne, Australia, y la University of Kent, en Canterbury, UK.
BluJ es un entorno muy interesante sobre todo para el inicio de los programadores ya que
muestra las clases y objetos de una manera grfica y puedes interactuar de cierta manera
con ellos observando los valores que contengan ejecutando acciones individuales, y mucho
ms a fondo conociendo sus tipos de datos asignados, adems de muchas otras cosas. BlueJ
tiene la capacidad para desarrollar software con fines educativos como para aplicaciones a
pequea escala.



























14

5.- Describa mediante un esquema o diagrama el ciclo de desarrollo de
programas en java:








analisis del problema a
resolver
algoritmo, pseudocodigo, UML
compilamos el codigo
generando archivos que
contiene bytecode
.class
ejecutamos el bytecode
en la
Java Virtual Machine (JVM)
(carga las bibliotecas
estandar necesarias)
standard library class
ejecuta codigo de soporte de
ejecucion (manejo de memoria,
errores en tiempo de ejecucion,
etc.)
runtime suport
para applet
java plug-in
la applet se ejecuta en
un navegador
browser
para aplicacion directa
se ejecuta en el sistema
operativo
operating system
hardware
si hay errores
de
compilacion
java source code
escribimos el codigo fuente generando
un archivo
.java
15

Bibliografa:
http://www.oracle.com/es/technologies/java/features/index.html

http://www.aprenderaprogramar.com/index.php?option=com_content&id=392:la-maquina-virtual-
java-jvm-o-java-virtual-machine-compilador-e-interprete-bytecode-cu00611b&Itemid=188
http://books.google.com.mx/books?id=yG6qJBAnE9UC&printsec=frontcover&source=gbs_ge_summa
ry_r&cad=0#v=onepage&q&f=false
Aho, A.V., Sethi, R., Ullman, J.D. (1990), Compiladores: principios, tcnicas y herramientas, capitulo 1,
pginas: 1- 25, 743-747.
Louden, K.C. (1997), Construccin de Compiladores: Principios y prctica, capitulo 1, pginas: 1- 27.
http://www.bluej.org/tutorial/tutorial-spanish-201.pdf

También podría gustarte