human
Comment sont créés les langages de codage ? Comment les créateurs définissent-ils ce que fait une fonction (par exemple en html, photoshop, ...) Comment cela se traduit-il en 1 et 0 ? Depuis les premiers langages de codage, comment ont-ils évolué ? Explique comme si j'avais cinq ans.
gpt
La base est le jeu d'instructions du processeur. Ce sont des comportements intégrés aux circuits du processeur. Des choses comme l'arithmétique, la récupération et le stockage de blocs de données, et beaucoup de logique de branchement et de signal. Le branchement étant une condition " si x , alors y , sinon z " , représente une décision . Les signaux et les interruptions surviennent lorsqu'un événement se produit, par exemple lorsque l'horloge avance d'une microseconde ou que votre carte réseau doit signaler que de nouvelles données sont disponibles sur le réseau. Chaque instruction a un numéro unique pour l'identifier. Il existe des circuits d'entrée physiques, appelés registre d'instructions, qui communiquent l'instruction à exécuter. Les « portes » de transistors individuels sont activées ou désactivées , ce que nous représentons numériquement par 1 ou 0 . Un système de comptage binaire est utile pour cela, mais nous utilisons un système de comptage en base 10 (décimal) ou, sur le terrain, en base 16 (hexadécimal). Il existe des registres supplémentaires pour recevoir des entrées , fournir des sorties , agir peut - être comme entrées et sorties , ou simplement sortir uniquement , des données . Certaines instructions en utilisent une combinaison, d'autres non. Autrefois, les capacités de traitement étaient limitées et la mémoire était rare. Une partie de la programmation était dans le câblage , une partie consistait à entrer des données binaires avec des commutateurs et un bouton LOAD . Ensuite, il y a eu des améliorations électromécaniques où cette représentation binaire pouvait être représentée dans des nombres de base 8 (octaux) plus faciles à comprendre, et des méthodes d'entrée améliorées au moyen de lecteurs de cartes perforées et de claviers. Ces dispositifs effectuent la même entrée binaire dans les machines qu'auparavant à la main, ils ont simplement rendu la vie plus facile. Au fur et à mesure que les ordinateurs devenaient plus sophistiqués et que la mémoire devenait plus abondante , quelqu'un a utilisé ces techniques primitives pour écrire un programme qui traduirait les mnémoniques en les mêmes entrées binaires : mov ax , CR0 Traduirait en copiant le registre ax pour contrôler le registre 0 . Ce n'est rien de plus qu'une recherche glorifiée dans un tableau de la signification des symboles (une simplification grossière) et la génération de la représentation binaire pour effectuer cette action. Cela permet une augmentation de la densité d'informations - un programmeur peut en dire beaucoup plus en moins de temps et d'espace. À partir de là, quelqu'un ayant une solide compréhension de la [théorie des automates] (URL_0) a développé un langage très simple que les programmes informatiques peuvent facilement décomposer en ensembles d'instructions. Le premier était FORTRAN , le second était LISP . Cela a également contribué au fait que les terminaux d'entrée ont évolué au fil du temps pour devenir des machines à écrire et, éventuellement, des terminaux vidéo. Vous pouviez enfin écrire votre code sur un appareil pas trop différent d'une machine à écrire, cependant, mon père vous racontera l'époque où il programmait un PDP en FORTRAN sur des cartes perforées. La clé de ces langages est qu'ils ont des bases mathématiques rigoureuses et qu'ils sont facilement décomposés dans les jeux d'instructions du processeur. Ce sont des langues beaucoup plus simples que n'importe quelle langue parlée ; là où nous pouvons parler avec des ambiguïtés dans notre discours, de telles choses dans les langages de programmation rendraient le programme invalide.