Vous êtes sur la page 1sur 11

bytes

Tipo de Dato

Asignacin de memoria.

bytes

Id Id
Memoria RAM

Tipo de Dato

bytes
Tipo de Dato

Id Id

bytes

Id

Tipo de Dato

Id
bytes
Tipo de Dato

Qu es un puntero? Cmo se asigna memoria ? Diferencia entre java y C?

bytes
Tipo de Dato

Autor: Jos Alexander C. P. Correo:


CienciaEducacion100@gmail. com.

ndice
Los

equipos computacionales y el programador. Memoria RAM. Declaracin de variable. Asignacin de memoria. Definicin de puntero. Punteros en java. Punteros en C. Punteros y referencias NULL Referencia Bibliogrfica

Los equipos computacionales y el programador.


Introducirnos al mundo de la programacin es estar consientes de las situaciones actuales, los constantes avances indican nuevas oportunidades en el rea de la informtica. Tal es el caso que en solo algunas dcadas la revolucin de la tecnologa nos permite disfrutar de aplicaciones para Computadores y dispositivos mviles , que son de gran utilidad en el mbito comercial, entretenimiento y muchas reas mas. Pero desde que el termino software apareci por primera vez en la conferencia de ingeniera de software de la OTAN en 1968 y fue mencionado para provocar el pensamiento sobre la crisis de software del momento. Desde entonces, ha continuado como una profesin y campo de estudio dedicado a la creacin de software de alta calidad, barato, con capacidad de mantenimiento y rpido de construir. Siendo este el origen de las muchas implicaciones que significa construir una aplicacin que sea eficiente y eficaz capaz de satisfacer las necesidades del usuario. Estas razones hacen que los encargados de construir aplicaciones velen por sacar el mejor provecho de los recursos que nos ofrecen los equipos computacionales de cada una de las generaciones. A lo largo de este folleto descubrirs la importancia que tienen los lenguajes de programacin para poder entablar la comunicacin entre el usuario y el quipo. Los datos y su forma de almacenamiento en los equipos computacionales. Como los avances existentes de los lenguajes estructurados a los orientados a objetos.

Memoria RAM.
La memoria principal o RAM (Random Access Memory, Memoria de Acceso Aleatorio) es donde el computador guarda los datos que est utilizando en el momento presente. El almacenamiento es considerado temporal por que los datos y programas permanecen en ella mientras que la computadora este encendida o no sea reiniciada. Se le llama RAM por que es posible acceder a cualquier ubicacin de ella aleatoria y rpidamente

En 1969 fueron lanzadas una de las primeras memorias RAM basadas en semiconductores de silicio

Fsicamente, estn constituidas por un conjunto de chips o mdulos de chips normalmente conectados a la tarjeta madre. Los chips de memoria son rectngulos negros que suelen ir soldados en grupos a unas plaquitas con "pines" o contactos. De forma interna, la memoria RAM se puede entender como una tabla de celdas de datos en filas y columnas. Para acceder a un dato concreto, contenido en una de esas celdas, el controlador de memoria debe darle las "coordenadas" donde se encuentra dicho dato. Es decir, que el proceso completo para obtener el dato de una celda de memoria, pasa por darle la coordenada "columna" (CAS), darle la coordenada "fila" (RAS), y esperar a obtener el dato solicitado. Entre todos estos procesos existen ciertos "tiempos" que necesita la memoria para "estabilizar" electrnicamente las seales y poder responder a cada solicitud. Estos tiempos variarn en funcin de la calidad de la memoria. La memoria principal debe albergar tanto el sistema operativo como los diversos procesos de usuario. Por tanto necesitamos asignar las distintas partes de la memoria principal de la forma mas eficiente posible. La memoria esta divida en 2 partes: o Para el sistema operativo residente. o Para los procesos de usuario.

Declaracin de variable.
Debemos tomar en cuenta lo siguiente. Cuando una variable se declara, se asocian tres atributos fundamentales con la misma: su nombre. su tipo. y su direccin en memoria.

De las caractersticas anteriormente mencionadas, la tercera es un una de las que tiene una representacin muy abstracta. La memoria RAM viene siendo la representacin de un arreglo de celdas numeradas y direccionadas, que pueden manipularse de manera individual o grupal contiguamente. Cada vez que se declara una variable en cualquier lenguaje de programacin, ciertamente nos vinculamos con los componentes del equipo a travs de un compilador que establece un rea de memoria para almacenar el contenido de la variable. Cuando se declara una variable de cualquier tipo, el compilador asigna una cantidad de bytes de memoria. El espacio para esa variable se sita en una posicin especfica de la memoria, conocida como direccin de memoria. Cuando se hace uso del mismo, al valor de la variable, el compilador accede automticamente a la direccin de memoria donde se almacena el dato.
Memoria RAM

Id

Id

Id

Id

Id

Id

3 bytes
Tipo de Dato

8 bytes
Tipo de Dato

1 bytes
Tipo de Dato

3 bytes
Tipo de Dato

2 bytes
Tipo de Dato

4 bytes
Tipo de Dato

Asignacin de memoria.
Clasificaciones para asignar memoria: Asignacin esttica de memoria Consiste en el proceso de asignar memoria en tiempo de compilacin antes de que el programa asociado sea ejecutado, a diferencia de la asignacin dinmica o la automtica donde la memoria se asigna a medida que se necesita en tiempo de ejecucin. Asignacin automtica de memoria Las variables automticas son variables locales a un bloque de sentencias (subrutina, funcin o procedimiento). Pueden ser asignadas automticamente en la pila de datos cuando se entra en el bloque de cdigo. Cuando se sale del bloque, las variables son automticamente desasignadas. Asignacin dinmica de memoria Es la asignacin de almacenamiento de memoria para utilizacin por parte de un programa de computador durante el tiempo de ejecucin de ese programa. Es una manera de distribuir la propiedad de recursos de memoria limitada entre muchas piezas de cdigo y datos. Un objeto asignado dinmicamente permanece asignado hasta que es desasignado explcitamente, o por el programador o por un recolector de basura; esto es notablemente diferente de la asignacin automtica de memoria y de la asignacin esttica de memoria (la de las variables estticas).

