martes, 2 de noviembre de 2010
martes, 7 de septiembre de 2010
MULTIDIMENSIONAL
En programación, un vector multidimensional es un vector que se indexa mediante una lista ordenada de enteros. El número de enteros que se utiliza en esta lista para indexar el vector multidimensional es siempre el mismo y se conoce como la dimensionalidad del vector. Por otra parte, los límites de cada uno de los enteros que forman parte del indice, determinan la dimensión del vector. A un vector con dimensionalidad k se le suele llamar k-dimensional. Los vectores 1-dimensional se corresponden con los vectores ordinarios en los que los elementos están dispuestos en una única fila (o columna); los vectores 2-dimensional son otra forma de llamar a las clásicas matrices en las que sus elementos están dispuestos en varias filas y columnas (dos dimensiones). En la práctica, la dimensionalidad de un vector raras veces excede de tres.
[editar] Representación en memoria
La forma de disponer los elementos de un vector 1-dimensional en la memoria de un ordenador es trivial, ya que ésta, en sí misma, tiene la forma de un vector 1-dimensional (muy grande). Cuando se quiere almacenar vectores n-dimensionales, sin embargo, el problema ya no es evidente. Supongamos que queremos representar esta simple matriz de dos dimensiones:
La forma más común de indexar esta matriz (o vector 2-dimensional) es utilizando la convención RC (del inglés Row-Column, fila-columna), en la que los elementos se referencian indicando primero la fila y luego la columna (ejemplo, ), de esta forma se tiene que:
La indexación de vectores multidimensionales se puede hacer de alguna de estas maneras:
Orden fila-principal: Los elementos de cada fila son almacenados en orden, primero una fila, luego otra, y así sucesivamente. Este método se utiliza sobre todo en los arrays estáticos declarados en C.
1 2 3 4 5 6 7 8 9
Orden columna-principal: Análogo al anterior pero esta vez almacenando los elementos por columnas en vez de por filas:
1 4 7 2 5 8 3 6 9
Vector 2-dimensional almacenado en un vector 1-dimensional de vectores 1-dimensionales.Vector de vectores (o array de arrays): Típicamente, los vectores multidimensionales se representan utilizando un vector 1-dimensional que contiene referencias (o punteros) a otros vectores 1-dimensionales. Estos subvectores pueden ser, indistintamente, las filas o las columnas de la matriz, todo depende del criterio o la interpretación que se quiera tomar.
Las dos primeras formas son más compactas y tienen potencialmente mejor localización de referencia, pero también son más limitadas; los vectores deben ser rectangulares, en el sentido de que ninguna fila puede contener más elementos otra. Los vectores de vectores, por otro lado, permiten la creación de vectores desiguales, también llamados vectores dentados, en la que el rango válido de un índice depende del valor de otro, o dicho con otras palabras, que las diferentes filas (o columnas) pueden ser de diferentes tamaños. Los vectores de vectores también son de utilidad en los lenguajes de programación que sólo permiten vectores 1-dimensionales como primitivas.
En muchas aplicaciones, como aplicaciones numéricas que trabajan con matrices, hay que iterar sobre vectores rectangulares 2-dimensionales de forma predecible. Por ejemplo, calcular un elemento de la matriz producto A x B implica iterar sobre una fila de A y una columna de B simultáneamente. Al indexar los elementos de la matriz según se encuentre esta almacenada en memoria, se deben optimizar las operaciones de localización de cada elemento tanto como se pueda. A veces, un compilador puede determinar automáticamente el diseño de la serie secuencial de elementos de un vector para que se almacenen también secuencialmente en memoria, en nuestro ejemplo, podría elegir el orden de fila-principal para A, y el orden columna-principal para B. Existen más formas de almacenar los elementos de una matriz en memoria, que serán más eficientes para otro tipo de problemas, por ejemplo si se quiere iterar sobre la diagonal principal de una matriz
[editar] Representación en memoria
La forma de disponer los elementos de un vector 1-dimensional en la memoria de un ordenador es trivial, ya que ésta, en sí misma, tiene la forma de un vector 1-dimensional (muy grande). Cuando se quiere almacenar vectores n-dimensionales, sin embargo, el problema ya no es evidente. Supongamos que queremos representar esta simple matriz de dos dimensiones:
La forma más común de indexar esta matriz (o vector 2-dimensional) es utilizando la convención RC (del inglés Row-Column, fila-columna), en la que los elementos se referencian indicando primero la fila y luego la columna (ejemplo, ), de esta forma se tiene que:
La indexación de vectores multidimensionales se puede hacer de alguna de estas maneras:
Orden fila-principal: Los elementos de cada fila son almacenados en orden, primero una fila, luego otra, y así sucesivamente. Este método se utiliza sobre todo en los arrays estáticos declarados en C.
1 2 3 4 5 6 7 8 9
Orden columna-principal: Análogo al anterior pero esta vez almacenando los elementos por columnas en vez de por filas:
1 4 7 2 5 8 3 6 9
Vector 2-dimensional almacenado en un vector 1-dimensional de vectores 1-dimensionales.Vector de vectores (o array de arrays): Típicamente, los vectores multidimensionales se representan utilizando un vector 1-dimensional que contiene referencias (o punteros) a otros vectores 1-dimensionales. Estos subvectores pueden ser, indistintamente, las filas o las columnas de la matriz, todo depende del criterio o la interpretación que se quiera tomar.
Las dos primeras formas son más compactas y tienen potencialmente mejor localización de referencia, pero también son más limitadas; los vectores deben ser rectangulares, en el sentido de que ninguna fila puede contener más elementos otra. Los vectores de vectores, por otro lado, permiten la creación de vectores desiguales, también llamados vectores dentados, en la que el rango válido de un índice depende del valor de otro, o dicho con otras palabras, que las diferentes filas (o columnas) pueden ser de diferentes tamaños. Los vectores de vectores también son de utilidad en los lenguajes de programación que sólo permiten vectores 1-dimensionales como primitivas.
En muchas aplicaciones, como aplicaciones numéricas que trabajan con matrices, hay que iterar sobre vectores rectangulares 2-dimensionales de forma predecible. Por ejemplo, calcular un elemento de la matriz producto A x B implica iterar sobre una fila de A y una columna de B simultáneamente. Al indexar los elementos de la matriz según se encuentre esta almacenada en memoria, se deben optimizar las operaciones de localización de cada elemento tanto como se pueda. A veces, un compilador puede determinar automáticamente el diseño de la serie secuencial de elementos de un vector para que se almacenen también secuencialmente en memoria, en nuestro ejemplo, podría elegir el orden de fila-principal para A, y el orden columna-principal para B. Existen más formas de almacenar los elementos de una matriz en memoria, que serán más eficientes para otro tipo de problemas, por ejemplo si se quiere iterar sobre la diagonal principal de una matriz
TABLA
Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un programa de Hoja de cálculo.
Las tablas se componen de dos estructuras:
En la definición de cada campo, debe existir un nombre único, con su tipo de dato correspondiente. Esto es útil a la hora de manejar varios campos en la tabla, ya que cada nombre de campo debe ser distinto entre sí.
A los campos se les puede asignar, además, propiedades especiales que afectan a los registros insertados. El campo puede ser definido como índice o autoincrementable, lo cual permite que los datos de ese campo cambien solos o sean el principal indicar a la hora de ordenar los datos contenidos.
Cada tabla creada debe tener un nombre único en la cada Base de Datos, haciéndola accesible mediante su nombre o su seudónimo (Alias) (dependiendo del tipo de base de datos elegida).
La estructura de las tablas viene dado por la forma de un archivo plano, los cuales en un inicio se componían de un modo similar
Las tablas se componen de dos estructuras:
En la definición de cada campo, debe existir un nombre único, con su tipo de dato correspondiente. Esto es útil a la hora de manejar varios campos en la tabla, ya que cada nombre de campo debe ser distinto entre sí.
A los campos se les puede asignar, además, propiedades especiales que afectan a los registros insertados. El campo puede ser definido como índice o autoincrementable, lo cual permite que los datos de ese campo cambien solos o sean el principal indicar a la hora de ordenar los datos contenidos.
Cada tabla creada debe tener un nombre único en la cada Base de Datos, haciéndola accesible mediante su nombre o su seudónimo (Alias) (dependiendo del tipo de base de datos elegida).
La estructura de las tablas viene dado por la forma de un archivo plano, los cuales en un inicio se componían de un modo similar
MATRIZ
En programación, una matriz o vector (llamados en inglés arrays) es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lógico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones). En principio, se puede considerar que todas las matrices son de una dimensión, la dimensión principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que puede ser recursivo), lo que nos permite hablar de la existencia de matrices multidimensionales, aunque las más fáciles de imaginar son los de una, dos y tres dimensiones.
Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar ordenados y se va a utilizar acceso secuencial sería más adecuado utilizar una lista, ya que esta estructura puede cambiar de tamaño fácilmente durante la ejecución de un programa.
Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar ordenados y se va a utilizar acceso secuencial sería más adecuado utilizar una lista, ya que esta estructura puede cambiar de tamaño fácilmente durante la ejecución de un programa.
BIDIMENCIONAL
Algo es bidimensional si tiene dos dimensiones, por ejemplo, ancho y largo, pero no profundo. Los planos En química se puede hablar de un sistema bidimensional si el enlace es especialmente fuerte en dos dimensiones, y más débil en la tercera, como en el caso del grafito. Igualmente, en electricidad, un conductor se considera bidimensional si es prácticamente aislante en una de las direcciones del espacio, y su conductividad es mucho mayor en las otras dosn bidimensionales, y sólo pueden contener cuerpos unidimensionales o bidimensionales.
VECTOR
En física, un vector es una herramienta geométrica utilizada para representar una magnitud física del cual depende unicamente un módulo (o longitud) y una dirección (u orientación) para quedar definido.[1] [2] [3] [4]
Los vectores se pueden representar geométricamente como segmentos de recta dirigidos o flechas en planos o ; es decir, bidimensional o tridimensional.
Ejemplos
La velocidad con que se desplaza un móvil es una magnitud vectorial, ya que no queda definida tan sólo por su módulo (lo que marca el velocímetro, en el caso de un automóvil), sino que se requiere indicar la dirección hacia la que se dirige.
La fuerza que actúa sobre un objeto es una magnitud vectorial, ya que su efecto depende, además de su intensidad o módulo, de la dirección en la que opera.
El desplazamiento de un objeto.
Los vectores se pueden representar geométricamente como segmentos de recta dirigidos o flechas en planos o ; es decir, bidimensional o tridimensional.
Ejemplos
La velocidad con que se desplaza un móvil es una magnitud vectorial, ya que no queda definida tan sólo por su módulo (lo que marca el velocímetro, en el caso de un automóvil), sino que se requiere indicar la dirección hacia la que se dirige.
La fuerza que actúa sobre un objeto es una magnitud vectorial, ya que su efecto depende, además de su intensidad o módulo, de la dirección en la que opera.
El desplazamiento de un objeto.
UNIDIMENSIONAL
Una de las características más evidente de nuestro mundo físico y que prácticamente a nadie le llama la atención es la tridimensionalidad del espacio. En la teoría de la relatividad especial de Einstein, el espacio y el tiempo pasan a estar tan íntimamente entrelazados que Hermann Minkowski consiguió demostrar que en ella el tiempo podía considerarse una cuarta dimensión (aunque no sea una dimensión espacial). Nadie tiene la menor idea de por qué el mundo en que vivimos tiene una dimensión temporal y tres espaciales y no, por ejemplo, once dimensiones. Por supuesto, el mundo sería muy distinto si alterásemos su dimensionalidad. Quizá las dimensiones superiores sean fatales para la vida y debamos agradecer nuestra modesta asignación La dimensión (del latín dimensio, "medida") es, esencialmente, el número de grados de libertad para realizar un movimiento en el espacio. Comúnmente, las dimensiones de un objeto son las medidas que definen su forma y tamañode cuatro.
martes, 31 de agosto de 2010
HISTORIA
La tecnología Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo.
El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java.
El término Java fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo más"). La hipótesis que más fuerza tiene es la que Java debe su nombre a un tipo de café disponible en la cafetería cercana, de ahí que el icono de java sea una taza de cafe caliente. Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes (el número mágico) de los archivos .class que genera el compilador, son en hexadecimal, 0xCAFEBABE. Otros simplemente dicen que el nombre fue sacado al parecer de una lista aleatoria de palabras.
Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura y sintaxis similar a C++. Entre junio y julio de 1994, tras una sesión maratoniana de tres días entre John Gaga, James Gosling, Joy Naughton, Wayne Rosing y Eric Schmidt, el equipo reorientó la plataforma hacia la Web. Sintieron que la llegada del navegador web Mosaic, propiciaría que Internet se convirtiese en un medio interactivo, como el que pensaban era la televisión por cable. Naughton creó entonces un prototipo de navegador, WebRunner, que más tarde sería conocido como HotJava.
En 1994, se les hizo una demostración de HotJava y la plataforma Java a los ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld, a que vieran la luz pública Java y HotJava, el navegador Web. El acontecimiento fue anunciado por John Gage, el Director Científico de Sun Microsystems. El acto estuvo acompañado por una pequeña sorpresa adicional, el anuncio por parte de Marc Andreessen, Vicepresidente Ejecutivo de Netscape, de que Java sería soportado en sus navegadores. El 9 de enero del año siguiente, 1996, Sun fundó el grupo empresarial JavaSoft para que se encargase del desarrollo tecnológico. [1] Dos semanas más tarde la primera versión de Java fue publicada.
El lenguaje se denominó inicialmente Oak (por un roble que había fuera de la oficina de Gosling), luego pasó a denominarse Green tras descubrir que Oak era ya una marca comercial registrada para adaptadores de tarjetas gráficas y finalmente se renombró a Java.
El término Java fue acuñado en una cafetería frecuentada por algunos de los miembros del equipo. Pero no está claro si es un acrónimo o no, aunque algunas fuentes señalan que podría tratarse de las iniciales de sus creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan por el siguiente acrónimo, Just Another Vague Acronym ("sólo otro acrónimo ambiguo más"). La hipótesis que más fuerza tiene es la que Java debe su nombre a un tipo de café disponible en la cafetería cercana, de ahí que el icono de java sea una taza de cafe caliente. Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes (el número mágico) de los archivos .class que genera el compilador, son en hexadecimal, 0xCAFEBABE. Otros simplemente dicen que el nombre fue sacado al parecer de una lista aleatoria de palabras.
Los objetivos de Gosling eran implementar una máquina virtual y un lenguaje con una estructura y sintaxis similar a C++. Entre junio y julio de 1994, tras una sesión maratoniana de tres días entre John Gaga, James Gosling, Joy Naughton, Wayne Rosing y Eric Schmidt, el equipo reorientó la plataforma hacia la Web. Sintieron que la llegada del navegador web Mosaic, propiciaría que Internet se convirtiese en un medio interactivo, como el que pensaban era la televisión por cable. Naughton creó entonces un prototipo de navegador, WebRunner, que más tarde sería conocido como HotJava.
En 1994, se les hizo una demostración de HotJava y la plataforma Java a los ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld, a que vieran la luz pública Java y HotJava, el navegador Web. El acontecimiento fue anunciado por John Gage, el Director Científico de Sun Microsystems. El acto estuvo acompañado por una pequeña sorpresa adicional, el anuncio por parte de Marc Andreessen, Vicepresidente Ejecutivo de Netscape, de que Java sería soportado en sus navegadores. El 9 de enero del año siguiente, 1996, Sun fundó el grupo empresarial JavaSoft para que se encargase del desarrollo tecnológico. [1] Dos semanas más tarde la primera versión de Java fue publicada.
CARACTERISTICAS
Características de Java
Las características principales que nos ofrece Java respecto a cualquier otro lenguaje de programación, son:
Es SIMPLE :
Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las características menos usadas y más confusas de éstos. C++ es un lenguaje que adolece de falta de seguridad, pero C y C++ son lenguajes más difundidos, por ello Java se diseñó para ser parecido a C++ y así facilitar un rápido y fácil aprendizaje.
Java elimina muchas de las características de otros lenguajes como C++, para mantener reducidas las especificaciones del lenguaje y añadir características muy útiles como el garbage collector (reciclador de memoria dinámica). No es necesario preocuparse de liberar memoria, el reciclador se encarga de ello y como es un thread de baja prioridad, cuando entra en acción, permite liberar bloques de memoria muy grandes, lo que reduce la fragmentación de la memoria.
Java reduce en un 50% los errores más comunes de programación con lenguajes como C y C++ al eliminar muchas de las características de éstos, entre las que destacan:
•aritmética de punteros
•no existen referencias
•registros (struct)
•definición de tipos (typedef)
•macros (#define)
•necesidad de liberar memoria (free)
Aunque, en realidad, lo que hace es eliminar las palabras reservadas (struct, typedef), ya que las clases son algo parecido.
Además, el intérprete completo de Java que hay en este momento es muy pequeño, solamente ocupa 215 Kb de RAM.
Es ORIENTADO A OBJETOS :
Java implementa la tecnología básica de C++ con algunas mejoras y elimina algunas cosas para mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus datos como objetos y con interfaces a esos objetos. Soporta las tres características propias del paradigma de la orientación a objetos: encapsulación, herencia y polimorfismo. Las plantillas de objetos son llamadas, como en C++, clases y sus copias, instancias . Estas instancias, como en C++, necesitan ser construidas y destruidas en espacios de memoria.
Java incorpora funcionalidades inexistentes en C++ como por ejemplo, la resolución dinámica de métodos. Esta característica deriva del lenguaje Objective C, propietario del sistema operativo Next. En C++ se suele trabajar con librerías dinámicas (DLLs) que obligan a recompilar la aplicación cuando se retocan las funciones que se encuentran en su interior. Este inconveniente es resuelto por Java mediante una interfaz específica llamada RTTI ( RunTime Type Identification ) que define la interacción entre objetos excluyendo variables de instancias o implementación de métodos. Las clases en Java tienen una representación en el runtime que permite a los programadores interrogar por el tipo de clase y enlazar dinámicamente la clase con el resultado de la búsqueda.
Es DISTRIBUIDO :
Java se ha construido con extensas capacidades de interconexión TCP/IP. Existen librerías de rutinas para acceder e interactuar con protocolos como http y ftp . Esto permite a los programadores acceder a la información a través de la red con tanta facilidad como a los ficheros locales.
La verdad es que Java en sí no es distribuido, sino que proporciona las librerías y herramientas para que los programas puedan ser distribuidos, es decir, que se corran en varias máquinas, interactuando.
Es ROBUSTO :
Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución. La comprobación de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Java obliga a la declaración explícita de métodos, reduciendo así las posibilidades de error. Maneja la memoria para eliminar las preocupaciones por parte del programador de la liberación o corrupción de memoria. También implementa los arrays auténticos , en vez de listas enlazadas de punteros, con comprobación de límites, para evitar la posibilidad de sobreescribir o corromper memoria resultado de punteros que señalan a zonas equivocadas. Estas características reducen drásticamente el tiempo de desarrollo de aplicaciones en Java.
Además, para asegurar el funcionamiento de la aplicación, realiza una verificación de los byte-codes , que son el resultado de la compilación de un programa Java. Es un código de máquina virtual que es interpretado por el intérprete Java. No es el código máquina directamente entendible por el hardware, pero ya ha pasado todas las fases del compilador: análisis de instrucciones, orden de operadores, etc., y ya tiene generada la pila de ejecución de órdenes.
Java proporciona, pues:
•Comprobación de punteros
•Comprobación de límites de arrays
•Excepciones
•Verificación de byte-codes
Las características principales que nos ofrece Java respecto a cualquier otro lenguaje de programación, son:
Es SIMPLE :
Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las características menos usadas y más confusas de éstos. C++ es un lenguaje que adolece de falta de seguridad, pero C y C++ son lenguajes más difundidos, por ello Java se diseñó para ser parecido a C++ y así facilitar un rápido y fácil aprendizaje.
Java elimina muchas de las características de otros lenguajes como C++, para mantener reducidas las especificaciones del lenguaje y añadir características muy útiles como el garbage collector (reciclador de memoria dinámica). No es necesario preocuparse de liberar memoria, el reciclador se encarga de ello y como es un thread de baja prioridad, cuando entra en acción, permite liberar bloques de memoria muy grandes, lo que reduce la fragmentación de la memoria.
Java reduce en un 50% los errores más comunes de programación con lenguajes como C y C++ al eliminar muchas de las características de éstos, entre las que destacan:
•aritmética de punteros
•no existen referencias
•registros (struct)
•definición de tipos (typedef)
•macros (#define)
•necesidad de liberar memoria (free)
Aunque, en realidad, lo que hace es eliminar las palabras reservadas (struct, typedef), ya que las clases son algo parecido.
Además, el intérprete completo de Java que hay en este momento es muy pequeño, solamente ocupa 215 Kb de RAM.
Es ORIENTADO A OBJETOS :
Java implementa la tecnología básica de C++ con algunas mejoras y elimina algunas cosas para mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus datos como objetos y con interfaces a esos objetos. Soporta las tres características propias del paradigma de la orientación a objetos: encapsulación, herencia y polimorfismo. Las plantillas de objetos son llamadas, como en C++, clases y sus copias, instancias . Estas instancias, como en C++, necesitan ser construidas y destruidas en espacios de memoria.
Java incorpora funcionalidades inexistentes en C++ como por ejemplo, la resolución dinámica de métodos. Esta característica deriva del lenguaje Objective C, propietario del sistema operativo Next. En C++ se suele trabajar con librerías dinámicas (DLLs) que obligan a recompilar la aplicación cuando se retocan las funciones que se encuentran en su interior. Este inconveniente es resuelto por Java mediante una interfaz específica llamada RTTI ( RunTime Type Identification ) que define la interacción entre objetos excluyendo variables de instancias o implementación de métodos. Las clases en Java tienen una representación en el runtime que permite a los programadores interrogar por el tipo de clase y enlazar dinámicamente la clase con el resultado de la búsqueda.
Es DISTRIBUIDO :
Java se ha construido con extensas capacidades de interconexión TCP/IP. Existen librerías de rutinas para acceder e interactuar con protocolos como http y ftp . Esto permite a los programadores acceder a la información a través de la red con tanta facilidad como a los ficheros locales.
La verdad es que Java en sí no es distribuido, sino que proporciona las librerías y herramientas para que los programas puedan ser distribuidos, es decir, que se corran en varias máquinas, interactuando.
Es ROBUSTO :
Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución. La comprobación de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Java obliga a la declaración explícita de métodos, reduciendo así las posibilidades de error. Maneja la memoria para eliminar las preocupaciones por parte del programador de la liberación o corrupción de memoria. También implementa los arrays auténticos , en vez de listas enlazadas de punteros, con comprobación de límites, para evitar la posibilidad de sobreescribir o corromper memoria resultado de punteros que señalan a zonas equivocadas. Estas características reducen drásticamente el tiempo de desarrollo de aplicaciones en Java.
Además, para asegurar el funcionamiento de la aplicación, realiza una verificación de los byte-codes , que son el resultado de la compilación de un programa Java. Es un código de máquina virtual que es interpretado por el intérprete Java. No es el código máquina directamente entendible por el hardware, pero ya ha pasado todas las fases del compilador: análisis de instrucciones, orden de operadores, etc., y ya tiene generada la pila de ejecución de órdenes.
Java proporciona, pues:
•Comprobación de punteros
•Comprobación de límites de arrays
•Excepciones
•Verificación de byte-codes
JAVA
Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria.
miércoles, 18 de agosto de 2010
PROGRAMACION
Programación es aquella actividad por la cual se crean programas para computadoras, tales programas pueden ser códigos fuentes interpretados (como por ejemplo scripts en BASH) o códigos fuentes que serán compilados (como por ejemplo programas en C++) hacia lenguajes binarios y ejecutados desde el kernel del sistema operativo.
No es normal escribir un programa en lenguaje de máquina dado que es muy difícil, en cambio, se utilizan lenguajes de programación inteligibles por un ser humano. No es necesario que un programa sea escrito en un sólo lenguaje, puede poseer diversas partes escritas en distintos lenguajes de programación, como por ejemplo C, C++ y Asm.
La diferencia entre algoritmo y programa es que este último implementa, en general, traduciendo a un lenguaje de programación en concreto, un algoritmo, el cual es una secuencia finita, ordenada y no ambigua de instrucciones que resuelven determinado problema. Esta secuencia de instrucciones luego podrá ser repetida cuantas veces sea necesario, dentro del mismo programa, o con la ejecución del programa en varias oportunidades.
Los desarrolladores de programas aprenden técnicas de programación, como por ejemplo la división del problema en partes menores, creando módulos para reducir la complejidad algorítmica global. Entre las diferentes técnicas existentes podemos mencionar la orientada a objetos, la modular, la estructurada y la lineal, buscando normalmente mejorar el proceso de creación, expansión y mantenimiento.
Por German Isaac
No es normal escribir un programa en lenguaje de máquina dado que es muy difícil, en cambio, se utilizan lenguajes de programación inteligibles por un ser humano. No es necesario que un programa sea escrito en un sólo lenguaje, puede poseer diversas partes escritas en distintos lenguajes de programación, como por ejemplo C, C++ y Asm.
La diferencia entre algoritmo y programa es que este último implementa, en general, traduciendo a un lenguaje de programación en concreto, un algoritmo, el cual es una secuencia finita, ordenada y no ambigua de instrucciones que resuelven determinado problema. Esta secuencia de instrucciones luego podrá ser repetida cuantas veces sea necesario, dentro del mismo programa, o con la ejecución del programa en varias oportunidades.
Los desarrolladores de programas aprenden técnicas de programación, como por ejemplo la división del problema en partes menores, creando módulos para reducir la complejidad algorítmica global. Entre las diferentes técnicas existentes podemos mencionar la orientada a objetos, la modular, la estructurada y la lineal, buscando normalmente mejorar el proceso de creación, expansión y mantenimiento.
Por German Isaac
Suscribirse a:
Comentarios (Atom)
