Le premier programme informatique a été écrit par. Histoire de la création de l'ordinateur. Etude des machines de Babbage

Beaucoup de gens considèrent ce métier si incompréhensible qu'il n'y a aucune chance d'en comprendre les principes, même théoriquement.
Je vais essayer d'expliquer comment cela se produit, comme on dit, sur les doigts.

Pour écrire des programmes, on utilise des langages de programmation, qui sont divisés en bas niveau, haut niveau et ultra haut niveau, et lequel est lequel et comment il diffère deviendra clair un peu plus tard. Mais pour l’avenir, j’ajouterai que chaque langage est créé pour des tâches spécifiques et que la même tâche ne peut pas toujours être implémentée dans différentes langues.
Pour plus de clarté, je donnerai des exemples d'appareils électroménagers et de tâches que nous rencontrons quotidiennement.
La tâche consiste donc à couper du pain pour le dîner. Pour une personne, la tâche la plus simple est : pourquoi le couper, il suffit de le prendre et de le couper, n'est-ce pas ?
La compétence la plus importante d'un programmeur, sans laquelle rien ne fonctionnera, est la capacité de diviser une tâche en une séquence d'actions. Plus le niveau du langage de programmation est bas, plus cette séquence doit être décrite en détail.

Laissez-moi vous donner un exemple de ce à quoi ressemblerait un programme pour trancher du pain pour notre corps.

Le problème du « pain de mie » dans un langage de programmation de haut niveau

1.Ouvrez la corbeille à pain avec votre main droite ;
__2.Prenez une miche de pain avec votre main droite ;
__3.Placez le pain sur une planche à découper ; (supposons que le tableau était déjà sur la table)
__4.Ouvrez le tiroir supérieur du bureau avec votre main droite ;
__5.Trouvez un couteau brillant de 20 cm de long avec un manche noir ;
__6.Prenez le couteau dans votre main droite ;
__7.Apportez le couteau au pain ;
__8.Fixez le pain avec votre main gauche, en saisissant le bord gauche du petit pain ;
__9. Placez le couteau strictement au-dessus du bord droit de la miche de pain ;
__10.Répétez les étapes suivantes 5 fois :
____10.1.Déplacez-vous vers la gauche d'un centimètre ;
____10.2.Répétez les étapes suivantes jusqu'à ce que la lame du couteau touche la planche :
________10.2.1.Appuyez le couteau sur le pain ;
________10.2.2.Faites un mouvement de va-et-vient avec le couteau ;
____10.3. Levez le couteau ;
__11.Mettez le couteau dans le tiroir ;
__12.Lâchez le pain avec votre main gauche.
Ça y est, le programme pour couper du pain en cinq morceaux est prêt, vous pouvez le continuer en décrivant l'essuyage des miettes de la table, en plaçant les morceaux tranchés sur une assiette, etc.

Débogage du programme

Exécutons le programme et voyons comment il fonctionne :
Oh... je me suis coupé le doigt ainsi que le cinquième morceau...
merde! arrêtez le programme !
Je n'ai pas écrit exactement comment fixer le pain avec ma main gauche, je l'ai attrapé au hasard et mon pouce est sorti sur le côté...
Nous revenons à la ligne « Fixez le pain avec votre main gauche, en saisissant le bord gauche du pain » ;
Après cela, nous écrivons :
« Appuyez le pouce de votre main gauche vers la gauche, vers la paume ; »
Lancer le programme
Oh... sur la ligne "Mettez le couteau dans le tiroir ;" le couteau est tombé par terre...
Bon sang! Il s'avère que la table est légèrement inclinée et le tiroir se ferme tout seul...
On revient au code et avant la ligne « Mettez le couteau dans le tiroir » ; écrivez « Ouvrez le tiroir supérieur du bureau avec votre main droite ; »
Vous avez remarqué une erreur ? Non?!
Comment pouvons-nous ouvrir une boîte avec notre main droite si cette main tient un couteau ? Cela signifie qu'il faut d'abord poser le couteau sur la table, puis ouvrir le tiroir, reprendre le couteau, etc.
Et nous le faisons jusqu'à ce que le pain soit tranché correctement, sans endommager les meubles ni les doigts.
Voici à peu près comment fonctionne le débogage :
Avec l'expérience, on commence à écrire des programmes qui fonctionnent du premier coup, en faisant un minimum d'erreurs, et vérifier si la boîte est ouverte avant d'y mettre quelque chose devient une habitude.

