lunes, 30 de marzo de 2009

JAVA (Estructura y Gestion de Datos)

En la actualidad, existen diversos tipos de lenguajes que fueron creados para una determinada funciòn, estàn especielmente diseñados para fasilitar la programaciòn de distintos tipos de problemas, garantizando la seguridad de las aplicaciones, para obtener una mayor facilidad de programaciòn y conseguir un mayor aprovechamiento de los recursos del ordenador.
Cuando un programador elije un lenguaje, deve pensar en sus necesidaddes y la fasilidad de la programaciòn.
Como nuevos estudiantes de Java devemos preguntarnos ¿para que fue creado este lenguaje?.

CARACTERISTICAS DE JAVA

Las caracteristicas mas generales de java nos alludaran a ver para que tipo de probleams està pensado este lenguaje:

SIMPLE: Es un lenguaje sencillo de aprender de sintaxis parecida a lo de C++ pero màs simplificado cabe aclarar que los creadores de java partieron de la sintaxis de C++, tratando de eliminar las partes complicadas y las fuentes de error de lenguaje.

ORIENTADO A OBJETO: Posiblemente sea el lenguaje màs orientado a objeto de os existentes; En java todo a exepcion de los tipos fundamentales de variable. (in, char, long, etc..) es un objeto

DISTRIBUIDO: Java esà muy orientado al trabajo en red, soportando protocolos como TCP/IP, UDP,HTTP, y FTP. El uso de estos protocolos es bastante sencillo comparandolo con otros lenguajes que los sopotan

TCP/IP:
La familia de protocolos de Internet es un conjunto de protocolos de red en la que se basa Internet y que permiten la transmisión de datos entre redes de computadoras. En ocasiones se le denomina conjunto de protocolos TCP/IP

UDP
User Datagram Protocol (UDP) es un protocolo del nivel de transporte basado en el intercambio de datagramas. Permite el envío de datagramas a través de la red sin que se haya establecido previamente una conexión,

HTTP es un protocolo sin estado, es decir, que no guarda ninguna información sobre conexiones anteriores. El desarrollo de aplicaciones web necesita frecuentemente mantener estado. Para esto se usan las cookies, que es información que un servidor puede almacenar en el sistema cliente. Esto le permite a las aplicaciones web instituir la noción de "sesión", y también permite rastrear usuarios ya que las cookies pueden guardarse en el cliente por tiempo indeterminado.

FTP (sigla en inglés de File Transfer Protocol - Protocolo de Transferencia de Archivos) en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP, basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.

El compilador javadetecta muchos errores que otros compiladores, solo detectarian en tiempo de ejecucion o incluso nunca


if(a=b) then

El compilador java no nos dejaria compilar este codigo

cEN Java no hay aspectos dependientes de la implementacion, todas las implementaciones siguen los mismos estandares en cuento a tamaño y almacenamiento de datos, esto no ocurre asi en c++. en este es un entero puede un tamaño de 16, 32, o màs bits siendo la unica limitacion que un entero sea un mayor que un short y menos que un long int. c++ bajo sistema operativo unix almacena los datos en formato litle endian mientras que en windows lo hace en formato bigendian. Java lo hace siempre en litleendian para evitar confunciones.

nota: consepto de endiannes


ARQUITECTURA NATURAL


El código generado por el compilador Java es independiente de la arquitectura: podría
ejecutarse en un entorno UNIX, Mac o Windows


El motivo de esto es que el que realmente
ejecuta el código generado por el compilador no es el procesador del ordenador directamente,
sino que este se ejecuta mediante una máquina virtual.


Esto permite que los Applets de una
web pueda ejecutarlos cualquier máquina que se conecte a ella independientemente de que
sistema operativo emplee (siempre y cuando el ordenador en cuestión tenga instalada una
máquina virtual de Java).

RENDIMIENTO MEDIO

En la actualidad la velocidad de procesado es semejante a la de c++, hay siertas pruebas estandares de comparaciòn bnchmark, en las cuales a java gana a c++ y viceversa, esto es asi gracias al uso de compiladores just intime los cuales traducen los bitecodec de Java de codigo para una determinada CPU, que no precisa de maquinas virtuales para ser ejecutadas, y guardan el resultado de dicha conberciòn, volviendo a llamar en caso de volverlos a necesitar, lo que se evita la sobrecarga de tarbajo asociada a la interpretacion del bitecodec.

Multithread


Soporta del modo nativo los treat o hilos sin necesidadde librerias especificas (con en el caso de C++).Esto le permite ademas que cada hilon de una aplicaciòn Javapueda correr a una CPU distinta, si la aplicaciòn se ejecuta en una maquna que pose varias CPU. Las aplicaciones C++ no son capases de distribuir de modotransparente para el programador la carga entre variasCPU.

ACTIVIDAD


1-Aberiguar para que sirven los sig. comandosfunciones e interpretes que pertencen al paquete Java
a) JAVAC

b) JAVA

c) Applet viewer

d) JAVADOC

