compudanzas/src/postfix.gmo

98 lines
1.9 KiB
Plaintext
Raw Permalink Normal View History

2021-06-16 20:57:56 +00:00
# notación postfix (o rpn: reverse polish notation)
2022-03-28 03:31:48 +00:00
lang=es
2021-06-16 20:57:56 +00:00
los operadores van después de los operandos, y todo funciona con una pila (stack)
por ejemplo, para sumar dos números:
```
3 4 +
```
2022-02-10 20:47:52 +00:00
leyendo de izquierda a derecha:
2021-06-16 20:57:56 +00:00
2022-02-10 20:47:52 +00:00
* primero se hace "push" al 3
* luego se hace "push" al 4
2021-06-16 20:57:56 +00:00
* el operador + hace "pop" dos veces, suma los valores, y hace "push" al resultado
tres números:
```
3 4 2 + +
```
nota: el primer operador + realiza la suma entre 4 y 2, y el segundo operador + realiza la suma entre ese resultado y 3.
otra posibilidad:
```
3 4 + 2 +
```
# operadores de stack
* pop: saca (y descarta) el elemento de arriba de la pila
2021-12-21 21:18:49 +00:00
* swp o swap o reverse: intercambia los dos elementos superiores en la pila
2021-06-16 20:57:56 +00:00
* dup: duplica el elemento superior en la pila
2021-07-16 02:24:04 +00:00
* ovr u over: copia el segundo elemento de la pila, y colócalo hasta arriba
2021-06-16 20:57:56 +00:00
* rot: quita el tercer elemento de la pila, y colócalo hasta arriba
# rutinas con firth
firth es una calculadora rpn con fracciones:
=> https://git.sr.ht/~rabbits/firth firth
el operador . imprime el estado de la pila
## tiempos
convierte (minutos, segundos) a una cantidad de segundos. en el ejemplo, son 8 minutos, 49 segundos:
```
2022-02-10 20:47:52 +00:00
8 49
2021-06-16 20:57:56 +00:00
swp 60 * + .
resultado: 529
```
convierte (minutos, segundos) correspondientes a un "paso" min/km, a una velocidad km/hr:
```
2022-02-10 20:47:52 +00:00
4 30
2021-06-16 20:57:56 +00:00
swp 60 * + 3600 swp / .
resultado en modo dec: 13.3333 (km/hr)
```
convierte una velocidad km/hr, a un "paso" min/km
```
14
3600 swp / 60 / .
resultado en modo dec: 4.285714 min/km
```
o para obtener minutos y segundos:
```
14
3600 swp / dup 60 / swp 60 % .
resultado en modo mix: 4&2/7 17&1/7 ( 4'17" min/km)
```
2022-10-16 17:36:44 +00:00
¿se nota el gusto por el running?
2021-06-16 20:57:56 +00:00
# herramientas
2021-07-16 02:24:04 +00:00
{forth}, un lenguaje/ambiente de programación basado en pilas
2021-12-21 21:18:49 +00:00
dc, una calculadora incluida con el paquete bc.
2021-06-16 20:57:56 +00:00
firth, una calculadora rpn con fracciones:
=> https://git.sr.ht/~rabbits/firth firth
2021-07-16 02:24:04 +00:00
{uxn}, una máquina virtual basada en pilas
2021-06-16 20:57:56 +00:00
=> https://wiki.xxiivv.com/site/uxn.html uxn