Lorsque certaines opérations sont effectuées de manière constante, comme trancher du pain, laver la vaisselle, etc., les programmeurs les décrivent sous forme de procédures.
Une procédure est un ensemble d'actions spécifiques cachées sous une seule commande.
Ainsi, le texte du programme que j'ai cité plus haut peut être placé dans une procédure appelée SliceBread(paramètre), où l'on précisera le nombre de pièces en paramètre

En conséquence, le programme utilisant les procédures ressemblera à ceci :
__GoToKitchen();
__SliceBread(5);
__Put BreadOnTable();
__Faire la vaisselle();
et il n'y a pas de limite à la perfection

Parlons maintenant du langage de bas niveau

il faudrait décrire cette tâche encore plus en détail, jusqu'à quels doigts et avec quel effort vous devez tenir le couteau, que « ouvrir une boîte » signifie effectuer une séquence d'actions avec la même main en utilisant la main, les doigts, l'avant-bras muscles, efforts en kilogrammes par centimètre, etc. Il faudrait même décrire ce qu'est la main droite, où elle se trouve et ne pas oublier de vérifier si elle est même disponible...
Mais il était une fois, il n'y avait pas de langages de programmation de bas niveau et c'était écrit en code machine, c'est-à-dire le programme ressemblait à une séquence de uns et de zéros, c'était une époque sombre.

Cela vaut la peine de parler un peu de ce qu’est un langage de haut niveau et pourquoi avons-nous besoin d’un langage de bas niveau s’il est plus facile d’écrire dans un langage de haut niveau ?
Le langage de haut niveau était écrit en langage de bas niveau, il contenait des commandes sous forme de procédures impliquant une séquence d'actions, telles que « ouvrir la boîte », « prendre le couteau en main », etc. mais si pour une raison quelconque vous devez prendre le couteau avec seulement deux doigts, parce que le manche est cassé ou manquant, par exemple, alors cela ne sera pas possible, car l'équipe « prenez le couteau dans votre main » implique l'utilisation de tous cinq doigts. Pour de telles situations, dans les langages de haut niveau, il est possible d'insérer du code dans un langage de bas niveau et au lieu de la commande standard « prenez un couteau dans votre main », du code de bas niveau est écrit pour un couteau avec un couteau cassé. poignée.
Une personne effectue toutes ces opérations sans réfléchir, mais une machine ne peut pas faire cela ; il faut lui expliquer en détail quoi, comment et dans quel ordre.
Les langages de très haut niveau sont étroitement axés sur des tâches spécifiques, par exemple pour travailler dans la cuisine, ils incluent un ensemble de commandes spéciales et leur code ressemblerait à un programme utilisant des procédures, comme décrit ci-dessus.

Vous avez probablement remarqué que certains programmes ne fonctionnent que sous Windows, par exemple, et ne fonctionnent pas sous Android, ou vice versa, même si les fonctions semblent ordinaires, et pourquoi ne pouvez-vous pas installer Android sur un Téléphone Windows?
Je vais vous expliquer en prenant comme exemple le même programme pour la cuisine : le texte du programme dit "Trouvez un couteau brillant de 20 cm de long, avec un manche noir dans le tiroir du haut de la table", par exemple, c'est pour Les fenêtres. Cependant, sous Android, il n'y a pas de tiroir supérieur sur la table ; les couteaux y sont rangés dans une armoire murale, c'est-à-dire la procédure d'ouverture d'un tiroir doit être remplacée par la procédure d'ouverture d'un meuble, vous devez en être d'accord, elles sont différentes ! Mais le couteau là-bas ne fait pas 20 cm de long, mais 25 cm de long, il n'est pas brillant du tout et son manche n'est pas noir, mais bleu. Par conséquent, pour trancher du pain, vous devez réécrire considérablement le programme, même si le résultat sera le même. À cette fin, il existe des programmes multiplateformes qui peuvent fonctionner sous différents systèmes, c'est-à-dire dans différentes cuisines, car les programmeurs proposaient les deux options. Ceci, bien sûr, est génial, mais cela présente aussi des inconvénients : si vous n'utilisez toujours qu'une cuisine avec des tiroirs dans les tables, alors pourquoi avez-vous besoin d'un code capable de fonctionner avec les armoires ? Et il prend de la place. C'est comme acheter un four à micro-ondes doté de deux portes, l'une est conçue pour s'ouvrir à gauche et l'autre à droite, et ce four a également une niche dans laquelle vous pouvez mettre une porte inutile, mais à cause de cette niche, le micro-ondes est 10 ms plus élevé. Vous installerez la porte souhaitée et la niche prendra de la place.

