Calculatrice programmable

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Ne doit pas être confondu avec Calculatrice scientifique ni Calculatrice.

Une calculatrice programmable est une calculatrice capable d'être programmée, d'une façon similaire à un ordinateur. Elle diffère de la simple calculatrice par sa faculté d'exécuter des algorithmes et de manipuler et transformer des données.

Histoire[modifier | modifier le code]

Calculatrice HP-65 complète

La première calculatrice programmable à carte magnétique est mise sur le marché par Hewlett-Packard en 1975: c'est le modèle HP-65, qui est également une calculatrice scientifique. Elle est suivie par la SR 52 en 1975[1]. On entend décrire par le qualificatif de programmable une machine capable de contenir dans une mémoire autonome une suite d’instructions composant un programme et exécutable sur demande. Les premiers modèles commercialisés par HP sont novateurs car leur dispositif d'enregistrement par cartes magnétiques autorise la sauvegarde mais aussi l'échange de programmes.

Les facultés de programmation sont encore limitées: le HP-65 ne peut accepter que 100 lignes de programme[1]. La calculatrice de Hewlett-Packard qui coûte 795$ lors de sa mise sur le marché doit en grande partie son succès auprès du public par sa présence dans le programme spatial Américain Apollo ainsi que lors de rendez vous historiques tels celui mené avec le vaisseau Russe Soyouz en Juillet 1975[2]. La HP-65 est alors utilisée par les Astronautes pour calculer les corrections de trajectoire lors des manœuvres de rendez-vous entre les deux vaisseaux[3].

Modèle TI-59 de Texas Instruments, avec une carte insérée dans le lecteur, sur l'avant de la calculatrice, une autre dans le lecteur situé sur son côté.

À l'époque, si des ordinateurs peuvent déjà être mobilisés pour les calculs complexes impliquant un algorithme, ceux nécessitant des moyens embarqués (comme dans le domaine des missions spatiales) sont encore fréquemment réalisés manuellement aidé de diverses tables de calculs (telles les tables de Trigonométrie ou de logarithmes)[4] faute de puissance suffisante sur les ordinateurs de bord des stations spatiales.

En 1977 la calculatrice programmable HP-67 succède au modèle HP-65. Il propose 256 instructions de programmation (contre 64 pour le modèle 65)[1]. De nombreux concurrents proposent eux aussi des modèles de calculatrices programmables: APF propose la Mark 90 (1977) Commodore sa P 50 (1975) puis sa PR 100 (1977); Compucorp la 324 G (1972) et la 326 (1973) et la firme Sinclair au Royaume-Uni présente sa Cambridge Programmable en 1978, Mais le principal concurrent de HP est rapidement Texas Instruments qui propose un modèle très sophistiqué, la TI-59 dès 1977. Pour beaucoup, la calculatrice de TI est le premier vrai ordinateur de calcul programmable.[réf. nécessaire]

Le TI-59 utilisait un véritable processeur 4 bits (le TMC 0501), et sa mémoire interne pouvait être partagée à la fois par les programmes et les registres de données. La programmation incluait des possibilités de structuration (routines et sous-routines) et 175 instructions étaient disponibles. Des cartes magnétiques pour sauver et échanger des programmes étaient proposées. L'affichage exploitait un système à LED avec 7 segments, rendant l'appareil capable de manipuler l'alphabet[5]. Au total, Texas Instruments et Hewlett-Packard produiront respectivement sept et seize modèles différents qui domineront le marché[1].

Architecture[modifier | modifier le code]

Les calculatrices programmables modernes telle la TI-Nspire utilisent les technologies les plus performantes.

La calculatrice programmable répond à toutes les caractéristiques d'un ordinateur: elle doit intégrer un micro-processeur pour traiter des instructions. Les instructions peuvent être stockées en mémoire vive ou morte. Des registres doivent être présents pour recevoir le résultat des traitements réalisés par le micro-processeur. La calculatrice programmable répond donc à l'architecture minimale d'un ordinateur tel que le conçoit von Neumann.