2- Tipos de Datos
a)Investiga sobre los distintos tipos de datos y variables:
Enteros, Reales, Caracter y Buleanos.
b) las Variables

Desarrollo


1)JavaCC: (Java Compiler Compiler) es un generador de analizadores sintácticos de código abierto para el lenguaje de programación Java. JavaCC es similar a Yacc en que genera un parser para una gramática presentada en notación BNF, con la excepción de que la salida es en código Java. No como en Yacc, JavaCC genera analizadores descendentes (top-down), que se limita a la clase de gramáticas LL(K) (en particular, la recursión desde izquierda no se puede usar). Los tres constructores que lo conforman, JJTree, construyen sus árboles de abajo hacia arriba)

Javac: Compilador de JAVA.

b)java: es el intérprete de JAVA.

c)Appletviewer: Es un visor de applet para generar sus vistas previas,ya que un applet carece de método main y no se puede ejecutar con el programa java.

d)javadoc: genera la documentación de las clases java de un programa.

2)a)Los números enteros son una generalización del conjunto de números naturales que incluye números enteros negativos (resultados de restar a un número natural otro mayor), además del cero. El hecho de que un número sea entero, significa que no tiene parte decimal.los números reales incluyen tanto a los números racionales (como: 31, 37/22, 25,4) como a los números irracionales (aquellos que no se pueden expresar de manera fraccionaria y tienen infinitas cifras decimales no periodicas.

Números reales: son aquellos que poseen una expresión decimaltrabajar con operandos booleanos. Realizan las operaciones lógicas de conjunción (AND),disyunción (OR) ,negación ( NOT ) y la disyunción exclusiva ( XOR ).

b) Las variables son la manera en que indicamos al compilador el espacio en memoria que debe de reservar para almacenar la información.Podemos acceder a un dato alojado en la memoria por medio de una variable.

Toda variable tiene un nombre para poder identificarla y realizar operaciones. Antes de trabajar con alguna variable debemos declararla en el programa. Por ejemplo:String cliente;Aquí estamos reservando memoria para una variable de tipo String y la identificamos con el nombre “cliente”. De ahora en adelante si en el programa hablamos de cliente, estamos haciendo referencia a esa porción de memoria y al valor que contiene.Podemos asignarle algún valor en el momento de declarar una variable. Por ejemplo:String cliente = "Isaac Newton";Aquí reservamos memoria para una cadena de caracteres y le asignamos el valor "Isaac Newton".

Maxi Santillán



lunes, 16 de marzo de 2009

Información: SISTEMA OPERATIVO





Los sistemas de archivos (filesystem en inglés), estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro) de una computadora, que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos poseen su propio sistema de archivos.
Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud. El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. En la práctica, un sistema de archivos también puede ser utilizado para acceder a datos generados dinámicamente, como los recibidos a través de una conexión de red (sin la intervención de un dispositivo de almacenamiento).
Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de métodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix).
El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de lista de control de acceso o capacidades. Las listas de control de acceso hace décadas que demostraron ser inseguras, por lo que los sistemas operativos experimentales utilizan el acceso por capacidades. Los sistemas operativos comerciales aún funcionan con listas de control de acceso.

Un sistema operativo es un software de sistema, es decir, biñil de programas de computación destinados a realizar muchas tareas entre las que destaca la administración eficaz de sus recursos.
Comienza a trabajar cuando en memoria se carga un programa especifico y aun antes de ello, que se ejecuta al iniciar el equipo, o al iniciar una máquina virtual, y gestiona el hardware de la máquina desde los niveles más básicos, brindando una interfaz con el usuario.
Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios, computadoras, radios,etc).
Los sistemas operativos, en su condición de capa software que posibilitan y simplifica el manejo de la computadora, desempeñan una serie de funciones básicas esenciales para la gestión del equipo. Entre las más destacables, cada una ejercida por un componente interno (módulo en núcleos monolíticos y servidor en micronúcleos), podemos reseñar las siguientes:
Proporcionar más comodidad en el uso de un computador.
Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas)
Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).





Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema informático: suministro de interfaz al usuario, administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades.


Interfaces del usuario








Es la parte del sistema operativo que permite comunicarse con él, de tal manera que se puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos básicos de interfaces: las que se basan en comandos, las que utilizan menús y las interfaces gráficas de usuario.



Administración de recursos






Sirven para administrar los recursos de hardware y de redes de un sistema informático, como el CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.
Administración de archivos
Un sistema de información contiene programas de administración de archivos que controlan la creación, borrado y acceso de archivos de datos y de programas. También implica mantener el registro de la ubicación física de los archivos en los discos magnéticos y en otros dispositivos de almacenamiento secundarios.






Administración de tareas






Los programas de administración de tareas de un sistema operativo administran la realización de las tareas informáticas de los usuarios finales. Los programas controlan que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de administración de tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea de mayor prioridad.






Programas de sistema






Son aplicaciones de utilidad que se suministran con el SO pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:
Manipulación y modificación de archivos.
Información del estado del sistema.
Soporte a lenguajes de programación.
Comunicaciones.