Category:Amazing Hopper: Difference between revisions

m
Line 3,366:
Ejemplo de uso de PILAS:
 
#include <hopper.h>
main:
stack={} // se define un array vacío
{100}push(stack) // mete el primer dato: 100
Line 3,381:
Ejemplo de uso de COLAS:
 
#include <stdio.hh>
main:
stack={} // se define un array vacío
{100}push(stack) // mete el primer dato: 100
Line 3,396:
Ejemplo de RECURSIVIDAD:
 
#include <stdio.hh>
#proto factorial(_v_) /* simula "funciones", expandiendo
la llamada "_factorial()", y la
declaración "factorial()" */
main:
arg=100
{"Factorial de ",arg," = "}print
_factorial(arg) // esto expande a "{arg}jsub(factorial)"
println
{0}return
.locals
factorial(n) // esto expande a "factorial:,n=0,mov(n)"
if ( {n} lethan '1' )
{1}
Line 3,414:
{n}, _factorial( {n}minus'1' ), mul
end if
back
 
HOPPER DESCRIPCION ALTO NIVEL
-----------------------------------------------------------------------------------
{D}push(S) Mete un dato D en el stack S. El
dato puede ser una constante, un
registro-variable, o una matriz.
 
{D}pushall(S) mete todo lo que encuentre en el
stack, en el array S, en el orden
Line 3,428:
ADDROW cuando se quiere crear un
único vector.
 
pop(S) Extrae un dato desde el stack,
en modo PILA (desde el último,
hasta el primero).
El dato extraído queda en el stack.
 
qpop(S) Extrae un dato desde el principio
del stack S, o sea, en modo COLA.
El dato extraído queda en el stack.
 
head(S) Devuelve, sin extraer, el dato
ubicado al inicio del stack, es
decir, el primero ingresado.
 
tail(S) Devuelve, sin extraer, el dato
ubicado en la cima del stack, es
Line 3,448:
empty(S) Devuelve TRUE si el stack S está
vacío.
 
ipush(V)
ipop(V) "internal push", e "internal pop".
Line 3,486:
{"M=\n",m,"\nY=",y,"\n"} print
back
 
itop(V) "internal top". Obtiene el dato que está en
el "top" de la pila interna. No extrae el dato.
Line 3,495:
de pseudofunciones, dado que es allí donde se
usa la pila interna.
 
IMPORTANTE: la pila interna tiene un máximo no configurable
de 1.024 posiciones. Es, en realidad, un array
Line 3,501:
medida de ser ejecutado un IPOP, sin alterar
el tamaño de la pila.
 
== ARRAYS ==
543

edits