Article détaillé : Architecture de von Neumann.

D'ailleurs, les ordinateurs primitifs tels que l'ENIAC ou l'EDVAC sont des calculateurs programmables dont l'architecture est très proche de celles des premières calculatrices programmables. Ce qui les différencie, outre la compacité et la puissance, est l'adjonction sur les calculatrices programmable de périphériques d'entrées sortie (les écrans à LED, les claviers, les imprimantes), de stockage (les mémoires magnétiques) rendus possibles par les progrès technologique en électronique et l'apparition des circuits intégrés

  • Le microprocesseur

une calculatrice ne peut réaliser des opérations complexes à l'aide de programmes que si elle est équipée d'un microprocesseur. Tous les types de microprocesseurs de puissance variable ont équipé les diverses générations de calculatrices programmables. Dans un premier temps, des fabriquant tels qu'HP ont utilisé des microprocesseurs propriétaires. Mais plus tard, les calculatrice programmables ont pu être équipées des mêmes processeurs que les ordinateurs de bureau. Ainsi Texas Instrument à utilisé successivement des Zilog Z80 identiques aux processeurs qui équipaient les premiers micro-ordinateurs (tels que le ZX81 de Sinclair, par exemple), des Motorola 68000 (comme dans la TI-89 Titanium) qui eux mêmes servirent de coeur pour de nombreux modèles d'ordinateurs Atari et Apple. Les dernières calculatrices de la marque utilisent - comme les plus récents smartphones ou tablettes - des processeurs de technologie ARM.

  • La mémoire centrale

La mémoire centrale est l'espace de stockage rattaché directement au micro-processeur. Dans les premières calculatrices programmables, la question du stockage des instructions et des résultats de calculs pouvaient être pris en charge par un dispositif mixant des registres et quelques mémoire, comme dans le cas de la HP-65 avec ses neuf registres de stockage et sa mémoire pouvant retenir 100 instructions. Une telle architecture est assez éloignée de celle des ordinateurs contemporains qui font un usage commun de la mémoire pour contenir à la fois les programmes et leurs données. Aujourd'hui, les calculatrices programmables font un usage de la mémoire identique à celui des ordinateurs, à savoir un espace de stockage central unique divisé en contenu persistant (par ROM ou mémoire Flash) et non persistant (par exemple de type RAM).

  • Les méthodes de stockage

Par opposition à la mémoire centrale, les méthodes de stockage permettent de conserver des programmes, des données et des résultats, sur un support relié au micro-processeur par une méthode d'entrée sortie et généralement amovible.

  • Les interfaces utilisateurs
L'afficheur à LED (ici une TI-30) est mal adapté aux calculatrices programmables
Afficheur LCD d'une calculatrice HP-41

La calculatrice programmable doit offrir une interface homme machine suffisamment évoluée pour que son utilisateur puisse non plus seulement effectuer des calculs simples, mais bel et bien entrer des programmes complexes et en observer le résultat. Dès le lancement de la première calculatrice programmable de HP, une réflexion est donc menée sur le clavier, et sur l'afficheur. Le clavier doit permettre l'entrée de commandes et l'édition un programme. Les calculatrices programmables proposent diverses stratégies de combinaison de touches pour permettre à l'utilisateur d'entrer son programme sans avoir a passer par une saisie alpha-numérique[6]. Encore aujourd'hui, les calculatrices programmables (la série Casio Graph par exemple) se distinguent des ordinateurs de poche par l’absence de clavier alphabétique.

Le périphérique de visualisation est un élément essentiel, déjà mis au point pour les calculatrices. Pour son premier modèle, HP opte pour des afficheurs à LED spécifiquement développés pour minimiser la consommation[7]. Ces afficheurs, limités à la seule capacité d'affichage numérique par dispositif LED resteront adoptés (par exemple sur la TI-59) jusqu'à la mise sur le marché d'afficheur LCD matriciels qui rendirent possible l'affichage de plusieurs lignes et de résultats graphiques. Les afficheurs LCD sont par exemple intégrés au modèle HP-41 dès 1977: l'affichage alphanumérique LCD métamorphose la calculatrice programmable qui devient capable de communiquer en clair avec son utilisateur avec, par exemple, des messages d'erreurs ("ZERO DIVIDE") plutôt que les zéros clignotants de modèles précédents.

