human
Comment se fabrique et se programme un langage de programmation ? Si les programmes sont créés dans un langage de programmation, comment ce langage a été créé. Explique comme si j'avais cinq ans.
gpt
OK, donc les gens qui fabriquent le CPU (la puce qui fait toute la "réflexion" dans l'ordinateur) publient une liste "d'instructions", des commandes que la puce peut exécuter, qui lui sont transmises sous forme de signaux de tension binaires. Alors , étape 1 : faire un grand tableau de toutes ces instructions en binaire , et leur attribuer des noms plus compréhensibles . par exemple . L'instruction pour charger un nombre dans un registre (la mémoire du CPU) peut être 00011100, suivi de 8 bits du nombre réel à charger. par exemple . 00011100**00000000 * * pour charger en zéro . Nous pourrions le lister dans notre tableau comme " LDI " , et noter qu'il a besoin d' un nombre de 8 bits après , quelque chose comme " LDI < nombre de 8 bits > " . Après avoir fait la table d'instructions, on peut maintenant écrire des programmes en "langage assembleur" et les convertir en binaire à la main. ( Oups , le CPU aurait besoin de savoir * quel * registre aussi , " LDI < registre > , < valeur > " - so " LDI 1 , 0 " pourrait charger 0 dans le registre # 1 ) Étape 2 : écrivez un programme ( en assembleur language ) qui convertit le langage assembleur en binaire . Convertissez ce programme en binaire à la main. Nous avons maintenant un « assembleur ». ( Et probablement un mal de tête ) . De là , nous pouvons écrire un " compilateur " en langage assembleur , qui prend des programmes écrits en langages de programmation ( des choses comme " print('Hello World ' ) " ) , et les convertit en langage assembleur . Ou le compilateur peut passer directement du langage au binaire , voir si je m'en soucie . Après avoir écrit notre premier compilateur en assembleur, nous pouvons écrire les compilateurs suivants dans le langage de programmation de niveau supérieur, plutôt qu'en langage d'assemblage maladroit. C'est en gros comme ça qu'on procède de A à Z . Cependant, comme les assembleurs et les compilateurs existent déjà, nous pouvons "croiser" les choses, c'est-à-dire développer les outils sur un autre type d'ordinateur que la "cible" qui exécutera le programme. * Pas vraiment comme si tu avais cinq ans , mais c'est l' heure du déjeuner et j'ai faim *