Está en la página 1de 2

PILAS

Una pila tpica es un rea de la memoria de los computadores con un origen fijo y
un tamao variable. Al principio, el tamao de la pila es cero. Un puntero de pila,
por lo general en forma de un registro de hardware, apunta a la ms reciente
localizacin en la pila; cuando la pila tiene un tamao de cero, el puntero de pila de
puntos en el origen de la pila.
Las dos operaciones aplicables a todas las pilas son:

Una operacin apilar, en el que un elemento de datos se coloca en el lugar


apuntado por el puntero de pila, y la direccin en el puntero de pila se ajusta
por el tamao de los datos de partida.

Una operacin desapilar: un elemento de datos en la ubicacin actual


apuntado por el puntero de pila es eliminado, y el puntero de pila se ajusta por
el tamao de los datos de partida.

Hay muchas variaciones en el principio bsico de las operaciones de pila. Cada pila
tiene un lugar fijo en la memoria en la que comienza. Como los datos se aadirn a
la pila, el puntero de pila es desplazado para indicar el estado actual de la pila, que
se expande lejos del origen (ya sea hacia arriba o hacia abajo, dependiendo de la
aplicacin concreta).
Por ejemplo, una pila puede comenzar en una posicin de la memoria de mil, y
ampliar por debajo de las direcciones, en cuyo caso, los nuevos datos se
almacenan en lugares que van por debajo de 1000, y el puntero de pila se
decrementa cada vez que un nuevo elemento se agrega. Cuando un tema es
eliminado de la pila, el puntero de pila se incrementa.

Stack pointer
Un registro de pila es un registro de un CPU de computadora cuyo propsito es
mantener la pista de la posicin actual de la pila de llamadas. En una mquina
de arquitectura basada en acumulador, ste puede ser un registro dedicado como
el puntero de pila (SP del ingls stack pointer) de una mquina Intel x86. En una
mquina de registro general, puede ser un registro reservado por convencin,
como el de las mquinas PDP-11 o RISC. Algunos diseos como el Data General
Eclipse no tenan ningn registro dedicado para el puntero de pila, pero usaron una
direccin de memoria de hardware reservada para esta funcin.
Antes de finales de los aos 1960, las mquinas como el PDP-8 y el HP 2100 no
tuvieran compiladores que soportaran la recursin. Sus instrucciones de
subrutinas, tpicamente guardaran la localizacin actual de la direccin del salto, y
despus fijaran el contador de programa a la direccin siguiente. 1 Mientras que

esto era ms simple que mantener una pila, ya que solamente hay una localizacin
de retorno por seccin de cdigo de subrutina, de esta manera no poda haber
recursin sin un esfuerzo considerable por parte del programador.
Una a diferencia de una mquina de registro, una mquina de pila tiene dos o ms
pilas. Una mquina de dos pilas (similar a la usada en la implementacin del
lenguaje Forth), tiene un pila de llamadas, que mantiene informacin sobre las
llamadas a subrutinas en ejecucin (que no han retornado) entre otras cosas, y el
otro es un pila de parmetros, que mantiene informacin sobre los parmetros o
datos con los que trabajan las subrutinas.