Relation avec les ordinateurs de poche[modifier | modifier le code]

Exemple d'ordinateur de poche avec son clavier alphabétique clairement séparé de son clavier numérique, comme sur un ordinateur

Un ordinateur de poche est un petit appareil mobile programmable, de la taille d'une calculatrice. On le distingue généralement de cette dernière par sa capacité à manipuler des chaînes alphanumériques, comme un ordinateur classique, là ou une calculatrice programmable se contentera généralement d'une interface utilisateur (clavier et écran) orientée vers la manipulation de calculs et de chiffres (pas de clavier alphabétique par exemple). Si les deux appareils sont des ordinateurs, le langage de programmation de la calculatrice programmable et historiquement beaucoup moins complexe que celui de l'ordinateur de poche.

Caractéristiques des calculatrices récentes[modifier | modifier le code]

Sur les calculatrices haut de gamme, la programmation exploite des interface de développement disponibles pour Windows et OS X permettant d'émuler les calculatrices et de télécharger ensuite les programmes mis au point sur la calculatrice. Certains modèles utilisent des interfaces utilisateurs haut de gamme tels les modèles Nspire de Texas Instruments utilisant un pavé tactile, un écran LCD d'une définition de 320×240 pixels en couleurs ou en nuances de gris. Elles utilisent des processeurs haut de gamme, généralement une architecture ARM cadencés à 90 Mhz. Ces calculatrices peuvent être transformées comme les tablettes, la vitesse de leur processeur augmentée à l'aide d'utilitaires d'overclocking, et leur système débridé.

Articles connexes : TI-Nspire et Casio Graph 100+.

Programmation[modifier | modifier le code]

Des programmes tels que TiLP qui permettent d'assurer la liaison entre un PC de bureau et une calculatrice programmable rendent la plupart des langages de programmation modernes utilisables pour programmer des calculatrices

Les premiers modèles de calculatrices programmables utilisent un langage de programmation spécifique et simplifié, parfois basé sur du bytecode ou enregistrant des appuis successifs de touches. La capacité mémoire dédiée aux programmes est souvent limitée dans ces modèles.

Ces langages ne sont généralement pas Turing-complets mais suffisent pour programmer le calcul d'une formule à partir d'une ou deux variables d'entrée. Les expressions conditionnelles sont rarement supportées et les programmes sont stockés dans des zones mémoires séparées, sans accès direct à la mémoire de la machine. La HP-65, par exemple, ne permettait de concevoir que des programmes de 100 instructions, incluant des sous-routines et des branchements conditionnels reposants sur des comparaisons de registres.

La taille d'un programme est mesuré en « pas », chaque pas correspondant à une instruction ; ces calculatrices programmables peuvent contenir des programmes d'une dizaine à une centaine de pas. Les modèles plus évolués utilisent des langages Turing-complets et abandonnent le concept de pas de programmation au profit d'un usage standard de la mémoire.

Langages utilisés[modifier | modifier le code]

Sur les calculatrices contemporaines, les langages de programmation modernes peuvent généralement être utilisé via gcc qui est disponible pour plusieurs modèles HP et TI. Ceci signifie que C (langage), C++, Fortran, et la programmation en assembleur peuvent être adoptés pour mettre au point des programmes depuis un ordinateur externes, en les téléchargeant ensuite sur la calculatrice. De nombreux projets tiers sont actifs pour ajouter aux calculatrices programmables des compilateurs compatibles embarqués ou utilisables sur ordinateurs externes. Ces projets incluent des convertisseurs, des interpréteurs, des générateurs de codes, des compilateurs.