Le programme de démolition des bâtiments résidentiels de l'époque de la construction industrielle de masse de logements est le plus souvent évoqué sur un seul ton : dans quelle mesure seront les conditions équitables de relocalisation des personnes dont les maisons tomberont sous les bulldozers.


La rénovation surprend. Discussion du projet de loi

Néanmoins, les habitants de la capitale qui ont étudié attentivement le projet de loi se sont immédiatement posés un grand nombre de questions à ce sujet. Et le plus important d’entre eux : la décision de démolition massive des logements en propriété viole-t-elle les droits constitutionnels des Moscovites ? Tous les avantages et les inconvénients ont été discutés dans le studio Pravda.Ru par Elena Chouvalova, députée à la Douma municipale de Moscou, et par le militant Sergueï Khabarov, membre du comité des créanciers de la banque commerciale Gagarinsky.

— Quel est le problème avec ce programme de rénovation ?

Elena Chouvalova : Il n’y a pas seulement de la désinformation, mais aussi de la tromperie à différents niveaux. Il ne s’agit pas simplement d’une sorte de programme de démolition de Khrouchtchev. Pour être exact, nous parlons de l'adoption d'une loi à la Douma d'État, de l'introduction de modifications dans la loi sur le statut de la capitale, etc. Il n’y a pas un seul mot sur Khrouchtchev. Et si l’on ne prend que l’aspect démolition, il est dit que la rénovation inclut les maisons qui ont été construites entre 1958 et 1968.

Ce programme place les normes du droit de la ville de Moscou au-dessus des normes du droit de la Fédération de Russie, crée une sorte d'État dans l'État et met tous les Moscovites sur un volcan, qui peuvent être expulsés et expropriés à tout moment.

— Les habitants de la capitale qui ont soigneusement étudié le projet de loi se posaient un grand nombre de questions, et la plus importante d'entre elles est de savoir si la rénovation viole la Constitution ? Le fait est qu'il est prévu d'envoyer des propositions aux propriétaires des maisons incluses dans le programme de rénovation pour fournir des locaux équivalents avec un projet d'accord de transfert de propriété en pièce jointe, et si les gens ne sont pas d'accord et ne signent pas cet accord, ils seront contraints . Quel est le lien avec les règles de droit ?

Sergueï Khabarov : La Constitution stipule que le droit des citoyens à la protection judiciaire ne peut être limité d'aucune manière. Mais le document de rénovation précise explicitement que ce droit peut être limité d'une certaine manière. Il ne s'agit pas seulement de la Constitution, il y a aussi une question qui entre en conflit avec les codes fonciers et du logement.

E. Sh. : Je dirais beaucoup plus durement : toutes les normes de la procédure judiciaire y sont violées.

« Rien de tout cela ne s'est produit il y a quelques mois, mais soudain, un projet de loi est préparé à la hâte, de nombreuses informations sont déversées sur la tête des Moscovites et il y a une attaque massive dans l'espace médiatique.

S. Kh. : En février s'est tenu le neuvième congrès du Conseil des municipalités de la ville de Moscou, au cours duquel la question des immeubles de cinq étages et de la deuxième vague de démolition a été soulevée. Marat Khusnullin, qui dirige le complexe de construction de Moscou, a répondu : "Nous n'avons actuellement pas la possibilité de mettre en œuvre ce programme pour trois raisons. Premièrement, cela nécessite d'énormes ressources, que Moscou n'a tout simplement pas. Deuxièmement : environ 20 % "Une grande partie du coût du programme est dépensée pour les tribunaux, les gens sont contre, il faut négocier d'une manière ou d'une autre avec eux. Finalement, il n'y a pas de rampe de lancement." En février, tout cela ne s'est pas produit, mais le 10 mars, ce projet de loi a été soudainement présenté. Élaborer un projet de loi n’est pas une tâche si facile, on ne peut pas l’écrire à genoux, mais ici les gens ont travaillé avec une rapidité unique.

