sábado, 24 de febrero de 2024

Probando el kernel

Objetivos

El kernel ha crecido y ahora debo ser frugal en lo que agrego o dejo fuera. Al parecer ya está completo; la única manera de saberlo es escribir aplicaciones prácticas del mundo real.

Empezare por lo básico: ejercitar la aritmética y las estructuras de control, como este pequeño programa que calcula la secuencia de Collantz para un valor dado inicial en el stack:

: collantz
  dup .
  begin
    dup 1 and
    if
        dup dup 1 + + +
    else
        1 rshift
    then
    dup .
    dup 1 =
  until
  drop
  ; 

Probando en el emulador

 >900 collantz
 900 450 225 676 338 169 508 254 127 382 191 574 287 862 431 1294 647 1942 971 2914 1457 4372 2186 1093 3280 1640 820 410 205 616 308 154 77 232 116 58 29 88 44 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

Le toma 1 minuto calcular e imprimir todas las secuencias desde 2 hasta 32.767.

No hay comentarios.:

Publicar un comentario