Langages de programmation : pourquoi ils sont apparus, représentants éminents, comment choisir un langage. Histoire des langages de programmation Qui a développé le premier un langage de programmation

Plankalkül est le premier langage de programmation de haut niveau au monde, développé par l'ingénieur allemand Konrad Zuse entre
1942 et 1946 pour son ordinateur Z4 (ordinateur en photo ci-dessous, photo tirée de Wikipédia).

La Seconde Guerre mondiale se déroulait, Zuse travaillait indépendamment des scientifiques des autres pays, en toute indépendance. Durant cette période, il a créé non seulement un langage de programmation,
mais il a également écrit 49 pages de programmes pour estimer les positions d'échecs. Son œuvre fut publiée dans son intégralité bien plus tard, en 1972.

Je prendrai le risque de parler de ce langage de programmation comme d’une enquête archéologique. De plus, on parle très peu de cette langue en russe.

Ce n’est qu’en 1957 (les travaux ont commencé en 1954) qu’apparaît le Fortran, un langage considéré par la plupart comme le premier langage de haut niveau.

"Z4" était électromécanique, donc il n'y avait pas de compilateur ou d'interprète Plankalkyl, mais en 2000 à Svobodny
l'Université de Berlin (Freie Universität Berlin) en a créé un interprète
dialecte (s'exécute comme une applet Java dans le navigateur).

Le dialecte mis en œuvre s'appelle Plankalkül-2000 et diffère de l'original par diverses simplifications.
Par exemple, la forme de notation a été simplifiée ; Zuse a utilisé une notation bidimensionnelle :
La première ligne contenait l'expression elle-même, et en dessous certains de ses arguments (type de variable, indices, etc.). De plus, les icônes des opérations elles-mêmes ont été simplifiées,
amené à une forme plus familière pour vous et moi.

Le langage est assez riche, à mon avis, pour les années quarante : il y a des constructions conditionnelles, deux types de boucles (analogues à while et for), il y a des tableaux et des tuples,
vous pouvez décrire et appeler des sous-programmes (mais il n'y a pas de récursion).

Toutes les variables sont divisées en quatre types.

  • "Variable" ( DANS variables d'entrée) sont des variables d'entrée de sous-programmes, en lecture seule, commençant par la lettre « V » et un chiffre.
  • "Zwischenwert" ( Z valeurs intermédiaires), lisibles et inscriptibles, conçues pour stocker des valeurs calculées intermédiaires, commençant par « Z » et un nombre.
  • "Résultat" ( R. résultat) - ces variables renvoient le résultat du calcul, en commençant par « R » et un nombre.
  • "Indizes" ( ET index) - variables de boucle (analogues à for), commencent par "i", alors il peut y avoir un nombre, le nombre est nécessaire pour organiser les boucles imbriquées.
Il existe trois types de variables disponibles. Bien que « Z4 » puisse fonctionner avec des nombres à virgule flottante, l'interprète ne peut pas le faire.
  • Pour un entier non négatif, la dimension en bits est indiquée. Il existe deux formes d'écriture « 0 » - un bit, « n.0 » - « n » bits, par exemple 8,0 - un octet (8 bits).
  • Le tuple est indiqué entre parenthèses, par exemple (3.0, 4.0) - ce sont deux variables de trois et quatre bits, le tuple doit avoir plus d'un élément.
  • Un tableau est écrit via un point, par exemple : 4.5.0 - un tableau de quatre éléments de cinq bits chacun, 32.(0, 8.0, 16.0) - 32 tuples, dont chacun a trois variables : un bit, huit et
    seize.
Plankalküll peut clairement être grandement simplifié dans la syntaxe, mais le dialecte moderne copie presque exactement la notation utilisée par Zuse, je crois que cette syntaxe est née grâce à
la nécessité de « déboguer » le programme sur papier. Cependant, le langage est si simple à mettre en place que je l'ai appris entièrement en 15 minutes et j'y ai même écrit quelques programmes en plusieurs versions.

L'un d'eux calcule le nombre de Fibonacci spécifié (dans l'ordre) :
P0 FactEvgenyStepanischev (V0[:4.0]) => (R0[:10.0]) (0, 1) => (Z0[:10.0], Z1[:10.0]) W1 (V0[:4.0]) [ i > 0 -> (Z0[:10.0] + Z1[:10.0], Z1[:10.0] - Z0[:10.0]) => (Z1[:10.0], Z0[:10.0]) ] Z1[:10.0] => R0[:10.0] FIN
Vous devez le lancer ainsi : ouvrez la page avec l'interpréteur, copiez mon programme dans la fenêtre, cliquez sur « Compiler », un autre
fenêtre avec une applet Java (nécessite l'installation de Java sur l'ordinateur), dans la fenêtre qui s'ouvre, tapez avec la souris la valeur initiale V0 petit à petit (il faut cliquer sur les ronds verts),
puis dans la fenêtre du navigateur cliquez sur « Exécuter », dans la ligne rouge (R0) vous verrez la valeur résultante.


Les sous-programmes dans la langue commencent par le symbole « P » et un numéro unique, suivi d'un nom par lequel il peut être appelé, mon sous-programme s'appelle « FactEvgenyStepanischev », se termine
sous-programme avec le mot-clé «END» (il n'était pas présent dans le Plankalkyl original).

Le sous-programme décrit les valeurs reçues et renvoyées ; j'utilise une variable par entrée, de 4 bits et une variable de sortie, de 10. La première ligne.
les valeurs « zéro » et « un » sont affectées aux variables intermédiaires Z0 et Z1. Le type de variables doit être spécifié à chaque fois qu'elles sont utilisées ; la variable doit être convertie en une autre.
la saisie n'est pas possible.

Ci-dessous se trouve la boucle « for » (W1), puisque je n'ai pas indiqué le numéro de la variable de boucle (indiqué dans les premiers crochets, qui sont omis ici), la variable de boucle « i » est utilisée, sans numéro.
Le nombre de répétitions est indiqué entre parenthèses et le corps du cycle est indiqué entre crochets suivants. Les détails peuvent être
trouver dans la description.

L'opération « flèche » («->») est une construction conditionnelle, la partie de droite sera exécutée si l'expression de gauche est vraie. Seules les expressions les plus simples fonctionnent en dialecte, par exemple
Vous pouvez y insérer une boucle, mais le bouton « Exécuter » n'apparaissait pas dans l'applet, je me suis donc limité à l'attribuer à l'intérieur de la boucle.

Ici, j'ai utilisé une affectation complexe, bien connue de ceux qui utilisent Pearl, Python ou PHP, mais cela fonctionne différemment - les affectations sont effectuées
séquentiellement, de gauche à droite, donc je ne peux pas me limiter à "(Z0[:10.0] + Z1[:10.0], Z1[:10.0]) => (Z1[:10.0], Z0[:10.0]) ", le résultat ne sera pas celui escompté.

A la fin, j'attribue une valeur intermédiaire à la valeur résultante du sous-programme.

A part cela, il n’y a presque rien dans la langue. Il ne sert à rien de décrire séparément l'accès aux éléments du tableau, l'appel d'une fonction et la boucle « while », ils semblent tout à fait naturels dans le cadre de cette syntaxe ;
Toutes les opérations prises en charge par le langage (elles sont peu nombreuses - opérations logiques, opérations sur bits et quatre opérations arithmétiques) semblent familières.

L'une des idées les plus révolutionnaires qui ont conduit à cette création a été l'idée exprimée dans les années 20 du 19ème siècle par Ch. Babbage sur le pré-enregistrement de l'ordre des actions de la machine. A partir de ce moment ça commence histoire des langages de programmation.

Un moment révolutionnaire dans l'histoire des langages de programmation a été l'émergence d'un système de codage d'instructions machine à l'aide de caractères spéciaux, proposé par John Mauchly, un employé de l'Université de Pennsylvanie. Le système de codage proposé par Mauchly a fasciné l'une des employées de son entreprise, Grace Murray Hopper, qui a consacré toute sa vie à l'informatique et à la programmation.

En travaillant sur l'ordinateur Mark 1, G. Hopper et son groupe ont dû faire face à de nombreux problèmes. En particulier, ils ont proposé des sous-programmes.

A l’aube de l’histoire des langages de programmation, le code machine était le seul moyen de communication entre une personne et un ordinateur. La grande réussite des créateurs de langages de programmation a été d'être capables de faire fonctionner l'ordinateur lui-même comme un traducteur de ces langages vers le code machine.

À la fin des années 40, avant que G. Hopper ne rejoigne l'entreprise de John Mauchly, ce dernier créa un système appelé « Short Code », qui était un langage de programmation primitif de haut niveau. Dans ce document, le programmeur notait le problème à résoudre sous la forme de formules mathématiques, puis, à l'aide d'un tableau spécial, traduisait caractère par caractère, convertissant ces formules en codes à deux lettres. Par la suite, un programme informatique spécial a converti ces codes en code machine binaire. Le système développé par J. Mauchly était essentiellement l'un des premiers interprètes primitifs.

Déjà en 1951, Hopper créait le premier compilateur au monde et introduisait également ce terme. Le compilateur Hopper remplissait la fonction de combinaison de commandes et, lors de la traduction, organisait des sous-programmes, allouait et convertissait des commandes de haut niveau (à l'époque des pseudocodes) en commandes machine.

Le milieu des années 50 est caractérisé par des progrès rapides dans l'histoire des langages de programmation. Le rôle de la programmation dans les commandes des machines a commencé à diminuer. Un nouveau type de langage de programmation a commencé à émerger, agissant comme intermédiaire entre les machines et les programmeurs. Le premier et l'un des plus répandus fut Fortran, développé par un groupe de programmeurs IBM en 1954 (première version).

Au milieu des années 60, Thomas Kurtz et John Kemeny, membres du département de mathématiques du Dartmouth College, ont créé un langage de programmation spécialisé composé de simples mots anglais. Le nouveau langage s'appelait BASIC.

Au début des années 60, tous les langages de programmation de haut niveau existants pouvaient être comptés sur une seule main, mais leur nombre a ensuite atteint trois mille. Bien entendu, l'écrasante majorité des langages n'ont pas été largement diffusés dans l'histoire des langages de programmation ; pas plus de deux douzaines sont utilisées dans la pratique. Les développeurs ont concentré les langages de programmation sur différentes classes de tâches, les ont liés à des architectures informatiques spécifiques à un degré ou à un autre et ont mis en œuvre des goûts et des idées personnels. Dans les années 60, dans l'histoire des langages de programmation, des tentatives ont été faites pour surmonter cette « discorde » en créant un langage de programmation universel. La première idée originale de cette direction fut PL/I (Programm Language One), 1967. Puis ALGOL-68 (1968) revendiqua ce rôle. On supposait que ces langages se développeraient, s'amélioreraient et supplanteraient tous les autres. Cependant, aucune de ces tentatives n’a abouti à ce jour. L'exhaustivité du langage a conduit à une complexité injustifiée, du point de vue du programmeur, des structures et à une inefficacité des compilateurs.

A la fin des années 50, ALGOL (ALGOL, de ALGOrithmic Language - langage algorithmique) apparaît dans l'histoire des langages de programmation. Algol est destiné à l'enregistrement, qui est construit sous la forme d'une séquence de procédures utilisées pour résoudre des problèmes assignés.

Le développement de l'idée d'Algol de structurer le développement d'algorithmes s'est le plus reflété dans l'histoire des langages de programmation lorsque le langage Pascal a été créé par le scientifique suisse Niklaus Wirth au début des années 70. Le langage Pascal a été développé à l'origine comme langage pédagogique et, en effet, c'est aujourd'hui l'un des principaux langages d'enseignement de la programmation dans les écoles et les universités.

La période de la fin des années 60 au début des années 80 est caractérisée dans l'histoire des langages de programmation par une croissance rapide du nombre de langages différents, qui, paradoxalement, a accompagné la crise du logiciel. Cette crise a été particulièrement aiguë pour le département militaire américain. En janvier 1975, le Pentagone décida de mettre de l’ordre dans le chaos des traducteurs et créa un comité chargé de développer une langue universelle. La langue gagnante a été baptisée ADA.

Le langage C (première version – 1972), très apprécié des développeurs de systèmes logiciels (y compris). C combine les fonctionnalités à la fois d'un langage de haut niveau et d'un langage orienté machine, permettant au programmeur d'accéder à toutes les ressources de la machine, ce que des langages tels que BASIC et Pascal ne fournissent pas.

Pendant de nombreuses années, les logiciels ont été construits sur la base de langages opérationnels et procéduraux tels que Fortran, BASIC, Pascal, Ada, C. La programmation opérationnelle et/ou procédurale classique nécessite que le programmeur décrive en détail comment résoudre un problème, c'est-à-dire formulation de l'algorithme et de sa notation particulière. Dans ce cas, les propriétés attendues du résultat ne sont généralement pas indiquées. Les concepts de base des langages de ces groupes sont l'opérateur et les données. Dans l'approche procédurale, les opérateurs sont regroupés en groupes - procédures. La programmation structurée dans son ensemble ne va pas au-delà de cette direction ; elle capture simplement certaines techniques utiles de la technologie de programmation.

Une direction fondamentalement différente dans l'histoire des langages de programmation est associée aux méthodologies (parfois appelées « paradigmes ») de programmation non procédurale. Ceux-ci incluent la programmation orientée objet et déclarative. Un langage orienté objet crée un environnement sous la forme de nombreux objets indépendants. Chaque objet se comporte comme un ordinateur distinct ; ils peuvent être utilisés pour résoudre des problèmes comme des « boîtes noires » sans entrer dans les mécanismes internes de leur fonctionnement. Parmi les langages de programmation objet populaires parmi les professionnels, il convient de mentionner en premier C++ ; pour un plus large éventail de programmeurs, les environnements tels que Delphi et Visual Basic sont préférés.

Initialement, la programmation avait une forme extrêmement primitive et n'était pratiquement pas différente d'un code binaire ordonné avec une approche formalisée. En fait, au début du domaine, il y avait peu de différences entre un langage de programmation et un code informatique. Il n'y avait aucune commodité évidente et naturelle pour le programmeur ; il devait connaître les codes numériques de chaque commande de la machine. Même l'allocation de mémoire pour l'exécution des commandes incombait au spécialiste.

Pour simplifier la manipulation des ordinateurs, les gens ont commencé à développer activement des langages, l'un des premiers étant Assembleur. Des noms symboliques ont commencé à être utilisés pour afficher les variables. Au lieu d'opérations numériques, il suffit à une personne de connaître les noms mnémoniques ; leur mémorisation est beaucoup plus facile. Déjà à ce stade, les langages de programmation se rapprochaient d'un langage compréhensible par l'homme.

Les pionniers parmi les langages de programmation incluent Fortran est une combinaison abrégée de 2 mots : Formule et traduction. Créé déjà au milieu des années 50. Le langage est encore utilisé aujourd'hui en raison de sa facilité et de sa simplicité d'écriture, ainsi que d'un système développé de bibliothèques pour Fortran. Il est le plus souvent utilisé pour les calculs scientifiques et techniques, et est également activement utilisé en physique et dans d'autres sciences liées aux mathématiques.

Langues ciblées

En raison des domaines d'utilisation croissants ordinateur D'autres langages sont également apparus pour des développements individuels dans de nouveaux domaines :

  • la direction économique est restée inoccupée jusqu'à l'avènement de Kobol ;
  • Snoball - traite les algorithmes liés aux textes ;
  • Zézayer. Il fonctionne sur la base d'algorithmes de traitement des symboles. Il est activement utilisé pour la formation de l’intelligence artificielle.

Déjà en 1968, un concours avait été lancé pour la première fois, dont le prix principal était le titre du meilleur langage de programmation pour démarrer une carrière. Les données devaient être utilisées pour former des spécialistes. Victoire remportée ALGOL-68, mais il est resté peu connu, et on ne parle pas de popularité.

Il a été créé spécifiquement pour la participation au concours Pascal, développé par Niklaus Wirth. Le langage est très accessible, pratique et combine de nombreux outils puissants pour structurer l'information. Malgré le développement initial dans le but d'enseigner aux étudiants, Pascal s'est généralisé et s'est activement développé. Aujourd’hui encore, c’est l’un des langages de programmation les meilleurs et les plus connus.

Il a été créé pour éduquer les enfants dans les écoles Logo, se trouvait aux origines Samuel Peipert. Avantages : facilité d'utilisation et abondance de possibilités.

Le langage simple BASIC a commencé à être enseigné dans les écoles avec lequel il interagit facilement ; ordinateur comme un dialogue direct. Le temps n'a en rien affecté ce domaine ; le BASIC reste le langage le plus simple pour commencer à apprendre les domaines de programmation les plus courants.

Création du langage C

Le développement des capacités des équipements informatiques a conduit à la nécessité d'écrire des programmes intensifs pour contrôler ordinateur. Cette place a été légitimement prise par le langage C, qui a commencé à être activement utilisé dans les années 70. Un avantage évident de la langue est sa polyvalence. Il est supérieur à Pascal en raison de sa capacité imbriquée à coopérer avec différentes instructions machine et parties de mémoire appropriées.

Le C est utilisé partout comme langage instrumental pour l’écriture de plates-formes d’exploitation, de dispositifs de traduction, de bases de données et d’autres tâches système appliquées. n'a pas d'objectif clair, il convient à de nombreuses tâches en raison de son efficacité, de sa facilité de transfert et de sa consommation économique de ressources. Plus souvent Si la vitesse de traitement des données est comparable à Assembleur, les performances des programmes dans les deux langues seront à peu près égales. Un petit langage contient beaucoup de puissance.

Prologue et Ada

L'introduction de la programmation fonctionnelle a inévitablement conduit à la création de Prolog. Les tâches du langage étaient réduites à l'analyse et à l'interaction avec les langages humains. La logique d'application est formelle, elle est optimale pour résoudre automatiquement des problèmes et des théorèmes.

Il faudra attendre les années 1980 pour que le langage Ada se développe. Il élargit la compréhension classique et les propriétés des langues de l'époque. Ada pouvait résoudre des problèmes en temps réel et simuler des décisions indépendantes.

Classification

Aujourd'hui, des classifications des langues selon le niveau de travail ont été développées ; cette répartition est la plus courante. Il existe 3 niveaux principaux :

  1. Court. Cela inclut divers langages machine ou variétés avec type de codage symbolique assembleur Et Codage automatique. Les opérateurs de commandes machine sont pris comme base, développés uniquement en référence à un code mnémonique. Les opérandes ne sont plus des adresses exactes, mais des désignations symboliques de noms. Tous les modèles sont conçus pour des variétés individuelles PC, ils dépendent de la machine. Dans de tels langages, il existe une forte dépendance du langage à l'égard des caractéristiques internes du système ;
  2. Haut. Les langues sont beaucoup plus courantes et plus pratiques à utiliser. Ceux-ci incluent : ALGOL, C, Prolog, Pascal, BASIC, Fortran et autres. Les langages répertoriés ne dépendent pas strictement de la machine, car ils sont basés sur les capacités du système d'opérandes, qui sont similaires aux algorithmes de classe. Les inconvénients du niveau élevé sont une consommation élevée de ressources et une exécution lente ;
  3. Ultra-élevé. Il y a très peu de langues représentées, seulement APL et ALGOL-68. Ils sont considérés comme ultra haut de gamme en raison du développement d’opérateurs surpuissants.

Selon une autre classification, les langues sont divisées en :

  • symbolique- Prologue, Lisp et Snoball ;
  • informatique-Pascal, C, Algol, BASIC, Fortran.

Orientations de développement

L'informatique dans le monde moderne se développe dans 3 directions clés :

  1. De procédure est apparu pendant la période de développement actif des ordinateurs et autres appareils informatiques et a été largement utilisé depuis lors. Les instructions procédurales contiennent des descriptions explicites des actions à effectuer. Pour obtenir un résultat, une certaine procédure est toujours effectuée, qui consiste en diverses séquences de manipulations. Les langages procéduraux sont divisés en :
    • De construction. Ils utilisent un seul opérateur pour écrire des algorithmes entiers : boucles, fonctions, branches et le reste. Plus célèbres : Pascal, Ada et S.
    • Salles d'opération. Plusieurs actions différentes sont utilisées. Parmi les variétés les plus connues : Focal, Fortran et BASIC.
  2. Non procédural. Les langages de programmation ont une structure déclarative, apparue dans les années 70. Ils ont commencé à se développer plus activement dans les années 80 après l'avènement du projet de formation de la 5ème génération d'ordinateurs. La tâche principale est de créer des opportunités pour construire très intelligent voitures Ils sont également divisés en :
    • Fonctionnel. Le programme effectue le calcul d'une fonction spécifique, qui prend comme base d'autres algorithmes relativement simples et des problèmes plus simples. La direction fonctionnelle est basée sur l'élément principal - la récursivité. Il s'agit de calculer les valeurs d'une fonction en l'utilisant dans d'autres éléments. Le langage manque de boucles et d'une méthode d'attribution de valeurs.
    • Logique. Le programme ne nécessite aucune description des actions ; il est basé sur les relations entre les données et leur signification. Ce n'est qu'après les calculs que vous pourrez recevoir des réponses aux questions. Après avoir parcouru les paramètres connus, la réponse s'affiche. Il n'y a aucune méthode ou ordre dans le programme pour découvrir la réponse ; il est implicitement défini par le langage. Un représentant éminent est Prolog. La pensée algorithmique est complètement éliminée de la direction, seules les relations statiques entre les objets et toutes les dynamiques sont cachées au développeur et réduites au tri des données.
  3. Langages orientés objet, qui sont tous une forme de programmation de haut niveau. De tels langages n'ont pas besoin de décrire une séquence claire de manipulations pour obtenir le résultat d'une tâche, mais des composants individuels de la direction procédurale sont présents. Il est beaucoup plus facile pour les utilisateurs de travailler avec de tels langages, car ils disposent d'une interface accessible et riche. Le meilleur exemple de cette tendance en matière de communication visuelle est Object Pascal.

Il existe des langages pour écrire des scripts, les plus connus sont Rexx, Tcl, Perl et Python, ainsi que les langages shell des systèmes Unix. Ils développent un style de codage individuel qui diffère du principe bien connu de la programmation au niveau système. Ils ne servent pas à créer des applications de niveau inférieur, mais plutôt à combiner différents composants de différents langages qui constituent un ensemble de fonctions individuelles.

Ils ont commencé à se développer plus activement avec la propagation d'Internet, c'est pourquoi les langages de script ont commencé à être largement utilisés. Le plus souvent utilisé pour créer des scripts Perl, et pour Composants WebPart est populaire Javascript.

L'une des idées les plus révolutionnaires qui ont conduit à la création d'ordinateurs numériques automatiques a été l'idée exprimée dans les années 1920 par Charles Babidge de pré-enregistrer l'ordre de fonctionnement de la machine pour la mise en œuvre automatique ultérieure des calculs - un programme . Et, bien que l'enregistrement de programmes sur des cartes perforées utilisées par Babyge, inventées pour contrôler de telles machines par l'inventeur français Joseph Marie Jacquard, n'ait techniquement rien de commun avec les méthodes modernes de stockage de programmes dans un PC, le principe ici est essentiellement le même. A partir de ce moment commence l'histoire de la programmation.
Ada Levellace, une contemporaine de Babidge, est considérée comme la première programmeuse au monde. Elle a théoriquement développé certaines techniques de contrôle de la séquence de calculs qui sont encore utilisées aujourd'hui en programmation. Elle a également décrit l'une des constructions les plus importantes de presque tous les langages de programmation modernes : une boucle.

Un moment révolutionnaire dans l'histoire des langages de programmation a été l'émergence d'un système de codage d'instructions machine à l'aide de caractères spéciaux, proposé par John Mauchly. Le système de codage qu'il a proposé a inspiré l'une de ses collaboratrices, Grace Murray Hopper. En travaillant sur l'ordinateur Mark-1, elle et son groupe ont dû faire face à de nombreux problèmes et tout ce qu'ils ont proposé était pour la première fois. En particulier, ils ont proposé des sous-programmes. Et un autre concept fondamental de la technique de programmation a été introduit pour la première fois par Hopper et son groupe : le « débogage ».
À la fin des années 40, J. Mauchly a créé un système appelé « Short Code », qui était un langage de programmation primitif de haut niveau. Dans ce document, le programmeur notait le problème à résoudre sous la forme de formules mathématiques, puis, à l'aide d'un tableau spécial, traduisait caractère par caractère, convertissant ces formules en codes à deux lettres. Par la suite, un programme informatique spécial a converti ces codes en code machine binaire. Le système développé par J. Mauchly est considéré comme l'un des premiers interprètes primitifs.

Déjà en 1951, Hopper créait le premier compilateur au monde et introduisait également ce terme. Le compilateur Hopper remplissait la fonction de combinaison de commandes et, lors de la traduction, organisait des sous-programmes, allouait de la mémoire informatique et convertissait les commandes de haut niveau (à l'époque des pseudocodes) en commandes machine. « Les sous-programmes se trouvent dans la bibliothèque (de l'ordinateur), et lorsque vous sélectionnez du matériel dans la bibliothèque, cela s'appelle compilation », c'est ainsi qu'elle a expliqué l'origine du terme qu'elle a inventé.

En 1954, un groupe dirigé par G. Hopper a développé un système comprenant un langage de programmation et un compilateur, appelé plus tard Math-Matic. Une fois Math-Matic terminé avec succès, Hopper et son équipe se sont mis à développer un nouveau langage et un nouveau compilateur qui permettraient aux utilisateurs de programmer dans un langage similaire à l'anglais ordinaire. En 1958, le compilateur Flow-Matic apparaît. Le compilateur Flow-Matic a été le premier langage destiné aux tâches de traitement de données commerciales.
Les évolutions dans ce sens ont conduit à la création du langage COBOL (Common Business Oriented Language). Elle a été créée en 1960. Dans ce langage, par rapport à Fortran et Algol, les outils mathématiques sont moins développés, mais les outils de traitement de texte et l'organisation de la sortie des données sous la forme du document requis sont bien développés. Il était destiné à être le langage principal pour le traitement de masse de données dans les domaines de la gestion et des affaires.

Le milieu des années 50 est caractérisé par des progrès rapides dans le domaine de la programmation. Le rôle de la programmation dans les commandes des machines a commencé à diminuer. De nouveaux types de langages de programmation ont commencé à apparaître, agissant comme intermédiaire entre les machines et les programmeurs. Le premier et l'un des plus répandus était Fortran (FORTRAN, de FORmula TRANslator - traducteur de formules), développé par un groupe de programmeurs IBM en 1954 (première version). Ce langage était axé sur les calculs scientifiques et techniques de nature mathématique et est un langage de programmation classique pour résoudre des problèmes mathématiques et techniques sur PC.
Pour les premiers langages de programmation de haut niveau, l'orientation thématique des langages était une caractéristique.
Algol occupe une place particulière parmi les langages de programmation dont la première version est apparue en 1958. L'un des développeurs d'Algol était le « père » de Fortran, John Backus. Le nom ALGOrithmic Language souligne le fait qu’il est destiné à l’écriture d’algorithmes. Grâce à sa structure logique claire, Algol est devenu un moyen standard d'écriture d'algorithmes dans la littérature scientifique et technique.

Au milieu des années 60, Thomas Kurtz et John Kameny (employés du département de mathématiques du Dartmouth College) ont créé un langage de programmation spécialisé composé de simples mots anglais. Le nouveau langage s’appelait « Code d’instruction symbolique polyvalent pour débutants, ou BASIC en abrégé ». L'année de naissance du nouveau langage peut être considérée comme 1964. Aujourd'hui, le langage BASIC universel (qui existe en de nombreuses versions) a acquis une grande popularité et est répandu parmi les utilisateurs de PC de diverses catégories dans le monde entier. Cela a été grandement facilité par le fait que BASIC a commencé à être utilisé comme langage intégré aux ordinateurs personnels, dont l'utilisation généralisée a commencé à la fin des années 70. Cependant, BASIC est un langage non structuré et est donc mal adapté à l’enseignement d’une programmation de qualité. Pour être juste, il convient de noter que les dernières versions de BASIC pour PC (par exemple, QBasic) sont devenues plus structurelles et, dans leurs capacités visuelles, se rapprochent de langages comme Pascal.

Les développeurs ont concentré les langages sur différentes classes de tâches, les ont liés à un degré ou à un autre à une architecture PC spécifique et ont mis en œuvre des goûts et des idées personnels. Dans les années 60, des tentatives ont été faites pour surmonter cette « discorde » en créant un langage de programmation universel. Le premier produit dans cette direction fut le PL/1 (Program Language One), développé par IBM en 1967. Ce langage prétendait pouvoir résoudre n'importe quel problème : informatique, traitement de texte, accumulation et récupération d'informations. Cependant, il s'est avéré trop complexe, le traducteur n'était pas assez optimal et contenait un certain nombre d'erreurs non détectées.
Cependant, la ligne vers l'universalisation des langues a été soutenue. Les langages anciens ont été modernisés en versions universelles : ALGOL-68 (1968), Fortran-77. On supposait que ces langages se développeraient et s'amélioreraient et commenceraient à supplanter tous les autres. Cependant, aucune de ces tentatives n’a abouti.

Le langage LISP est apparu en 1965. Le concept principal est le concept de fonctions définies de manière récursive. Puisqu’il a été prouvé que tout algorithme peut être décrit à l’aide d’un certain ensemble de fonctions récursives, LISP est essentiellement un langage universel. Avec son aide, un PC peut simuler des processus assez complexes, en particulier l'activité intellectuelle des personnes.
Prolog a été développé en France en 1972 pour résoudre des problèmes d'« intelligence artificielle ». Prologue permet de décrire formellement diverses affirmations, la logique du raisonnement, et oblige le PJ à donner des réponses aux questions posées.
Un événement marquant dans l'histoire des langages de programmation fut la création du langage Pascal en 1971. Son auteur est le scientifique suisse Niklaus Wirth. Wirth lui a donné le nom du grand mathématicien et philosophe religieux français du XVIIe siècle Blaise Pascal, qui a inventé le premier dispositif d'addition, c'est pourquoi la nouvelle langue porte son nom. Ce langage a été développé à l'origine comme langage pédagogique pour la programmation structurée et, en effet, il est désormais l'un des principaux langages d'enseignement de la programmation dans les écoles et les universités.

En 1975, deux événements sont devenus des jalons dans l'histoire de la programmation : Bill Gates et Paul Allen se sont annoncés en développant leur version de BASIC, et Wirth et Jensen ont publié la description classique du langage « Pascal User Manual and Report ».

Un succès non moins impressionnant, y compris financier, a été obtenu par Philip Kahn, un Français qui a développé le système Turbo-Pascal en 1983. L'essence de son idée était de combiner les étapes successives du traitement du programme - compilation, édition des liens, débogage et diagnostic des erreurs - dans une seule interface. Turbo Pascal n'est pas seulement un langage et un traducteur, mais également un shell d'exploitation qui permet à l'utilisateur de travailler facilement en Pascal. Ce langage a dépassé son objectif pédagogique et est devenu un langage de programmation professionnel doté de capacités universelles. Grâce à ces avantages, Pascal est devenu la source de nombreux langages de programmation modernes. Depuis, plusieurs versions de Turbo Pascal sont apparues, la dernière en date étant la septième.
Borland/Inprise a complété la gamme de produits Turbo Pascal et a ensuite lancé un système de développement visuel pour Windows - Delphi.

Le langage C (première version – 1972), très populaire parmi les développeurs de systèmes logiciels (y compris les systèmes d’exploitation), a laissé une grande empreinte sur la programmation moderne. Ce langage a été créé comme langage instrumental pour développer des systèmes d'exploitation, des traducteurs, des bases de données et d'autres programmes système et d'application. C combine à la fois les fonctionnalités d'un langage de haut niveau et d'un langage orienté machine, permettant au programmeur d'accéder à toutes les ressources de la machine, ce que des langages comme BASIC et Pascal ne fournissent pas.
La période de la fin des années 60 au début des années 80 a été caractérisée par une croissance rapide du nombre de langages de programmation différents qui a accompagné la crise du logiciel. En janvier 1975, le Pentagone décida de mettre de l’ordre dans le chaos des traducteurs et créa un comité chargé de développer une langue universelle. En mai 1979, le gagnant a été annoncé : un groupe de scientifiques dirigé par Jean Ikhbia. La langue gagnante a été baptisée Ada, en l'honneur d'Augusta Ada Levellace. Ce langage est destiné à la création et à la maintenance à long terme (à long terme) de grands systèmes logiciels ; il permet un traitement parallèle et un contrôle de processus en temps réel.

Pendant de nombreuses années, les logiciels ont été construits sur la base de langages opérationnels et procéduraux tels que Fortran, BASIC, Pascal, Ada, C. À mesure que les langages de programmation évoluaient, d'autres approches fondamentalement différentes de la création de programmes se sont généralisées.
Il existe un grand nombre de classifications de langages de programmation selon divers critères. Les classifications les plus courantes sont :
 langages de programmation de haut niveau (Pascal, BASIC) et de bas niveau (Assembleur) ;
 strictement typé (Pascal) et vaguement typé (BASIC) ;
 avec et sans support de la programmation orientée objet (C++), etc.

Considérons une autre classification. Les langages de programmation sont divisés en :
1) Langages orientés machine :
- les langages machines ;
- les langages de codage symbolique ;
 codes automatiques ;
-macro.
2) Langages indépendants de la machine :
- les langages orientés problèmes ;
- les langues universelles ;
- les langages interactifs ;
- les langages non procéduraux.

Langages orientés machine

Les langages orientés machine sont des langages dont les ensembles d'opérateurs et de moyens graphiques dépendent de manière significative des caractéristiques du PC (langage interne, structure mémoire, etc.). Les langages orientés machine ont les fonctionnalités suivantes :
 haute qualité des programmes créés (compacité et rapidité d'exécution) ;
 la possibilité d'utiliser des ressources matérielles spécifiques ;
 prévisibilité du code objet et des ordres de mémoire ;
 pour créer des programmes efficaces, vous devez connaître le système de commande et les fonctionnalités de fonctionnement de ce PC ;
 le processus d'écriture de programmes à forte intensité de main d'œuvre (notamment dans les langages machine et JSC), mal protégé contre les erreurs ;
 faible vitesse de programmation ;
 l'impossibilité d'utiliser directement les programmes compilés dans ces langages sur d'autres types d'ordinateurs.
Les langages orientés machine sont divisés en classes selon le degré de programmation automatique.

Langage machine

Un ordinateur individuel possède son propre langage machine spécifique (ci-après dénommé ML), il est prescrit d'effectuer des opérations spécifiées sur les opérandes qu'ils définissent, donc ML est un langage de commande. La commande rapporte des informations sur l'emplacement des opérandes et le type d'opération en cours.
Dans les nouveaux modèles de PC, il existe une tendance à améliorer les langages internes du matériel pour implémenter des commandes plus complexes, plus proches dans leurs actions fonctionnelles des opérateurs de langages de programmation algorithmiques.

Langages de codage symbolique

Les langages de codage symbolique (ci-après dénommés SKL), tout comme le ML, sont des langages de commande. Cependant, les codes d'opération et les adresses dans les instructions machine, qui sont une séquence de chiffres binaires (dans le code interne) ou octaux (souvent utilisés lors de l'écriture de programmes), sont remplacés dans JSC par des symboles (identifiants), dont la forme d'écriture aide le programmeur. mémoriser plus facilement le contenu sémantique de l'opération. Cela garantit une réduction significative du nombre d'erreurs lors de la compilation des programmes.
L'utilisation d'adresses symboliques est la première étape pour créer un YASK. Les commandes PC contiennent des adresses symboliques au lieu de véritables adresses (physiques). Sur la base des résultats du programme compilé, le nombre requis de cellules pour stocker les valeurs intermédiaires initiales et résultantes est déterminé. L'attribution des adresses, effectuée séparément de la compilation du programme en adresses symboliques, peut être effectuée par un programmeur moins qualifié ou un programme spécial, ce qui facilite grandement le travail du programmeur.

Codes automatiques

Il existe des langages qui incluent toutes les capacités de YSC, grâce à l'introduction étendue de commandes macro - elles sont appelées autocodes.

Dans divers programmes, il existe des séquences de commandes assez fréquemment utilisées qui correspondent à certaines procédures de conversion d'informations. La mise en œuvre efficace de telles procédures est assurée par leur conception sous forme de macro-commandes spéciales et l'inclusion de ces dernières dans un langage de programmation accessible au programmeur. Les commandes macro sont traduites en commandes machine de deux manières : disposition et génération. Le système intermédiaire contient des « squelettes » – une série de commandes qui implémentent la fonction requise, indiquée par une macro-commande. Les macro-instructions assurent le transfert de paramètres réels qui, pendant le processus de traduction, sont insérés dans le « squelette » du programme, le transformant en un véritable programme machine.
Dans un système de génération, il existe des programmes spéciaux qui analysent la macro-commande, déterminent quelle fonction doit être exécutée et forment la séquence de commandes nécessaire qui implémente cette fonction.
Ces deux systèmes utilisent des traducteurs JSC et un ensemble de macro-commandes, qui sont également des opérateurs de codage automatique.
Les autocodes développés sont appelés assembleurs. Les programmes de service, etc., sont généralement écrits en langages assembleur.

Macro

Un langage qui est un outil permettant de remplacer une séquence de caractères décrivant l'exécution des actions informatiques requises sous une forme plus concise est appelé macro (outil de remplacement).
Fondamentalement, une macro est conçue pour raccourcir l’enregistrement du programme original. Le composant logiciel qui permet aux macros de fonctionner est appelé processeur de macros. Le macroprocesseur reçoit le texte source et définissant la macro. La réponse du macroprocesseur à un appel consiste à émettre un texte de sortie.
Les macros peuvent fonctionner de la même manière avec les programmes et les données.

Langages indépendants de la machine

Les langages indépendants de la machine sont un moyen de décrire des algorithmes permettant de résoudre des problèmes et des informations à traiter. Ils sont faciles à utiliser pour un large éventail d'utilisateurs et ne nécessitent pas qu'ils connaissent les spécificités de l'organisation du fonctionnement d'un PC.
Ces langages sont appelés langages de programmation de haut niveau. Les programmes compilés dans de tels langages sont des séquences d'instructions structurées selon les règles de visualisation du langage (tâches, segments, blocs, etc.). Les opérateurs de langage décrivent les actions que le système doit effectuer après avoir traduit le programme en ML.
Ainsi, les séquences de commandes (procédures, sous-programmes), souvent utilisées dans les programmes machines, sont représentées dans les langages de haut niveau par des instructions individuelles. Le programmeur a pu non pas décrire en détail le processus de calcul au niveau des instructions machine, mais se concentrer sur les principales caractéristiques de l'algorithme.

Langages orientés problèmes

Avec l'expansion des domaines d'application de la technologie informatique, le besoin s'est fait sentir de formaliser la présentation de la formulation et de la solution de nouvelles classes de problèmes. Il était nécessaire de créer des langages de programmation qui, en utilisant des notations et une terminologie dans ce domaine, permettraient de décrire les algorithmes de solution requis pour les problèmes posés ; ils sont devenus des langages orientés problèmes ; Ces langages sont axés sur la résolution de problèmes spécifiques et doivent fournir au programmeur des outils qui lui permettent de formuler brièvement et clairement un problème et d'obtenir des résultats sous la forme requise.
Il existe de nombreux langages problématiques, par exemple :
- Fortran, Algol – langages créés pour résoudre des problèmes mathématiques ;
- Simula, Slang - pour la modélisation ;
- Lisp, Snoball - pour travailler avec des structures de liste.

Langues universelles

Des langages universels ont été créés pour un large éventail de tâches : commerciales, scientifiques, de modélisation, etc. Le premier langage universel a été développé par IBM, qui est devenu PL/1 dans la séquence des langages. Le deuxième langage universel le plus puissant s’appelle ALGOL-68.

Langages conversationnels

L'émergence de nouvelles capacités techniques a imposé aux programmeurs système une tâche : créer des outils logiciels qui assurent une interaction rapide entre une personne et un PC ; ils sont appelés langages interactifs ;
Ce travail a été réalisé dans deux directions. Des langages de contrôle spéciaux ont été créés pour fournir un impact opérationnel sur l'achèvement des tâches, qui ont été compilées dans des langages (sans dialogue) jusqu'alors non développés. Des langages ont également été développés qui, en plus des objectifs de gestion, fourniraient une description des algorithmes permettant de résoudre des problèmes.
La nécessité d'assurer une interaction rapide avec l'utilisateur nécessitait de stocker une copie du programme source dans la mémoire de l'ordinateur même après avoir reçu le programme objet en code machine. Lors de la modification d'un programme à l'aide d'un langage interactif, le système de programmation, à l'aide de tables spéciales, établit la relation entre les structures des programmes source et objet. Cela vous permet d'effectuer les modifications éditoriales requises dans le programme objet.
Un exemple de langage conversationnel est BASIC.

Langages non procéduraux

Les langages non procéduraux constituent un groupe de langages qui décrivent l'organisation des données traitées à l'aide d'algorithmes fixes (langages tabulaires et générateurs de rapports) et des langages de communication avec les systèmes d'exploitation.
Permettant de décrire clairement à la fois la tâche et les actions nécessaires pour la résoudre, les tableaux de décision permettent de déterminer clairement quelles conditions doivent être remplies avant de passer à toute action. Une table de décision, décrivant une certaine situation, contient tous les schémas fonctionnels possibles d'implémentations d'algorithmes de solution.
Les méthodes tabulaires sont facilement maîtrisées par les spécialistes de toute profession. Les programmes écrits en langage tabulaire décrivent facilement des situations complexes qui surviennent lors de l'analyse du système.
Les langages de programmation servent à différentes fins et leur choix est déterminé par la convivialité, l'adéquation à un ordinateur donné et à une tâche donnée. Et les problèmes d'un ordinateur peuvent être très divers : informatiques, économiques, graphiques, experts, etc. Cette diversité de problèmes résolus par un ordinateur détermine la variété des langages de programmation. En programmation, les meilleurs résultats sont obtenus avec une approche individuelle basée sur la classe du problème, le niveau et les intérêts du programmeur.

Historique de la création du langage de programmation Basic et Visual Basic

Le langage de programmation Basic a été créé en 1964 par deux professeurs du Dartmouth College, John Kenemi et Thomas Kurtz, pour enseigner aux étudiants des compétences en programmation. La langue s'est avérée si simple et compréhensible qu'après un certain temps, elle a commencé à être utilisée dans d'autres établissements d'enseignement. En 1975, avec l’avènement des premiers micro-ordinateurs, le relais Basic a été repris par Bill Gates et Paul Allen, les fondateurs de Microsoft. Ce sont eux qui ont créé une nouvelle version de Basic pour les premiers ordinateurs Altair (MITS Altairs), capable de fonctionner avec 4 Ko de RAM. Au fil du temps, c'est cette version qui est devenue l'un des langages de programmation les plus populaires au monde. Sur le chemin de l'apogée de la gloire, Basic a connu de nombreuses difficultés, qu'il a toujours surmontées avec honneur, et lorsque les premiers ordinateurs personnels IBM PC sont apparus, il est devenu le standard en matière de programmation, mais sous la forme de GW-Basic. Ensuite, il y avait Turbo Basic, QuickBasic, Basic PDS, mais toujours lors du développement d'une nouvelle version du langage, la compatibilité avec les versions précédentes était maintenue et un programme écrit pour presque le premier Basic pourrait bien (avec des modifications mineures) fonctionner dans les versions ultérieures de ce langue. Mais de nouveaux temps sont arrivés et au début des années 90, le système d'exploitation Microsoft Windows est apparu avec une nouvelle interface utilisateur graphique (GUI).

La vie des programmeurs est devenue un enfer. Pour créer un programme simple, il fallait écrire plusieurs pages de code : créer des menus et des fenêtres, changer les polices, vider la mémoire, « dessiner » des boutons, etc. Cependant, les avantages de la nouvelle interface étaient si indéniables que déjà la troisième version de ce système d'exploitation est devenue le standard de facto pour un ordinateur personnel. A cette époque, plusieurs projets parallèles étaient en cours au sein de Microsoft pour créer un nouveau langage de programmation pour Windows. Et en 1991, sous le slogan « Désormais, même les programmeurs débutants peuvent facilement créer des applications pour Windows », la première version du nouvel outil Microsoft Visual Basic est apparue. À cette époque, Microsoft évaluait assez modestement les capacités de ce système, le ciblant principalement sur la catégorie des programmeurs débutants et non professionnels. La tâche principale était alors de mettre sur le marché un outil de développement simple et pratique dans l'environnement Windows alors relativement nouveau, dont la programmation était un problème même pour les spécialistes expérimentés. Le système de programmation créé par les développeurs de Visual Basic a permis de « prendre du recul » par rapport à la structure interne complexe de Windows et de créer des programmes à partir de « cubes », comme dans un jeu de construction pour enfants. Des menus, des fenêtres, des listes, des boutons, des champs de saisie de texte et d'autres éléments de l'interface Windows ont été ajoutés au programme à l'aide de simples opérations de glisser-déposer.

Les programmeurs VB ont créé leur premier programme quelques minutes après avoir commencé à apprendre ce langage ! De plus, Visual Basic a permis aux développeurs de créer de nouveaux objets « cubes » qui pourraient également être utilisés dans des programmes en plus des objets standard. Et bien que de nombreux programmeurs C se soient moqués des tentatives de Microsoft de créer un outil simple et compréhensible pour développer des programmes Windows, Visual Basic a commencé sa marche victorieuse à travers le monde et rien n'a pu arrêter ce processus. Les dernières barrières sont tombées en 1994 avec la sortie de Visual Basic pour Applications. C'est à cette époque, après l'inclusion de VBA dans Microsoft Office, que Basic a commencé à devenir l'un des principaux standards de programmation pour Windows. Pour Microsoft, le langage Basic revêt une importance particulière ; à une époque, le développement d'une version Basic pour l'ordinateur Altair 8800 a marqué le début de la carrière de programmation de ses fondateurs, Bill Gates et Paul Allen. Par conséquent, à un moment donné - en 1989, lorsque le moment est venu de répartir les principales orientations de création d'environnements de développement dans divers langages de programmation entre différentes entreprises, Microsoft a retenu QuickBasic - un environnement de développement de programmes en Basic, refusant, par exemple, de poursuivre les travaux. sur le langage de programmation Pascal, laissant le soin à Borland, qui, à son tour, arrêta de travailler sur sa version Basic (Pascal devint plus tard le langage Delphi).

Initialement conçu comme un jouet, Visual Basic de Microsoft a pris d'assaut le monde de la programmation. Sa popularité est due à deux raisons : la relative simplicité et la productivité. Les programmes VB sont plus lents que leurs homologues C/C++, mais ils restent suffisamment rapides pour de nombreuses tâches commerciales et nécessitent beaucoup moins de temps de développement. Les formulaires étaient la même abstraction permettant d'économiser des efforts que VB offrait aux programmeurs Windows. L'IDE VB a permis de concevoir des fenêtres graphiquement en faisant glisser des contrôles tels que des boutons et des zones de liste depuis la barre d'outils vers un formulaire. Une fois que vous étiez satisfait de l'apparence du formulaire, vous pouvez passer au code et écrire des gestionnaires d'événements pour chaque contrôle de formulaire.

Développer une application en VB consistait ainsi à créer plusieurs formulaires qui communiquaient entre eux et consultaient éventuellement une base de données pour obtenir les informations nécessaires. La forme résultante s’est avérée être une fenêtre, qui offrait des techniques de fenêtrage beaucoup plus pratiques. VB a réduit les erreurs en supprimant certaines syntaxes C/C++ cachées. Sauf cas particuliers, les expressions étaient limitées à une seule ligne de code et les variables devaient être déclarées et initialisées sur des lignes de code distinctes. Les opérateurs d'affectation et de comparaison utilisaient le même symbole, mais la grammaire VB exigeait que ces opérateurs soient utilisés d'une manière qui rende clairement leur intention.

Peut-être plus important encore, il n'y avait aucun pointeur - une exigence de Bill Gates depuis les premières versions de Microsoft BASIC. Bien que les pointeurs soient utiles car ils permettent un accès direct à la mémoire à n’importe quelle adresse, leur utilisation est sujette à des erreurs s’ils ne sont pas utilisés avec précaution. L'exigence de simplicité grammaticale du BASIC vient du fait qu'il a été créé à l'origine comme un langage d'enseignement : le « Code pédagogique symbolique polyvalent pour débutants ». La version 6 de VB est déjà un langage puissant qui peut être utilisé pour créer des applications distribuées en utilisant Composants COM et Microsoft Transaction Server Microsoft a proposé une approche à trois niveaux pour les architectures client-serveur dans laquelle des interfaces utilisateur légères interagissaient avec des composants VB distants pour récupérer des données d'une base de données ou d'une autre machine.

À l'aide de VBScript et VBA (VB pour Applications), vous pouvez écrire des scripts pour les navigateurs Web et automatiser les applications Microsoft Office. De plus, VB6 peut être utilisé pour créer des contrôles Active-X qui fonctionnent avec Internet Explorer, bien que cela soit rarement fait car cela nécessite l'installation de la DLL d'exécution VB sur la machine client Internet. À partir de VB5, les programmes VB ont été compilés en code machine, mais ils étaient basés sur l'utilisation d'une DLL qui fournissait des fonctions couramment utilisées et implémentait les capacités objet de VB. Ce qui est intéressant, c'est que le compilateur VB utilise le mode multi-passes pour la traduction et s'appuie finalement sur le compilateur Microsoft C++ pour produire une sortie de code machine après compilation dans un langage intermédiaire. Les germes de .NET sont visibles dans cette fonctionnalité de VB : l'utilisation d'une bibliothèque d'exécution et d'un backend C++.

Histoire de la création du langage de programmation C#

Le langage C# est né en juin 2000 grâce au travail minutieux d'un grand groupe de développeurs Microsoft dirigé par Anders Hejlsberg. Cet homme est connu comme l'auteur de l'un des premiers langages de programmation compilés pour les ordinateurs personnels IBM - Turbo Pascal. Probablement, sur le territoire de l'ex-Union soviétique, de nombreux développeurs expérimentés, et simplement des personnes ayant étudié la programmation sous une forme ou une autre dans les universités, ont découvert le charme et la facilité d'utilisation de ce produit. De plus, alors qu'il travaillait chez Borland Corporation, Anders Hejlsberg est devenu célèbre pour avoir créé l'environnement intégré Delphi (il a dirigé ce projet jusqu'à la sortie de la version 4.0).
Ce n'est pas un hasard si l'apparition du langage C# et de l'initiative .NET s'est produite au début de l'été 2000. C'est à cette époque que Microsoft préparait des versions industrielles de nouvelles technologies et solutions de composants dans le domaine de la messagerie et de l'échange de données, comme ainsi que la création d'applications Internet (COM+, ASP+, ADO+ , SOAP, Biztalk Framework). Sans aucun doute, la meilleure façon de promouvoir ces nouveaux produits est de créer des outils pour les développeurs avec leur plein soutien. C'est l'un des principaux objectifs du nouveau langage C#. En outre, Microsoft ne pouvait plus étendre les mêmes outils et langages de développement, ce qui les rendait de plus en plus complexes pour répondre aux exigences contradictoires de prise en charge du matériel moderne et de maintien de la compatibilité ascendante avec les produits créés au début des années 1990. lors de la première apparition de Windows. Il arrive un moment où il est nécessaire de repartir de zéro afin de créer un ensemble simple mais complexe de langages, d'environnements et d'outils de développement qui permettront au développeur de créer facilement des produits logiciels modernes.

C# et .NET sont le point de départ. Pour faire simple, .NET est une nouvelle plateforme, une nouvelle API pour la programmation sous Windows, et C# est un nouveau langage créé de toutes pièces pour fonctionner avec cette plateforme, et pour tirer pleinement parti des progrès des environnements de développement et de nos compréhension des principes de la programmation orientée objet depuis 20 ans.
Il convient de noter que la compatibilité ascendante n’est pas perdue. Les programmes existants fonctionneront et la plate-forme .NET a été conçue pour fonctionner avec les logiciels existants. La communication entre les composants de Windows se fait désormais presque entièrement via COM. Dans cet esprit, .NET a la capacité de (a) créer des wrappers autour des composants COM existants afin que les composants .NET puissent communiquer avec eux, et (b) créer des wrappers autour des composants .NET afin qu'ils ressemblent à des composants COM classiques.

Les auteurs de C# ont cherché à créer un langage qui combine la simplicité et l'expressivité des langages modernes orientés objet (comme Java) avec la richesse et la puissance du C++. Selon Anders Hejlsberg, C# emprunte l’essentiel de sa syntaxe au C++. En particulier, il contient des types de données aussi pratiques que les structures et les énumérations (un autre descendant du C++ - Java - ne dispose pas de ces éléments, ce qui crée certains inconvénients lors de la programmation). Les constructions syntaxiques C# sont héritées non seulement de C++, mais également de Visual Basic. Par exemple, C#, comme Visual Basic, utilise des propriétés de classe. Comme C++, C# permet la surcharge d'opérateurs pour les types que vous créez (Java ne prend en charge aucune de ces fonctionnalités). C# est en fait un hybride de différents langages. Dans le même temps, C# n’est pas moins (sinon plus) syntaxiquement propre que Java, aussi simple que Visual Basic, et a presque la même puissance et la même flexibilité que C++.

Fonctionnalités de C# :

Un ensemble complet et bien défini de types de base.
- Prise en charge intégrée de la génération automatique de documentation XML. Libération automatique de la mémoire allouée dynamiquement.
- Possibilité de marquer les classes et les méthodes avec des attributs définis par l'utilisateur. Cela peut être utile pour la documentation et affecter le processus de compilation (par exemple, vous pouvez marquer les méthodes qui ne doivent être compilées qu'en mode débogage).
- Accès complet à la bibliothèque de classes de base .NET, ainsi qu'un accès facile à l'API Windows (si vous en avez vraiment besoin).
- Pointeurs et accès direct à la mémoire, si nécessaire. Cependant, le langage est conçu de telle manière que dans presque tous les cas, vous pouvez vous en passer.
- Prise en charge des propriétés et des événements de style VB.
- Clés de compilation faciles à modifier. Permet d'obtenir des exécutables ou des bibliothèques de composants .NET pouvant être appelés par d'autres codes de la même manière que les contrôles ActiveX (composants COM).
- Capacité à utiliser C# pour écrire des pages Web ASP.NET dynamiques.

Un domaine auquel ce langage n'est pas destiné est celui des programmes à temps critique et à haut débit, pour lesquels il est important de savoir si une boucle prend 1 000 ou 1 050 cycles machine à exécuter et où les ressources doivent être libérées immédiatement. C++ reste le meilleur langage de bas niveau dans ce domaine. C# manque de certaines fonctionnalités clés nécessaires pour créer des applications hautes performances, telles que des fonctions en ligne et des destructeurs dont l'exécution est garantie à certains points du code. Ce langage est également activement utilisé pour créer des jeux vidéo modernes, par exemple, le jeu Battlefield 3 est partiellement écrit en C# et entièrement en technologie .NET.

Remarque 1

Pour que les premiers programmes fonctionnent, il était nécessaire d'installer des interrupteurs à clé sur le panneau avant de l'appareil informatique. Naturellement, en utilisant cette méthode, il n'était possible de composer que de petits programmes. L'une des premières tentatives de création d'un langage de programmation à part entière a été réalisée par le scientifique allemand Konrad Zuse, qui, au cours de la période 1943-1945. a développé le langage Plankalkul. Plankalkul était un langage très prometteur, qui était en fait un langage de haut niveau, mais pendant la guerre, il n'a pas été mis en œuvre de manière pratique et sa description n'a été publiée qu'en 1972.

Code machine. Assembleur

L'histoire des langages de programmation commence avec le développement du langage machine : le langage du zéro et un logique. Écrire dans cette langue était très difficile et fastidieux.

Faciliter le travail des programmeurs à la fin des années 40. Le langage d'assemblage a été développé. Au lieu de chiffres binaires désignant une commande, des mots courts ou des abréviations étaient écrits. Les programmeurs considèrent le langage assembleur comme un langage de programmation de bas niveau car il est proche du langage de niveau le plus bas, le langage machine. Les programmes écrits en langage assembleur dépendent directement des caractéristiques d'un processeur particulier, c'est pourquoi on l'appelle langage orienté machine.

Écrire des programmes en langage assembleur est une tâche assez difficile et une connaissance des appareils informatiques est également requise. Et pourtant, les programmes assembleurs sont les plus efficaces et efficients.

Langages algorithmiques

Au cours du développement de la programmation, le besoin s'est fait sentir de développer de nouveaux langages de programmation plus avancés qui seraient similaires aux langages naturels et permettraient de ne pas travailler directement avec les commandes de la machine. On en est venu à les appeler langages de haut niveau. Les langages de haut niveau se concentrent sur la description d'algorithmes, c'est pourquoi ils sont appelés langages algorithmiques. L'avantage de ces langages est une plus grande clarté et une plus grande indépendance par rapport à un ordinateur spécifique.

Puisque seul le langage machine est reconnu par un ordinateur, un programme écrit dans un langage algorithmique doit être traduit dans ce langage par un programme spécial - un traducteur - avant exécution. Le traducteur contient toutes les règles du langage algorithmique et les méthodes de conversion de ses différentes structures en langage machine. Il existe deux types de diffusion :

  • La compilation est une méthode d'exécution de programmes dans laquelle les instructions du programme sont exécutées uniquement lorsque la traduction de l'intégralité du texte du programme a été compilée.
  • L'interprétation est une méthode d'exécution de programme dans laquelle les instructions du programme sont traduites et immédiatement exécutées.

Remarque 2

L'avantage des programmes écrits dans un langage algorithmique est la simplification du travail avec le programme en raison de la relative simplicité d'écriture, de la lisibilité aisée et de la possibilité de sa correction. Les inconvénients incluent : du temps et de la mémoire supplémentaires pour la diffusion.

Programmation structurée

En 1954, le développement du premier compilateur de langage de haut niveau a commencé. Deux ans plus tard, le langage Fortran apparaît (FORMula TRANslator - « traducteur de formule »). Le langage contenait des fonctionnalités qui simplifiaient grandement le développement, mais programmer en Fortran n'était pas une tâche facile : s'il était facile à comprendre dans les programmes courts, le langage devenait illisible lorsqu'il s'agissait de programmes volumineux. Malgré cela, le langage a connu un grand succès et de nombreuses versions ont été publiées.

Les problèmes ont été résolus après le développement de langages de programmation structurés : ils ont introduit la possibilité de créer des blocs de programme, des sous-programmes indépendants, la prise en charge de la récursivité et des variables locales et l'absence d'opérateur de saut inconditionnel (GoTo). Ainsi, ces langages ont commencé à prendre en charge la possibilité de diviser un programme en ses éléments constitutifs.

En dix ans, un assez grand nombre de nouvelles langues ont été créées :

  1. Algol (1958) avait pour objectif d'écrire des algorithmes composés de blocs séparés ;
  2. Cobol (1959) a été utilisé pour le traitement de données en masse dans les domaines de la gestion et des affaires ;
  3. Basic (1965) permettait d'écrire des programmes simples et était utilisé pour enseigner les bases de la programmation.

Très peu de langages créés étaient structurés. Des langages spécialisés ont également été créés : Lisp, Prolog, Forth, etc. Il convient de noter en particulier le langage Pascal (1970), du nom du scientifique Blaise Pascal, qui était utilisé à la fois pour l'apprentissage et pour résoudre des problèmes de complexité variable. Les programmes Pascal étaient faciles à lire, vous permettant de trouver et de corriger rapidement les erreurs, et ils étaient bien structurés. Tout ce qui précède a conduit à son utilisation généralisée, et même aujourd'hui, il est activement utilisé dans les établissements d'enseignement.

En 1972, le langage C a été introduit, ce qui constitue une étape réussie dans la programmation. La langue combinait les avantages de nombreuses langues et présentait un grand nombre d'innovations différentes. Les larges possibilités, la structure et la relative simplicité de son étude ont permis à la langue de se faire rapidement reconnaître et de gagner la place d'une des langues principales.

L'avènement de la programmation structurée a apporté d'excellents résultats, mais il était encore difficile d'écrire des programmes longs et sérieux.

Programmation orientée objet (POO)

Depuis les années 1970 Les bases de la programmation orientée objet (POO) ont été posées, conséquence du développement de la programmation procédurale, dans laquelle les données et les routines pour leur traitement n'étaient pas formellement liées.

La POO comprend les concepts de base suivants :

  • Classe– une maquette d’un objet qui n’existe pas encore. En fait, il s’agit d’un schéma d’un objet décrivant sa structure.
  • Objet– une instance d'une classe, une entité dans l'espace d'adressage d'un système informatique qui apparaît lors de la création d'une instance d'une classe.
  • Abstraction– attribuer à un objet des caractéristiques qui définissent clairement ses limites, qui le distinguent de tous les autres objets. L’idée de base est de séparer la manière dont les objets de données composites sont utilisés des détails de leur implémentation sous la forme d’objets plus simples.
  • Encapsulation– combiner des propriétés (données) et des méthodes (routines) dans une classe afin de masquer les données de l'objet du reste du programme et de garantir l'intégrité et l'indépendance de l'objet (la modification des propriétés de l'objet n'est possible que via des méthodes de classe spéciales).
  • Héritage– un mécanisme de langage qui permet de décrire une nouvelle classe basée sur une ou plusieurs classes existantes avec l'ajout de nouvelles propriétés et méthodes.
  • Polymorphisme– la capacité d'un système à utiliser des objets avec la même interface sans obtenir d'informations sur son type et sa structure interne.

Remarque 3

En 1967, apparaît le langage Simula, le premier langage de programmation dans lequel les principes d'orientation objet sont proposés. Il prenait en charge le travail avec des objets, des classes, des méthodes virtuelles, etc., mais toutes ces fonctionnalités n'étaient pas suffisamment appréciées par les contemporains. Cependant, la plupart de ces concepts ont été incorporés par Alan Kay et Dan Ingalls dans le langage Smalltalk, qui est devenu le premier langage de programmation orienté objet largement utilisé.

Actuellement, le nombre de langages de programmation appliqués qui implémentent le paradigme orienté objet est le plus important par rapport aux autres paradigmes. Les principaux langages supportant le concept de POO : C++, C#, Object Pascal (Delphi), Java, etc.

Développement Internet

Avec le développement de la technologie WWW (World Wide Web), Internet est devenu très populaire. Un grand nombre de langages auxiliaires ont été créés pour assurer le travail avec Internet, la conception de sites Web, l'accès aux ressources, etc.

Le langage interprété Perl, qui se distingue par sa simplicité et sa portabilité aisée vers d'autres plateformes, se généralise. Il est conçu pour écrire des applications et des scripts CGI de complexité variable. Le langage Java est également largement utilisé et joue un rôle important dans le développement et le fonctionnement d’Internet.

Dans les années 1970 Le langage SQL est apparu - un langage de requête structuré créé pour accéder et travailler avec des bases de données.

Pour écrire des codes pour les pages de sites Web, le langage de balisage hypertexte HTML a été développé, qui contient des commandes pour baliser et formater le texte et les graphiques. Pour rendre le site plus attractif et fonctionnel, sont utilisés :

  • Scripts JavaScript qui s'exécutent dans le navigateur Web de l'utilisateur et sont principalement utilisés pour améliorer l'apparence du site et résoudre des problèmes mineurs.
  • Scripts PHP qui s'exécutent côté serveur et envoient les informations déjà traitées au navigateur de l'utilisateur. Ils sont utilisés pour créer des pages HTML dynamiques, des livres d'or, maintenir des forums et des sondages.
  • Les scripts CGI, écrits principalement en Perl et C/C++, sont exécutés côté serveur et dépendent d'actions spécifiques de l'utilisateur. Ils sont utilisés, comme les scripts PHP, pour créer des pages HTML dynamiques, des livres d'or, maintenir des forums et des sondages.


2024 wisemotors.ru. Comment cela marche-t-il. Fer. Exploitation minière. Crypto-monnaie.