— Il y a un autre point : si dans les soixante jours à compter de la date d'envoi de la proposition de conclure un accord, et que celui-ci n'est pas signé, alors les autorités de la capitale ont le droit de saisir le tribunal pour demander de forcer la conclusion de l'accord. Mais qu’en est-il alors de l’affirmation selon laquelle un accord est le produit de la non-résistance entre deux parties ?

S. Kh. : On ne sait pas exactement comment ils vont mettre cela en œuvre devant les tribunaux. Le tribunal est une autorité indépendante et ce n’est pas un fait qu’il se rangera du côté de la ville. Une question encore plus difficile est liée au fait que la deuxième vague de déménagements d’immeubles de cinq étages diffère de la première. Il y avait beaucoup de mauvaises maisons lors de la première vague. Presque tous ces immeubles de cinq étages étaient dans un état si déplorable que les gens voulaient vraiment les quitter. De plus, la ville leur offrait des conditions tout à fait savoureuses.

— Comment l'appartenance à la région se reflète-t-elle dans ce projet de loi ? Autrement dit, si une personne vit sur la perspective Kutuzovsky et que sa maison est incluse dans ce programme, où bénéficiera-t-elle alors d'un logement alternatif ?

E. Sh. : C'est différent selon les domaines. Quelqu'un l'obtient dans sa propre zone ou dans des zones adjacentes. Les habitants du district central et du territoire de la Nouvelle Moscou ont été particulièrement malchanceux à cet égard. En outre, il y a l'expression «au sein du district», mais personne ne pense au fait que l'on parle depuis très longtemps de la consolidation de certains districts de Moscou. De quels domaines parlez-vous ? Jusqu’à quelle taille seront-ils agrandis ? Où finira le nouveau bâtiment dans lequel ils proposeront des appartements aux Moscovites ?

« Lorsque les citoyens ont commencé à découvrir quelles maisons seraient incluses dans le programme de rénovation, il s'est avéré qu'il s'agissait de bâtiments assez solides. Après cela, une vague de négativité est apparue. Pourquoi les autorités municipales font-elles cela ? S'attendaient-ils vraiment à ce que tout se développe d'une manière ou d'une autre, que personne ne le remarque ou ne montre d'insatisfaction ?

S. Kh. : Cette possibilité ne peut être niée, étant donné que la démolition d'immeubles de cinq étages elle-même a été un succès en vingt ans. Lors du premier programme de démolition d'immeubles de cinq étages, les maisons étaient en très mauvais état, avec des communications coupées et des murs qui fuyaient. La deuxième vague comprend les maisons construites dans les années 50 du XXe siècle et dont la durée de vie est de 100 à 150 ans. Ce sont de belles maisons solides, juste un peu délabrées. Leurs murs et fondations sont en excellent état. Si elle n’est pas remplie d’eau, alors c’est tout, la maison peut tenir debout. La principale chose à faire est de réorganiser les communications et d'installer des cadres en plastique au lieu de cadres en bois. Mais, par exemple, à Ochakovo, ces maisons sont démolies en grand nombre, presque par blocs. Vous devez comprendre qu’il s’agit simplement de libérer des terres pour de nouvelles constructions de masse.

Préparé pour publication par Maria Snytkova

En bref, de nouveaux langages de programmation et autres outils sont créés sur la base de ceux existants. Une analogie complète avec d’autres domaines technologiques, où de nouvelles machines et matériaux permettent de créer des machines et des matériaux de plus en plus avancés. Tout comme toutes les machines-outils ont commencé avec un bâton à creuser et un hachoir en silicium, les langages de programmation ont commencé avec des cartes perforées et un code binaire illisible.

