Langage_machine
Aux alentours de 1900, le métier à tisser Jacquard et ses cartes perforées, l’ancêtre du langage machine. (Crédit Flickr, domaine public) En informatique, le langage machine est le seul que peut traiter nativement un ordinateur. Chaque famille de microprocesseur possède sa propre architecture informatique, et par conséquent son propre langage machine (par exemple X86, X64, ou encore ARM ) incompatible avec les autres, même si de fortes similitudes existent parfois.
Concrètement, il s’agit d’une suite de bits encodés en langage binaire, soit uniquement des zéros et des uns que l’on nomme instructions.
Bien sûr, ce type de langage n’est pas compréhensible par un humain, ou tout du moins pas directement…
C’est là qu’intervient le compilateur, chargé de traduire un langage de programmation « humain » relativement abordable ( Basic, Java, C , etc.) en langage machine composé d’arides 0 et 1 qui seront ensuite traité par le microprocesseur.
Il existe toutefois un langage intermédiaire, proche du langage binaire des ordinateurs, l’assembleur que certains confondent parfois avec le langage machine.
Ce type de langage, dit de bas niveau à cause de sa proximité avec la machine, est très complexe à maîtriser et de moins en moins usité. En revanche, il permet à un programmeur expérimenté de tirer le maximum de l’architecture d’un processeur.
Toutefois, les progrès réalisés par les compilateurs relativisent l’intérêt de l’assembleur en dehors de situations particulières, comme les systèmes embarqués critiques, ou les calculateurs massivement parallèles. Dans ces exemples, la précision extrême des instructions écrites « à la main », en assembleur, permet parfois à cette forme de programmation « à l’ancienne » d’obtenir de meilleures performances.