Introduction
Photo d'une jeune fille avec un bras robotique.
Figure 4.1 Les langages de programmation de bas niveau supportent peu ou pas d'abstraction ; ils permettent aux programmeurs d'écrire des logiciels dans des langages plus proches de l'anglais et conviennent aux logiciels système qui alimentent les appareils mobiles dotés de ressources énergétiques et informatiques limitées, comme les prothèses. (source : modification de « Tilly Lockey at the SingularityU The Netherlands Summit 2016 » par Sebastiaan ter Burg/Flicker, CC BY 2.0)

Introduction

Les machines que nous appelons « ordinateurs », y compris les ordinateurs de bureau modernes, les ordinateurs portables et les serveurs web, sont remarquablement rapides et spacieuses. Cependant, le matériel informatique est également intégré dans des appareils qui ne correspondent pas à la définition traditionnelle des ordinateurs : appareils électroménagers, automobiles, thermostats intelligents, outils et téléviseurs. En plus d'être écoénergétiques et abordables, ces appareils peuvent également devoir être légers, portables, ou même portables sur soi. Pour ces raisons, les systèmes embarqués ont une vitesse de traitement et une capacité de mémoire modestes. Ce chapitre se concentre sur les langages de programmation de bas niveau, qui sont utilisés en pratique pour créer des logiciels destinés aux appareils à ressources limitées. L'efficacité est essentielle pour rendre ces appareils utiles et économiquement viables. L'efficacité des logiciels embarqués est déterminante ; en d'autres termes, si nous pouvons écrire du code efficace qui s'exécute rapidement et utilise peu de mémoire, nous rendons possibles des technologies qui peuvent aider les gens dans leur vie quotidienne. Par conséquent, les informaticiens mettent un accent considérable sur l'efficacité et la rapidité des langages de bas niveau, c'est pourquoi les langages de bas niveau sont importants pour la société. Pour des raisons d'efficacité, la syntaxe des langages de programmation de bas niveau repose sur des instructions centrées sur l'ordinateur et difficiles à manipuler pour les humains. Cela a conduit les informaticiens à créer des langages de « niveau intermédiaire » qui mettent l'accent sur la lisibilité humaine sans compromettre l'efficacité.

Considérons notre entreprise fictive, TechWorks, qui lance sur le marché une gamme de prothèses de nouvelle génération. Alors que les prothèses traditionnelles sont parfois difficiles à utiliser et limitées en fonction, les prothèses « intelligentes » peuvent être révolutionnaires. Ces prothèses sont contrôlées par ordinateur, connectées à Internet et utilisent l'intelligence artificielle, permettant à ceux qui en ont besoin de jouir d'une qualité de vie qui satisfait ou dépasse les attentes.

Le contrôle informatique fait référence à la capacité de gérer, d'organiser ou d'exécuter quelque chose sur un ordinateur, tandis que le contrôle intelligent est une classe de techniques de contrôle qui utilisent diverses approches informatiques de l'intelligence artificielle. Par exemple, les algorithmes d'intelligence artificielle peuvent déterminer avec précision les intentions du porteur et contrôler le mouvement d'une prothèse de manière précise et naturelle. La connectivité Internet signifie que les appareils peuvent être facilement contrôlés par des applications, relayer la télémétrie aux fournisseurs de soins de santé et appliquer automatiquement des mises à jour à distance. TechWorks a équipé ses appareils d'un petit ordinateur système sur puce peu coûteux et écoénergétique, et utilise le langage de niveau intermédiaire C pour implémenter ces fonctionnalités de manière efficace.