Quelle est la différence entre une langue de haut niveau et une langue de bas niveau?


Réponse 1:

C'est la même différence qu'entre:

"Va me chercher un journal."

et

«Déplacez votre jambe gauche devant vous, puis la droite, répétez jusqu'à ce que vous atteigniez la porte. Activez ensuite votre bras et attrapez la poignée de porte. Déplacez vos doigts et fermez votre main autour de lui. Tirez-le vers le bas jusqu'à ce que vous entendiez un clic et que la poignée semble céder un peu. tirez la porte vers vous. Reculez la jambe gauche et faites de la place pour la porte. Lorsque vous avez suffisamment d'espace pour vous adapter, traversez le cadre de la porte. Tournez-vous à 180 degrés. Activez votre bras et attrapez la poignée vers l'extérieur. Déplacez vos doigts et fermez votre main autour de lui. Tirez-le vers vous jusqu'à ce que vous sentiez qu'il est verrouillé. Tournez de 90 degrés dans le sens des aiguilles d'une montre. Déplacez une jambe après l'autre jusqu'à ce que vous arriviez au kiosque à journaux. Demandez un journal. Reach dans votre poche pour de l'argent et payer 2 $. Prenez le journal. Tournez à 180 degrés. Bougez vos jambes l'une devant l'autre… »

Vous voyez comment la chanson se déroule.

Notez qu'à un moment donné, je me suis ennuyé et j'ai commencé à utiliser des verbes «complexes» pour le mouvement, représentant un ensemble d'autres actions, comme «saisir», qui pourraient à leur tour être divisées en «Bougez votre main jusqu'à bla bla…».

En fait, même «déplacer votre main» pourrait être divisé en actions plus simples, et chaque fois que vous vous séparez, vous perdez de la concision, c'est-à-dire que vous devez utiliser un langage plus verbeux, mais vous gagnez en précision car vous pouvez éventuellement définir ce que chaque brin de muscle fait, avec précision.

En fin de compte, si vous descendez plus bas, vous obtiendrez une description des signaux électriques que les nerfs doivent transmettre aux muscles. Je dirais que cette dernière description serait semblable au soi-disant «langage machine», le résultat de compilation, et les déclarations précédentes sont -dans cette métaphore- les langages de programmation du niveau supérieur au niveau inférieur.

TL; DR:

  • Un langage de programmation de haut niveau est bref mais s'appuie sur un autre logiciel pour développer de brèves commandes en instructions détaillées au détriment de la précision et de l'adaptation de chaque commande. Un langage de bas niveau vous permet de gérer explicitement chaque détail de l'opération en cours, au détriment de la taille du code source et, peut-être, de la lisibilité.

Si vous voulez des exemples, Python vient à l'esprit pour le haut niveau: il vous extrait de nombreux détails, par exemple gestion de la mémoire (vous pouvez simplement initialiser une variable et l'utiliser, et quand elle n'est plus nécessaire, quelqu'un la triera, pas besoin de s'inquiéter) c'est pourquoi c'est un bon langage pour apprendre les algorithmes: vous pouvez implémenter votre logique sans vous inquiéter sur certains des détails de mise en œuvre.

D'un autre côté, C est un langage de niveau assez bas, car il ne vous soustrait pas à certains détails (encore une fois, le meilleur exemple est la gestion de la mémoire et la présence de pointeurs) et c'est pourquoi c'est un bon langage pour savoir si votre objectif est de comprendre le fonctionnement interne des ordinateurs. Bien sûr, vous pouvez descendre un peu avant de toucher le code machine et la physique électronique avec Assembly.