iniciar-programa
 define-nueva-instruccion inv como
  inicio
   gira-izquierda;
   gira-izquierda;
  fin;
 define-nueva-instruccion dup(n) como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     dup(sucede(n));
    fin
   sino
    inicio
     repetir n veces
      deja-zumbador;
     avanza;
     repetir n veces
      deja-zumbador;
    fin;
  fin;
 define-nueva-instruccion pre como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     pre;
     coge-zumbador;
    fin
   sino
    inicio
     avanza;
     inv;
     dup(0);
    fin;
  fin;
 define-nueva-instruccion mn(n) como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     mn(n);
     repetir n veces
      deja-zumbador;
    fin;
  fin;
 define-nueva-instruccion m(n) como
  inicio
   si junto-a-zumbador entonces
    inicio
     coge-zumbador;
     m(sucede(n));
    fin
   sino
    inicio
     inv;
     repetir n veces
      deja-zumbador;
     coge-zumbador;
     avanza;
     avanza;
     inv;
     mn(n);
     avanza;
    fin;
  fin;
 define-nueva-instruccion ak como
  inicio
   deja-zumbador;
   avanza;
   pre;
   inv;
   mientras junto-a-zumbador hacer
    inicio
     coge-zumbador;
     avanza;
     m(0);
    fin;
  fin;
    inicia-ejecucion
     ak;
        apagate;
    termina-ejecucion
finalizar-programa
