vendredi 8 février 2013

Le plaisir d'optimiser un programme

Parmi les articles les plus lus sur mon blog, celui qui relate mes essais avec la HP-28S figure en bonne position, en nombre de consultations. Les années passent, et, comme de nombreux modèles HP, cette calculatrice reste toujours aussi fascinante. Son design réussi, tout en sobriété, contribue largement à ce côté mystique, et attise la curiosité.

Deux versions très améliorées de mon programme "Ce nombre est-il premier ?" m'ont été proposées pour la 28S : la première par st33x ici (commentaire dans ce blog) ; et la deuxième par C.Ret sur le forum MySilicium. Il est clair que le langage RPL demande une bonne gymnastique d'esprit pour écrire des programmes un tant soit peu optimisés. L'exploitation fine de la pile opérationnelle est plus que conseillée. Vive les DUP DROP DUP2 PICK OVER ROLL SWAP ROLLD LIST->, et bonjour l'aspirine... Voire éventuellement un bon grog si vous tentez la récursivité :)

Pour le fun, et pour profiter un peu du clavier de ma Casio Z-1, j'ai apporté ma modeste contribution aux trois derniers défis d'optimisation du forum MySilicium. Tous les pockets et toutes les calculatrices, de toutes les générations, sont admis ! Les règles du jeu sont très libres ; cela entraîne une grande variété des programmes soumis :

Misez P'tit, Optimisez - N°32 (factorielle)
http://www.silicium.org/forum/viewtopic.php?f=46&t=34362

Misez P'tit, Optimisez - N°33 (angles & côtés d'un triangle)
http://www.silicium.org/forum/viewtopic.php?f=46&t=34368

Misez P'tit, Optimisez - N°34 (Tout à 1 Euro!)
http://www.silicium.org/forum/viewtopic.php?f=46&t=34525

Cet exercice du "MPO" paraît sans doute un peu futile aux non initiés ? Il doit rapeller à certains les magazines des années 80, dont les pages étaient truffées de programmes à recopier. Mais on se surprend très vite à prendre du plaisir à se faire des noeuds au cerveau ! Les astuces proposées par certains contributeurs sont d'une élégance qui force l'admiration.

1 commentaire:

  1. Ca me rappelle les "code golf" sur stackoverflow! http://stackoverflow.com/search?q=code+golf

    RépondreSupprimer