Definicin de puntero.
Un puntero en trminos de programacin es la referencia de espacio de memoria el cual esta siendo usado o ser usado por un tipo dato. La variable en este caso son de tipo esttica la cuales contiene un espacio de memoria que se puede hacer referencia a ella por medio de una direccin nica, ya que dentro de la memoria se manejas diversas celdas que pueden contener otras variables del mimos tipos, sin embargo este solamente puede contener una direccin que hace referencia exclusivamente de el y esto se aplica para todas las celdas dentro de memoria. Los punteros en diferentes lenguajes de programacin son utilizados para el manejo de los datos ya sea de manera directa o indirecta. Entre una de las aplicaciones mas importantes del puntero son el manejo de datos de la memoria dinmica que tambin es conocida como heap. Enfatizando con los avances de programacin, sea logrado abstraer este concepto en lenguajes como java y otros de alto nivel, a diferencia de C, el cual solo se puede usar en zonas de cdigo delimitado, haciendo que este lenguaje sea ambiguo el uso de los mismos. Pero a pesar de los avances de los lenguajes de alto nivel el caso de java es un claro ejemplo que el uso de punteros no sea olvidado, este dentro de su maquina virtual trata todas las variables que hacen referencia a objetos, como punteros a zonas de memoria que realmente contienen los objetos.

Punteros en java.
Java que pertenece a una corriente de programacin orientado a objetos al 100%, tienes que usar clases y objetos para la realizacin de alguna accin, en las clases bsicas que java emplea existen las que realizar herencia para crear sus propias clases de nodos. En lugar de reservar memoria creas un objeto, no necesitas liberar memoria ya que eso es realizado automticamente e internamente por java, haciendo el uso de memoria mas eficiente a conveniencia del usuario. Haciendo que java sea ms flexible en uso de menora y a la vez brindando una manera muy ordenada de su propio manejo a diferencia de otros lenguajes que hacen de esto una ambigedad. A consecuencia de lo anterior podemos hacer algunas aclaraciones acerca de un par de ideas muy extendidas en java: Java no tiene punteros y en java todo se pasa por referencia. La realidad es que java se entiende mucho mejor si lo pensamos exactamente de la forma inversa a lo referido. En java slo hay punteros (con excepcin de los tipos primitivos) y en java todo se pasa por valor (por copia).

Punteros en C.
Cada variable que se declara en C tiene una direccin asociada con ella. Un puntero es una direccin de memoria. El concepto de punteros tiene correspondencia en la vida diaria. Cuando se enva una carta por correo, su informacin se entrega basada en un puntero que es la direccin de esa carta. Cuando se telefonea a una persona, se utiliza un puntero (el nmero de telfono que se marca). As pues, una direccin de correos y un nmero de telfono tienen en comn que ambos indican dnde encontrar algo. Son punteros a edificios y telfonos, respectivamente. Un puntero en C tambin indica dnde encontrar algo, ,dnde encontrar los datos que estn asociados con una variable? Un puntero C es la direccin de una Variable. Los punteros se rigen por es tas reglas bsicas: un puntero es una variable como cualquier otra; una variable puntero contiene una direccin que apunta a otra posicin en memoria; en esa posicin se almacenan los datos a los que apunta el puntero; un puntero apunta a una variable de memoria.

Punteros y referencias NULL


Normalmente un puntero inicializado adecuadamente apunta a alguna posicin especfica de la memoria. Sin embargo, un puntero no inicializado, como cualquier variable, tiene un valor aleatorio hasta que se inicializa el puntero. En consecuencia, ser preciso asegurarse que las variables puntero utilicen direcciones de memoria vlida.

Para el lenguaje Java:


No es necesario destruir ( borrar ) un objeto creado dinmicamente como en otros lenguajes, basta con igualar el puntero a dicho objeto a null (palabra reservada que significa objeto nulo) para que el intrprete del Java se encargue de eliminar el espacio de memoria que usa el objeto ( siempre y cuando no existan otros punteros apuntando a esa instancia ), o simplemente asignar un objeto a otra instancia, con lo cual se dejara un bloque de memoria que no tiene referencias.

Para el lenguaje C:
Existen dos tipos de punteros especiales muy utilizados en el tratamiento de sus programas: los punteros void y null (nulo). Un puntero nulo no apunta a ninguna parte -dato vlido- en particular, es decir, un puntero nulo no direcciona ningn dato vlido en memoria. Un puntero nulo se utiliza para proporcionar a un programa un medio de conocer cuando una variable puntero no direcciona a un dato vlido. Para declarar un puntero nulo se utiliza la macro NULL, definida en los archivos de cabecera STDEF . H, STDIO. H, STDLIB. H y STRING. H. Se debe incluir uno o ms de estos archivos de cabecera antes de que se pueda utilizar la macro NULL.

Referencia Bibliogrfica

INGENIERA DEL SOFTWARE: METODOLOGAS Y CICLOS DE VIDA. PROGRAMACIN EN C. Metodologa, algoritmos y estructura de datos. Luis Joyanes. Ignacio Zahonero Martnez. El Lenguaje de Programacin C - 2da Edicin - Brian W. Kernighan & Dennis M. Ritchie

Vous aimerez peut-être aussi