L'unité centrale de traitement de votre ordinateur ne comprend que les programmes écrits dans le langage des zéros et des uns. Par exemple, la commande « ajouter la constante 5 au nombre écrit dans le registre AL » s'écrit ainsi :

0000 0100 0000 0101

Ici, 0000 0100 est le code d'opération « ajouter un numéro au registre AL », et 0000 0101 est la représentation binaire du nombre 5.

À l'aube de l'industrie, pour entrer un programme dans un ordinateur, il fallait soit actionner des centaines d'interrupteurs à bascule sur un panneau spécial (l'interrupteur à bascule OFF est zéro, l'interrupteur à bascule ON en est un), soit percer des trous dans un panneau spécial. carte perforée. Si vous faites une erreur dans une cellule sur mille, le programme ne fonctionnera pas correctement, ayez la gentillesse de trouver vous-même l'erreur en regardant attentivement.

Il est clair que cette méthode de programmation est terriblement peu pratique et sujette aux erreurs. Afin de ne pas perdre de temps avec cet ennui, les programmeurs paresseux ont commencé à réfléchir à la manière de transférer le travail ingrat vers la machine.

Vous pouvez souffrir beaucoup une fois et écrire un programme auxiliaire dans le langage des zéros et des uns, appelé assembleur (« assembleur »). Cet assembleur magique prend en entrée du texte lisible par l'homme et le convertit en uns et en zéros. Par exemple, la même commande « ajouter la constante 5 au nombre écrit dans le registre AL » est écrite en langage assembleur x86 comme ceci :

Je pense que vous conviendrez que c'est quand même plus lisible que 0000 0100 0000 0101. Ici au moins il est clair qu'on parle d'addition (ADD) et du chiffre 5. C'est maintenant à l'assembleur de convertir cette ligne en 0000 0100 0000 0101. Le langage assembleur est difficile à écrire pour de gros programmes, les processeurs de différents fabricants peuvent nécessiter différents assembleurs, mais c'était quand même un grand pas en avant.

La pensée technique ne pouvait plus être stoppée. Vous devez souffrir une fois pour écrire un compilateur pour un langage de programmation, tel que Fortran, en assembleur. Ensuite, je devrai souffrir un peu plus pour écrire un compilateur Algol en Fortran. Alors faites une pause, souffrez et écrivez un compilateur CPL en Algol. Encore un peu de tourment et vous pourrez écrire un compilateur C basé sur CPL, vous ne pourrez alors plus souffrir et écrire des compilateurs pour C++, Java, C# et d'autres langages modernes en C pour votre propre plaisir. Cependant, personne n'interdit d'utiliser Java pour écrire un assembleur x86 et fermer la récursion.

Quand sont apparus les premiers ordinateurs ? Il n'est pas si facile de répondre à cette question, car il n'existe pas de classification unique et correcte des ordinateurs électroniques, ni de formulations de ce qui peut être classé comme tel et de ce qui ne le peut pas.

Première mention

Le mot « ordinateur » a été documenté pour la première fois en 1613 et désignait une personne qui effectue des calculs. Mais au 19ème siècle, les gens ont réalisé qu’une machine ne se lasse jamais de travailler et qu’elle peut travailler beaucoup plus rapidement et avec plus de précision.

Pour commencer à compter l’ère des machines informatiques, l’année 1822 est le plus souvent prise. Le premier ordinateur a été inventé par le mathématicien anglais Charles Babbage. Il a créé le concept et a commencé à fabriquer le moteur de différence, considéré comme le premier dispositif informatique automatique. Elle était capable de compter plusieurs séries de nombres et d’imprimer les résultats. Mais malheureusement, en raison de problèmes de financement, Babbage n’a jamais pu terminer sa version complète.

Mais le mathématicien n’abandonna pas et, en 1837, il introduisit le premier ordinateur mécanique, appelé moteur analytique. C'était le tout premier ordinateur à usage général. Parallèlement, débute sa collaboration avec Ada Lovelace. Elle a traduit et complété ses œuvres, et a également réalisé les premiers programmes de son invention.

Le moteur analytique se composait des éléments suivants : une unité arithmétique-logique, une unité de mémoire intégrée et un dispositif de surveillance du mouvement des données. En raison de difficultés financières, le projet n’a pas non plus été achevé du vivant du scientifique. Mais les conceptions et les conceptions de Babbage ont aidé d'autres scientifiques qui ont créé les premiers ordinateurs.

Près de 100 ans plus tard

Curieusement, au cours d'un siècle, les ordinateurs n'ont fait pratiquement aucun progrès dans leur développement. En 1936-1938, le scientifique allemand Konrad Zuse créa le Z1, le premier ordinateur binaire programmable électromécanique. Puis, en 1936, Alan Turing construisit une machine de Turing.

C’est devenu la base d’autres théories sur les ordinateurs. La machine émulait les actions d'une personne suivant une liste d'instructions logiques et imprimait le résultat du travail sur une bande de papier. Les machines Zuse et Turing sont les premiers ordinateurs au sens moderne du terme, sans lesquels les ordinateurs auxquels nous sommes habitués aujourd'hui ne seraient pas apparus.

Tout pour l'avant

La Seconde Guerre mondiale a également influencé le développement des ordinateurs. En décembre 1943, la Tommy Flowers Company introduisit une machine secrète appelée Kollos, qui aidait les agents britanniques à déchiffrer les codes de messages allemands. C'était le premier ordinateur programmable entièrement électrique. Le grand public n’a connu son existence que dans les années 70. Depuis lors, les ordinateurs ont attiré l’attention non seulement des scientifiques, mais aussi des ministères de la Défense, qui ont activement soutenu et financé leur développement.

Il y a un débat quant à savoir quel ordinateur numérique devrait être considéré comme le premier. En 1937-1942, John Vincent Atanasoff, professeur à l'Université de l'Iowa, et Cliff Berry (étudiant diplômé) ont développé leur ordinateur ABC. Et en 1943-1946, J. Presper Eckert et D. Mauchly, scientifiques de l'Université de Pennsylvanie, ont construit l'ENIAC le plus puissant pesant 50 tonnes. Ainsi, Atanasov et Berry ont créé leur machine plus tôt, mais comme elle n'a jamais été pleinement fonctionnelle, le titre de « tout premier ordinateur » revient souvent à ENIAC.

Premiers échantillons commerciaux

Avec leurs dimensions énormes et leur complexité de conception, les ordinateurs n'étaient disponibles que dans les départements militaires et les grandes universités, qui les assemblaient eux-mêmes. Mais déjà en 1942, K. Zuse commença à travailler sur la quatrième version de son idée - Z4, et en juillet 1950, il la vendit au mathématicien suédois Eduard Stiefel.

Et les premiers ordinateurs qui ont commencé à être produits en série étaient des modèles au nom laconique 701, produits par IBM le 7 avril 1953. Au total, 19 701 d’entre eux ont été vendus. Bien entendu, il s’agissait encore de machines destinées uniquement aux grandes institutions. Pour devenir véritablement répandus, ils avaient besoin de quelques améliorations encore plus importantes.

Ainsi, le 8 mars 1955, le « Whirlwind » est entré en service - un ordinateur conçu à l'origine pendant la Seconde Guerre mondiale comme simulateur pour les pilotes, mais au moment de sa création, il est arrivé à temps pour le début de la Seconde Guerre mondiale. Guerre froide. Il est ensuite devenu la base du développement de SAGE, un sous-système de défense aérienne conçu pour cibler automatiquement les avions intercepteurs. Les principales caractéristiques du Whirlwind étaient la présence de 512 octets de RAM et l'affichage d'informations graphiques sur l'écran en temps réel.

La technologie au service du grand public

L'ordinateur TX-O, introduit en 1956 au MIT, fut le premier à utiliser des transistors. Cela a permis de réduire considérablement le coût et les dimensions de l'équipement.

L'équipe de scientifiques qui a développé le TX-O a ensuite quitté l'institut, fondé Digital Equipment Corporation et introduit l'ordinateur PDP-1 en 1960, ouvrant ainsi la voie à l'ère des mini-ordinateurs. Ils n’étaient pas plus grands qu’une pièce ou même un placard et étaient destinés à un plus large éventail de clients.

Eh bien, les premiers ordinateurs de bureau ont commencé à être produits par Hewlett Packard en 1968.



Avoir des questions?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :