Voy a describir el programa que incluyo en la práctica; comentario sobre el lenguaje, el algoritmo, listado del programa, ...
Mi programa está basado en el apartado 2.4. del trabajo teórico, que trata sobre los sistemas dinámicos complejos.
Es un visualizador de los conjuntos de Mandelbrot, Julia y Pickover descritos en el trabajo, y permite ver los conjuntos con distintos aumentos, manejando estos aumentos mediante el ratón. Indicar que en el caso del conjunto de Pickover, el sistema dinámico complejo que estoy explorando es el que viene dado por (C , fC(z) = z3 + c).
Está programado en Java, porque este lenguaje le permite una gran portabilidad, ya que puede ser ejecutado en cualquier plataforma para la que exista una "Máquina Virtual Java" (actualmente existen versiones de la "Máquina Virtual Java" para Windows, Unix, Linux, Solaris, ...). Además, lo he programado en forma de Applet (pequeño programa que se ejecuta dentro de una página Web), lo que contribuye a aumentar su portabilidad, ya que puede ser ejecutado en cualquier navegador posterior a Netscape 2.0 ó Explorer 3.0, independientemente del sistema operativo del ordenador que esté ejecutando el navegador.
Java es un lenguaje de programación que está orientado a objetos, y forma parte de uno de los intentos más serios de materializar el lenguaje universal, es decir, el lenguaje que sea portable a cualquier máquina y sistema operativo, no sólo a nivel de código fuente, sino también a nivel de ejecutable.
Además, Java es un vehículo para potenciar las comunicaciones en Internet, y dotar a las páginas Web de interactividad.
Bajo la perspectiva de lenguaje de programación, Java es totalmente novedoso: recoge las mejores características de C++, actual punto de referencia de los lenguajes de programación de propósito general, y se desprende de alguno de sus defectos como son los punteros y la gestión de memoria.
Los principales elementos C/C++ que Java no implementa son la sobrecarga de operadores aritméticos, los punteros, las estructuras, las uniones, las matrices multidimensionales, la conversión implícita de tipos y la herencia múltiple.
Java es más robusto que C gracias al manejo de excepciones.
Java es una estrategia para conseguir un lenguaje que sea portable a nivel de código máquina.
Si las arquitecturas de hardware actuales son distintas, las llamadas que se hagan a estas arquitecturas serán completamente distintas unas de otras. No hay código máquina versátil que, siendo la misma sentencia, actúe de forma diferente en función de la máquina en la que se ejecute.
La solución que aporta Java se encuentra en introducir un nivel intermedio, situado entre las llamadas al sistema operativo y el código máquina. Para construir este nivel intermedio, Java implementa dos novedades: los "bytecodes" y la "Máquina Virtual Java".
Los "bytecodes" son instrucciones binarias, parecidas al código máquina, que representan operaciones a realizar por un ordenador imaginario: la "Máquina Virtual Java".
La "Máquina Virtual Java" no es más que una aplicación que produce código máquina a partir de una especie de pseudocódigo (los "bytecodes"). Estos "bytecodes" tienen la particularidad de ser iguales para cualquier tipo de arquitectura de hardware.
La "Máquina Virtual Java" sí es dependiente del sistema operativo. Es la que traduce los "bytecodes" en código máquina de cada ordenador.
El hecho de que Java tenga una naturaleza independiente de la plataforma en la que se ejecuta, lo hace más atractivo en aquellos entornos en los que la portabilidad se valore más, como por ejemplo en Internet.
Java es un lenguaje de programación muy preocupado por la seguridad, tanto ante fallos involuntarios de programación (de ahí que haya suprimido los punteros) como ante fallos intencionados (los virus).
Para protegerse de todos estos fallos, la "Máquina Virtual Java" realiza una serie de comprobaciones sobre el ejecutable para asegurarse de que no realiza ninguna operación que comprometa la seguridad del equipo.
Esto unido a que para poder ejecutar el programa hay que traducir antes los "bytecodes" a código máquina, explica que un mismo programa escrito en C/C++ sea unas 20 veces más rápido que su equivalente en Java.
Java fue diseñado por James Gosling, de Sun Microsystems en 1990, como software para dispositivos electrónicos de consumo.
En la actualidad, la práctica totalidad de los dispositivos (lavadoras, frigoríficos, ...) contienen un chip que ha de ser programado para que pueda realizar una actuación determinada. La idea que surgió originalmente era la de poder encontrar un lenguaje que tuviera arquitectura neutra, que fuera robusto y que además fuese seguro, con la condición de que pudiera utilizarse en la electrónica de consumo.
Tras los primeros diseños de Java, surgió la idea de probarlo como lenguaje de propósito más general, y fue portado a las estaciones Unix de Sun.
En 1993, tras la llegada de Van Hoff y Shaiao al equipo de Java, se empieza a meditar la posibilidad de habilitar Java para Internet.
El lenguaje Java tiene un gran futuro al permitir reducir los costes del desarrollo de software por parte de las empresas, ya que al ser un lenguaje independiente de la plataforma, no hace falta crear versiones distintas de un mismo programa para cada tipo de ordenador, ya que la misma versión de un programa puede funcionar igual tanto bajo Windows como bajo Unix (por poner un ejemplo).
Además, Java ha recibido últimamente un impulso muy importante tras ser licenciado por IBM para tomarlo como base para su futuro desarrollo de aplicaciones para redes, planeando esta compañía no sólo la creación de programas en Java, sino también el desarrollo de una futura versión de OS/2 (su sistema operativo para PCs) programada en Java (JAVAOS/2), versión que permitiría instalar su sistema operativo sobre cualquier plataforma hardware (ver PCActual Abril’98).
Java Developers Kit (JDK), es el entorno de desarrollo del lenguaje Java provisto por Sun Microsystems. Se trata de un conjunto de comandos que posibilitan el desarrollo de aplicaciones en Java, y que se distribuye de forma gratuita. Incluye los comandos necesarios para compilar y ejecutar Java.
En Java, la compilación es el proceso por el cual un archivo escrito en Java se transforma en uno o más archivos que representan los "bytecodes" del programa.
Para realizar la compilación de un archivo en Java, se utiliza el comando:
Para ejecutar el programa Java (si se trata de un Applet, como en el caso de mi programa), tenemos que crear un archivo con extensión html (por ejemplo nombreArchivo.html), que contenga la siguiente línea:
y para ver el Applet hay que ejecutar el siguiente comando:
|
|
|
|