Programmation par mots clés simplifiés[modifier | modifier le code]

Les premiers modèles de calculatrice programmables utilisaient des langages simplifiés, le plus souvent mis en oeuvre par des touches de fonctions associées à un bytecode. Des calculatrices non programmables acceptent ce mode de fonctionnement comme la HP-35. Les calculatrices adoptant ce mode de programmation sont Turing-completes lorsqu'elles prévoient dans leur vocabulaire des test-conditionnels, des boucles, un adressage mémoire indirect et la capacité récursive. Les plus connues des calculatrices programmables de cette famille sont par exemple la Casio FX-602P, la HP-41 et la TI-59.

Langages propriétaires[modifier | modifier le code]

Article connexe : RPL.

Les calculatrices programmables HP utilisent un langage propriétaire développé par HP, le RPL, développé en 1984. Il utilise la notation polonaise inverse, qui place les opérandes devant les opérateurs. Ce choix donne des programmes de calcul plus simples à écrire, qui se passent des parenthèses. Il dérive des langages Forth et Lisp, aujourd'hui tombés en désuétudes.

Certains langages propriétaires sont aujourd'hui indépendants des fabricants, tels le Multi-Platform Language for Calculators. Ce langage de programmation interprété pour calculatrices fonctionne sur les calculatrices de type Casio Graph 100 et Texas Instruments TI-83 et TI-86. Son principal intérêt est la possibilité qu'il offre de faire fonctionner un même programme sur des calculatrices différentes.

Langage BASIC[modifier | modifier le code]

Article connexe : TI-Basic.

Le BASIC est un langage de programmation simple d'accès et réputé facile à apprendre. Pour cette raison il équipe depuis longtemps les PC de bureau ainsi que les ordinateurs de poche, mais également les calculatrices programmables. HP examina très tôt l'opportunité d'utiliser le BASIC dans ses calculatrices mais trouva ce langage difficile à implémenter en raison de sa complexité et de sa consommation en ressources. La société choisit de développer ses propres langages combinés d'après le RPN[8]. Mais le BASIC à tout de même obtenu un franc succès en tant que langage de base pour calculatrice programmable. Il est implémenté sous une forme propriétaire qui combine parfois les avantages de la programmation par mot clés affectés à une touche (keystroke programming) dans les calculatrices programmables Casio et Texas Instrument (sous le nom de TI-Basic)[9],[10],[11].

Langage machine[modifier | modifier le code]

De nombreuses calculatrices programmables offraient à leurs utilisateurs la possibilité de programmer en langage machine via un assembleur. C'est le cas par exemple de la HP-28[12]. Cette possibilité est aujourd’hui rarement utilisée au profit de l'usage de langages évolués plus simples à manipuler mais des calculatrices programmables récentes telle la Casio Graph 100+ donnent toujours la possibilité de programmer en assembleur.

Voir aussi[modifier | modifier le code]

Sur les autres projets Wikimedia :

Références[modifier | modifier le code]

  1. a, b, c et d Lorsque les ingénieurs voulaient diffuser les calculatrices de poche, Noël Jouenne, revue Les Génies de la Science pour la série « Histoire d’objet », en février 2007 fac-simile
  2. Page institutionnelle sur la participation de HP au programme spatial Américain
  3. Blog HP calculators and space exploration
  4. Aristo 80123: the slide rule to have, exemple de table de calcul
  5. Site dédié au TI-59
  6. [http://www.hpmuseum.org/prog/hp65prog.htm exemple de programmation de la HP-65 sur HP museum
  7. Description technique sur HP Museum
  8. Histoire des langages de programmation d'HP
  9. Programming Casio FX-7400G+
  10. Programming Casio BASIC on the CFX-9850 Series
  11. TI-Basic Developer
  12. [http://www.hpcalc.org/hp48/programming/asm/ documentation sur l'assembleur de la HP48

Liens internes[modifier | modifier le code]

Voir aussi:

Les calculatrices programmables citées dans cet article: