Le code de la « sinclair scientific » étudié à l'aide du reverse engineering
Révèle les secrets qui lui ont permis de faire du calcul scientifique

Le , par Cedric Chevalier, Chroniqueur Actualités

En 1974, Clive Sinclair est un jeune homme ambitieux qui voulait commercialiser une calculatrice scientifique bon marché dans un segment déjà dominé par les grands noms comme HP.

Le hic c’est que, réaliser la calculatrice de Sinclair au prix auquel il souhaitait la commercialiser, s’avère une tâche impossible. D’ailleurs, son partenariat avec Bowmar (un constructeur de l’époque) a débouché dans un cul-de-sac.

Sinclair s’est retourné vers Texas Instruments qui lui a fourni une puce qu’on jugerait à première vue rudimentaire face à celles du produit de HP. Elle supportait un nombre d’opérations réduit (addition, multiplication soustraction et division), ne comportait que trois registres, et avait une ROM dont la capacité était la moitié du HP-35 qui dominait le marché.

A titre de comparaison, le HP-35 a requis 2 ans de travail d’une vingtaine d’ingénieurs hautement qualifiés et le NEC plus ultra de la technologie de l’époque. Face à un challenger aussi puissant que le HP-35, le produit de Sinclair fait office d’outsider. Les ingénieurs de Texas Instruments, pour dissuader Sinclair de sa folie, diront « C’est tout simplement impossible », pour souligner le fait que leur puce était incapable de faire du calcul scientifique.

Impossible ? Pas tout à fait, puisque Sinclair revint trouver les ingénieurs de Texas avec une calculatrice capable d’effectuer le calcul des fonctions sinus, cosinus, tangente, logarithme, Arctan, ArcSin, ArcCos ainsi que le calcul avec exposants.

On ne peut qu’imaginer la consternation des ingénieurs. Ce qu’avait omis de dire Sinclair, c’est qu’il était assisté par un génie de la programmation, le PHD Nigel Searle, qui a réalisé un travail d’orfèvre malgré les limitations techniques de la calculatrice.

Grâce à la technique du « reverse engineering », Ken Shirriff a pu fournir les détails sur le code que la calculatrice exécutait. On peut se rendre compte que Nigel a eu recours à de petites astuces simples mais efficaces pour doter le périphérique des fonctions du calcul scientifique. Il a utilisé le Reverse Polish Notation (qui permet d’écrire l’opérateur après les opérandes d’un calcul exemple 3+2 devient 3 2 +) pour représenter un nombre signé, le 0 est le signe positif alors que 5 représente le signe négatif, la division est implémentée comme une série de soustractions et bien d’autres.

Pour le rapport qualité prix, la calculatrice de Sinclair vaut son pesant d'or. En effet, elle coûtait 100 dollars l’unité contre 365 dollars pour la HP-35. Toutefois, elle pêchait côté performances. Par exemple l’opération sinus(1) prenait 7,5 secondes.

Source : blog Ken Shirriff

Et vous ?

Qu'en pensez vous ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de the_babou the_babou
http://www.developpez.com
Membre du Club
le 04/09/2013 11:37
Je pense que bien peu de (aucun?) programmeurs seraient capable d'une telle prouesse aujourd'hui. Moi le premier !
Avatar de Darkzinus Darkzinus
http://www.developpez.com
Expert Confirmé Sénior
le 04/09/2013 11:41
Article sympathique ! J'en pense qu'il était sacrément talentueux !
Avatar de tlt tlt
http://www.developpez.com
Membre régulier
le 04/09/2013 12:02
il en connait des choses en matière d"optimisation. chapeau
Avatar de kiprok kiprok
http://www.developpez.com
Membre actif
le 04/09/2013 12:03
Belle perfermance en effet. C'est toujours payant d'avoir un bon developpeur à ses cotés!
Avatar de sevyc64 sevyc64
http://www.developpez.com
Modérateur
le 04/09/2013 12:05
Et oui, c'est qu'à l'époque on savait réfléchir et faire les choses.
On avait pas de puissance de calcul, on avait pas de mémoire, mais on arrivait à tirer la quintessence du matériel dont on disposait.
Je me rappelle le temps ou on optimisait un code à l’instruction asm près.

Aujourd'hui, on trouve un logiciel un peu lent ? on monte en gamme sur le CPU, on rajoute un GPU surpuissant (sachant que l'on a évidement aucun logiciel capable de l'exploiter pleinement), et puis au passage on rajoute aussi quelques Go de ram (quid des portables à 16Go de Ram, juste pour aller sur internet et regarder quelques films HD ?)

Et coté développement, ben comme on a de la puissance et de la mémoire, on se pose pas la question si on code bien ou avec les pieds. On ne sait plus ce qu'est l'optimisation,on la considère même comme une perte de temps.

La norme aujourd'hui est le i5 ou i7 avec de 12 à 16Go de ram. JE suis absolument certain que la plupart des logiciels correctement développés et fortement optimisés comme l'a pu l'être le code de la sinclair tourneraient sur des P4 avec 2Go de ram que l'on possédait il y a plus de 10 ans.
Avatar de e-ric e-ric
http://www.developpez.com
Membre Expert
le 04/09/2013 12:32
Tout à fait d'accord avec sevyc64, ça optimise surtout le commerce...
Pour le fun :Loi de Wirth

Les outils bureautiques, à ce titre, m'amusent beaucoup, avoir besoin d'un Core i7 pour écrire un simple texte mis en forme prête à rire. On faisait la même chose avec un 386 à une époque, avec peut-être moins de confort.
Personnellement, je cherche le plus souvent à optimiser mon code ou tout du moins à ne pas avoir un code trop débile.
Ce n'est pas parce qu'on dispose dans une seule machine de la puissance d'un centre de calcul d'il y a 20 ans qu'il faut coder comme un pied.

Il faut aussi ne pas oublier que les compilos prennent en charge l'optimisation qu'il est souvent difficile de dépasser voire contreproductif. L'optimisation doit porter sur l'algorithme non pas sur la réalisation de celui-ci. Celà n'apporte peu d'optimiser par le code seulement un algo foireux. D'un autre côté, un bon algorithme sera valorisé par une implémentation soigneuse.

Cdlt

@+
Avatar de sevyc64 sevyc64
http://www.developpez.com
Modérateur
le 04/09/2013 13:13
Citation Envoyé par e-ric  Voir le message
Les outils bureautiques, à ce titre, m'amusent beaucoup, avoir besoin d'un Core i7 pour écrire un simple texte mis en forme prête à rire. On faisait la même chose avec un 386 à une époque, avec peut-être moins de confort.

Oui, enfin, quand on voit la gestion des styles et titre, modèles de document, (entre-autre) sous Word 2007 et suivant par rapport à ce qu'elle était sous Word 97, c'est à dire hyper simple et facile. Je pense que niveau confort, on y a plus perdu que gagné. Mais bon, ce n'est que mon avis.
Avatar de rthomas rthomas
http://www.developpez.com
Nouveau Membre du Club
le 04/09/2013 14:16
Les "deux lignes" d'hebdogiciel c'était pas mal aussi à l'époque.
Avatar de phili_b phili_b
http://www.developpez.com
Expert Confirmé Sénior
le 04/09/2013 15:15
Citation Envoyé par sevyc64  Voir le message
Oui, enfin, quand on voit la gestion des styles et titre, modèles de document, (entre-autre) sous Word 2007 et suivant par rapport à ce qu'elle était sous Word 97, c'est à dire hyper simple et facile. Je pense que niveau confort, on y a plus perdu que gagné. Mais bon, ce n'est que mon avis.


mouais. L'ergonomie n'est pas forcément liée à la puissance de calcul.
Avatar de el_slapper el_slapper
http://www.developpez.com
Expert Confirmé Sénior
le 04/09/2013 16:34
L'optimisation est un art que peu maitrisent(et moi pas franchement). C'est pour ça que d'aucuns conseillent d'upgrader le matos, et de n'optimiser que si ça ne suffit pas.

Perso, j'essaye toujours de faire une programmation naturellement efficace, MAIS le premier objectif, c'est quand même que ça marche et que ça soit lisible.
Offres d'emploi IT
Administrateur système (h/f)
CDI
Ingénie - Rhône Alpes - Le Cheylas (38570)
Parue le 29/09/2014
Analyste et Analyste-Programmeur Mainframe H/F
CDI
Matmut - Haute Normandie - ROUEN
Parue le 11/09/2014
Chef de projet technique .net (h/f)
CDI
MCNEXT - Ile de France - Paris (75002)
Parue le 29/09/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula