LA CLOCHE

Il y a ceux qui ont lu cette nouvelle avant vous.
Abonnez-vous pour recevoir les derniers articles.
Email
Nom
Nom de famille
Comment voulez-vous lire The Bell
Pas de spam

Le langage BASIC (alias BASIC, alias BASIC) fait partie de la famille des langages de programmation de haut niveau.

DE BASE est une abréviation qui signifie: Beginner's UNEll-but Symbolique jenstruction Code est un code d'instructions symbolique générique pour les débutants).

Le langage de programmation BASIC a été développé en 1964. L'idée était de créer un langage avec lequel les étudiants sans compétences en programmation pourraient créer indépendamment pour résoudre leurs problèmes.

Cette langue était à une époque très populaire et s'est répandue dans le monde des ordinateurs sous la forme de divers dialectes, principalement comme la langue des ordinateurs personnels.

Depuis sa création, Basic a été perfectionné et compliqué à plusieurs reprises, obéissant aux lois de la programmation moderne. Pour cette raison, il a déjà perdu (par rapport aux premières versions) sa simplicité. Bien que, même avec cela à l'esprit, le Basic moderne reste un langage relativement simple, comparé à des langages tels que, par exemple ,.

Depuis les années 1960, les ordinateurs sont de plus en plus abordables. Non seulement les programmeurs, mais aussi les écoliers et les étudiants qui n'étaient pas des programmeurs pouvaient travailler sur des ordinateurs. Cependant, ces écoliers et étudiants avaient déjà des problèmes qui devaient être résolus à l'aide d'ordinateurs.

Il n'y avait presque pas de programmes prêts à l'emploi à l'époque. Par conséquent, pour chaque tâche, il était nécessaire de créer un programme distinct. Et c'était très difficile de le faire sur les ordinateurs de ces années, en utilisant les langages de programmation disponibles à l'époque (c'est en partie pourquoi les langages de programmation ont été créés plus tôt pour résoudre des problèmes spécifiques, par exemple, PROLOGUE se concentrait sur la création de systèmes avec intelligence artificielle, FORTRAN - pour travailler avec des formules mathématiques dans des calculs scientifiques et techniques, etc.).

Par conséquent, il n'est pas surprenant que quelqu'un ait eu l'idée de créer un langage de programmation aussi simple que possible, afin que les personnes qui ne connaissent absolument pas la programmation puissent créer au moins des programmes simples pour résoudre certains problèmes sur les ordinateurs (cette idée a vu le jour , bien que les critiques ultérieurs aient blâmé BASIK pour ces fonctionnalités).

En conséquence, en 1964, la langue de base a été inventée par les enseignants du Dartmouth College John Kemeny et Thomas Kurtz, et sous leur direction, elle a été mise en œuvre par une équipe d'étudiants. Au fil du temps, alors que d'autres dialectes ont commencé à apparaître, l'implémentation d'origine est devenue Dartmouth BASIC.

BASIC a été conçu et réalisé pour que les étudiants puissent créer leurs programmes relativement facilement. Basic était axé sur les utilisateurs pour qui la vitesse d'exécution des programmes n'était pas trop importante, et pour qui il était beaucoup plus important de pouvoir utiliser un ordinateur pour résoudre leurs problèmes, en principe, sans avoir de formation particulière (rappelez-vous, il n'y avait presque pas de programmes prêts à l'emploi à l'époque).

Lors du développement du langage de base, les huit principes suivants ont été utilisés:

  1. La langue doit être facile à utiliser et compréhensible pour les débutants.
  2. Il doit s'agir d'un langage de programmation polyvalent (et non spécial, comme par exemple Fortran et Prolog mentionnés ci-dessus).
  3. Le langage doit permettre d'étendre les fonctionnalités disponibles aux programmeurs expérimentés.
  4. Le langage doit être interactif, c'est-à-dire exécuter les commandes de l'utilisateur.
  5. La langue doit fournir des messages d'erreur clairs et compréhensibles.
  6. La langue devrait fonctionner rapidement sur les petits programmes.
  7. Le langage ne doit pas être lié au matériel et ne doit pas obliger le programmeur à comprendre le travail de ce matériel même.
  8. La langue doit protéger l'utilisateur du système d'exploitation (ou le système d'exploitation de l'utilisateur - comme vous le souhaitez))).

Lors de la création de Basic, une partie de Fortran II et une partie d'Algol 60 ont été prises comme base. Initialement, Basic a été implémenté sur le mainframe GE-265 avec prise en charge de plusieurs terminaux (un mainframe est un grand serveur haute performance tolérant aux pannes).

Malgré le fait que le langage était déjà utilisé sur plusieurs mini-ordinateurs, sa véritable diffusion a commencé avec l'introduction sur le micro-ordinateur Altair 8800.

De nombreux langages de programmation étaient trop volumineux pour tenir dans la petite mémoire que les utilisateurs de ces ordinateurs pouvaient se permettre. Pour les machines avec des supports lents comme le ruban de papier (plus tard, une cassette à ruban), et sans un éditeur de texte approprié, un petit langage comme BASIC était la meilleure solution.

En 1975, Microsoft (alors il n'y en avait que deux - et Paul Allen, avec la participation de Monte Davidov), a publié Altair BASIC. Ensuite, ses versions sont apparues sur une autre plate-forme sous licence et bientôt il y avait déjà des millions d'exemplaires et différentes variantes en cours d'utilisation. L'une des variantes, Applesoft BASIC, est devenue la langue standard dans. Pour le système d'exploitation CP / M, le dialecte BASIC-80 a été créé, qui était bien en avance sur son temps.

À propos, Bill Gates a déclaré que BASIC est son langage de programmation préféré.

Basic s'est développé le plus rapidement et avec succès au cours des années 1970 et au début des années 1980. En ce moment, presque tout le monde ordinateur personnel avait leur propre interpréteur BASIC, souvent intégré directement dans la ROM. Dans les ordinateurs les plus simples, il servait même de système d'exploitation.

Pratiquement tous les ordinateurs les plus puissants avaient également des systèmes BASIC interactifs. Plusieurs nouvelles versions de BASIC ont été créées pour la plate-forme IBM PC et celles compatibles. Microsoft a vendu BASIC pour MS-DOS / PC DOS, y compris BASICA, GW-BASIC (une modification BASICA qui ne nécessitait pas de micrologiciel IBM) et QuickBASIC.

La société Borland, qui est devenue largement connue (avec laquelle elle est entrée pour la première fois sur le marché), a lancé en 1985 le système Turbo Basic 1.0 basé sur le même environnement logiciel (ses successeurs ont ensuite été vendus par une autre société sous le nom de PowerBASIC).

À la fin des années 80, les ordinateurs personnels étaient devenus beaucoup plus puissants et offraient de nouvelles capacités (comme une interface utilisateur graphique). Il n’était plus aussi simple ni pratique d’utiliser ces nouvelles possibilités en BASIC. De plus, des compilateurs bon marché de langages plus avancés sont apparus (comme Pascal et C), qui, de plus, avaient de la fantaisie pour l'époque et des bibliothèques supplémentaires avec des bibliothèques prêtes à l'emploi (par exemple, Borland Pascal avec la bibliothèque Turbo Vision).

BASIC a commencé à perdre de sa popularité, même si un grand nombre de versions étaient encore utilisées et vendues. Dans le même temps, la transition progressive de Basic vers des langages structurels reconnus a commencé: le vocabulaire et l'ensemble des constructions de langage se sont développés, des branches complexes, des sous-programmes et des fonctions nommés, et de longs noms de variables sont apparus.

Caractéristiques du langage BASIC

Les premières versions de BASIC (telles que BASICA, GW-BASIC) sont très différentes des dialectes modernes et ne sont pratiquement pas utilisées aujourd'hui. De plus, ils diffèrent tellement qu'un programmeur novice ne pourra pas traduire tous les programmes de l'ancien BASIC en BASIC moderne.

La structure du programme dans les premières versions de BASIC a été en grande partie formée en tenant compte du fait qu'il était destiné à un environnement de programmation avec un éditeur en ligne. Dans un tel éditeur, l'utilisateur ne pouvait pas afficher tout le texte à l'écran (dans la fenêtre), il ne pouvait le parcourir dans aucune direction à l'aide du clavier et / ou de la souris. Dans les éditeurs de ligne, pour changer une ligne de texte, l'utilisateur doit donner la commande pour changer la ligne avec le nombre spécifié, puis entrer le nouveau texte de la ligne spécifiée (qui était la vie des programmeurs))).

Pour insérer une nouvelle ligne, vous devez donner la commande d'insertion, en spécifiant à nouveau le numéro. Les lignes saisies sont affichées à l'écran de manière séquentielle (quels que soient les nombres). Pour voir les modifications apportées, la commande de sortie de texte est utilisée, qui sort les lignes dans le bon ordre (nombres croissants).

Par conséquent, dans l'ancien BASIC, chaque ligne commençait par un nombre. Lors de la saisie dans l'éditeur, la ligne apparaît dans le code source du programme à la position correspondant à son numéro. Pour insérer une nouvelle ligne, il était nécessaire d'ajouter une ligne avec un nombre compris entre les numéros des deux autres lignes.

Il était impossible de "déplacer" les lignes s'il était nécessaire d'insérer une nouvelle ligne entre des lignes avec des numéros adjacents, il était nécessaire de ressaisir ces lignes avec des numéros différents afin de fournir une coupure dans la numérotation (ou utiliser la commande spéciale RENUM, qui changeait les numéros de toutes les lignes déjà entrées avec un pas constant) ...

Comme vous pouvez l'imaginer, lors de la création d'un programme plus ou moins complexe, il est presque impossible de prédire combien de lignes il contiendra et dans quel ordre elles suivront.

Par conséquent, pour assurer l'édition ultérieure du programme, il est devenu habituel de numéroter les lignes avec un pas de 10 (et parfois même plus). Cela permettait, dans la plupart des cas, d'insérer de nouvelles lignes sans problème sans modifier les numéros de ligne précédemment saisis.

Nous considérerons un exemple un peu plus tard, lorsque nous nous familiariserons avec la syntaxe du langage BASIC.

Syntaxe BASIQUE

Le terminateur est la fin de la ligne. Pour placer plusieurs opérateurs sur une même ligne, vous devez mettre un signe deux-points entre eux (ce n'était pas autorisé dans toutes les implémentations de langage).

Le programme BASIC le plus simple:

10 IMPRIMER «Bonjour MONDE!»

Basic n'est pas un langage sensible à la casse. Autrement dit, pour Basic, les mots IMPRIMER et imprimer sont identiques. Cela s'applique non seulement aux mots-clés, mais également aux noms de variables. Bien que certaines implémentations du langage respectent la casse en tout ou en partie (par exemple, Liberty BASIC).

Les noms de variables doivent commencer par une lettre et peuvent être composés de lettres latines et de chiffres. Pour créer une variable de type chaîne, vous deviez ajouter un signe dollar ($) après le nom.

Par exemple:

X \u003d 100 Variable numérique X $ \u003d Variable chaîne "Bonjour"

Les expressions sont similaires aux expressions de la plupart des autres langages de programmation procédurale, mais il y en avait pas mal dans les premières versions de BASIC. Dans les premières versions, le nombre de mots-clés était inférieur à 20 (c'est la beauté de BASIC))).

Vous n'avez pas besoin de déclarer des variables simples. Nous écrivons simplement le nom de la variable n'importe où dans le programme, et c'est tout. Cependant, les tableaux doivent être déclarés.

Voici les constructions de langage les plus basiques qui ont été implémentées dans presque tous les systèmes BASIC de la fin des années 1970 (beaucoup de ces constructions sont prises en charge par les implémentations modernes du langage Basic):

LISTE
Sortie sur le moniteur du texte du programme dans la séquence correcte de lignes.

COURIR
Fonctionnement programme actuel à partir du premier opérateur de la ligne la plus petite.

REM
Un commentaire. Le texte après le mot-clé et à la fin de la ligne est un commentaire. De nombreux interprètes acceptent également le guillemet simple comme début d'un commentaire. "Certains interprètes n'acceptent le mot REM que s'il se trouve au tout début d'une ligne.

CONTRIBUTION
Affiche le texte d'invite sur le moniteur et attend que l'utilisateur entre une valeur et appuyez sur ENTRÉE.

IMPRESSION
Affiche les données sur le moniteur (texte et valeurs des variables).

CLS
Efface l'écran.

FAIBLE
Description du tableau. Contrairement aux variables régulières, les tableaux nécessitent une déclaration préalable.

Étiquette GOTO
Commande de saut inconditionnelle à Label.

SI DONC ...
L'opérateur de branchement habituel. Après IF, une condition logique est placée, après THEN - un opérateur qui doit être exécuté si cette condition est vraie.

FIN
Fin de l'exécution du programme. Le système quitte l'interpréteur et l'utilisateur est invité à entrer des commandes.

ENREGISTRER
Commander mode interactifqui enregistre le programme actuel dans un fichier à média externe.

CHARGE
Une commande interactive qui charge un programme en mémoire à partir d'un fichier sur un support externe. Cela supprime généralement le programme et les données précédemment chargés de la mémoire.

Un exemple de programme BASIC:

10 CLS "Effacer l'écran 20 IMPRIMER" Bonjour MONDE !!! "30 X \u003d 100" Attribuer 100 à la variable X 40 ENTRÉE "Entrer un nombre:"; Y 50 IMPRIMER Y; "*"; X; "\u003d"; X * Y 60 FIN

Interprètes de base

L'un des interpréteurs BASIC les plus connus est QBasic de Microsoft. Pendant de nombreuses années, il a été fourni gratuitement avec les systèmes d'exploitation MS-DOS et Windows. QBasic avait de bonnes capacités graphiques et sonores à l'époque. Par conséquent, même les jeux ont été créés sur QBasic (un de mes amis l'a fait - pas ce qui est sur l'image, mais quelque chose comme ça))).

Les versions ultérieures de BASIC (à commencer par Turbo Basic et Visual Basic) sont très différentes des implémentations antérieures. En fait, c'est un nouveau langage qui ressemble déjà plus à Fortran ou Pascal qu'au BASIC original (bien que de nombreuses constructions soient supportées).

BASIC a eu sa deuxième vie avec l'avènement de Visual Basic de Microsoft. Mais, malgré sa popularité, en 2001, Microsoft a abandonné la prise en charge de Visual Basic (si je ne me trompe pas, la dernière version de Visual Basic était la 6.5) au profit d'un langage fondamentalement nouveau, Visual Basic .NET, où le langage était à nouveau "redessiné" et "modifié" se concentre sur la technologie multiplateforme .NET, et dans son état actuel, il coïncide pratiquement dans l'ensemble des fonctionnalités avec le langage C #. Les différences ne concernent que la syntaxe et les mots-clés.

C'est ainsi que Basic a évolué d'un outil de création de logiciel non professionnel à un outil de création de logiciel à part entière.

En plus d'écrire des programmes à part entière, BASIC est largement utilisé comme base pour divers langages de script (par exemple, les macros du package Microsoft Office sont écrites dans le dialecte VBA, le langage de script VBScript est utilisé dans les systèmes SCADA et autres programmes similaires).

Combien de personnes, tant d'opinions

Même dans ses meilleurs moments (1970 ... 1980) BASIC a été soumis à de sévères critiques (cependant, comme presque tous les autres langages de programmation - nous adorons critiquer).

Bien sûr, Basic avait beaucoup de défauts. Mais il a aussi été conçu comme ça! Oui, avec des inconvénients. Mais d'un autre côté, c'est simple et compréhensible même pour les sciences humaines.

Fondamentalement, les programmeurs professionnels ont réduit BASIC en mille morceaux parce que sa simplicité et son manque de structuration font que les programmeurs novices, cherchant à réduire le temps de création de programmes, oublient complètement l'approche «correcte» de la programmation. Ceci est acceptable lors de l'écriture de programmes simples, mais cela conduit presque toujours à un échec lorsque vous travaillez sur de grands projets sérieux.

De nombreux professionnels étaient également fermement opposés à l'utilisation de Basic pour enseigner aux débutants. L'autorité Edsger Dijkstra, bien connue dans le monde des programmeurs, a déclaré qu'il était presque impossible d'enseigner à des étudiants qui avaient déjà étudié la bonne programmation BASIC. Et qu'en tant que programmeurs potentiels, ils sont mentalement paralysés sans espoir de guérison.

Malgré l'autorité de Dijkstra, je ne suis pas d'accord avec lui sur ce point. Ce qui est attribué aux lacunes de BASIC, ce sont en fait ses mérites. Les inconvénients de BASIC (si nous parlons des premiers dialectes) apparaissent lorsque vous essayez de développer des programmes complexes et volumineux dessus professionnellement et que vous l'utilisez comme langage de base pour enseigner aux programmeurs, mais pour aucune de ces applications langue donnée n'était pas prévu. Sa tâche principale était de fournir aux étudiants non programmeurs la possibilité, après une formation minimale, d'écrire indépendamment les programmes les plus simples pour leurs propres besoins, afin de ne pas distraire les spécialistes de ce travail. La langue résout ce problème avec succès.

Si nous parlons de dialectes modernes et d'implémentations de BASIC, alors ils sont allés si loin de la forme originale de la langue que tout ce qui précède peut difficilement être considéré comme lié à eux. Les dialectes modernes de BASIC sont des langages assez structurés, ils sont comparables en capacités avec des langages tels que C, Pascal, etc.

Le langage de base (même ses premières implémentations, comme QBasic), est tout à fait adapté à l'apprentissage, car de mon point de vue il n'y a absolument aucun problème, si nécessaire, alors apprenez une autre langue. Peut-être que dans les années 60 du siècle dernier c'était le problème - je ne sais pas (je suis né en 1969). Mais maintenant - non.

De plus, aujourd'hui, vous n'avez pas vraiment besoin de vous recycler, car vous pouvez créer vos propres programmes sympas, par exemple, dans Visual Basic.

Et sous leur direction, il a été mis en œuvre par une équipe d'étudiants. Au fil du temps, alors que d'autres dialectes ont commencé à apparaître, l'implémentation d'origine a commencé à être appelée Dartmouth BASIC.

BASIC a été conçu pour que les étudiants puissent écrire des programmes sans difficulté à l'aide de terminaux à temps partagé. Il était destiné à des utilisateurs plus "simples", non pas tant intéressés par la vitesse d'exécution des programmes, mais simplement par la capacité d'utiliser un ordinateur pour résoudre leurs problèmes sans formation particulière.

Le langage a été conçu selon les huit principes suivants. La nouvelle langue devait:

  1. être facile à utiliser pour les débutants;
  2. être un langage de programmation usage général;
  3. fournir une opportunité fonctionnalité d'extensiondisponible pour les programmeurs expérimentés;
  4. être interactif;
  5. fournir des messages d'erreur clairs;
  6. travailler rapidement sur de petits programmes;
  7. ne nécessitent pas une compréhension du fonctionnement du matériel;
  8. protéger l'utilisateur du système d'exploitation.

Le langage était basé en partie sur Fortran II et en partie sur Algol 60, avec des ajouts le rendant pratique pour le partage de temps et, plus tard, le traitement de texte et l'arithmétique matricielle. BASIC a été initialement implémenté sur le mainframe GE-265 avec prise en charge de plusieurs terminaux. Contrairement à la croyance populaire, au moment de sa création, c'était un langage compilé.

Croissance

Bien que le langage soit déjà utilisé sur plusieurs mini-ordinateurs, sa véritable diffusion a commencé avec son apparition sur le micro-ordinateur Altair 8800. De nombreux langages de programmation étaient trop volumineux pour tenir dans la petite mémoire que les utilisateurs de telles machines pouvaient se permettre. Pour les machines aussi lentes que la bande papier (plus tard une cassette audio) et sans éditeur de texte approprié, une langue aussi petite que BASIC était une excellente trouvaille.

Maturité

La période de la plus grande prospérité et de développement du BASIC original peut être considérée comme la fin des années 70 - la première moitié des années 80. Pendant cette période, presque tous les ordinateurs personnels avaient leur propre interpréteur BASIC, souvent câblé en ROM, qui, dans les ordinateurs les plus simples, remplissait souvent les fonctions d'un système d'exploitation. Pratiquement tous les ordinateurs les plus puissants avaient également des systèmes BASIC interactifs. De manière caractéristique, il n'y avait pratiquement pas compilateurs BASIC, la grande majorité des implémentations étaient un hybride standard d'un éditeur de ligne et d'un interpréteur. Le mécontentement face au primitivisme du BASIC d'origine a donné lieu à des tentatives d'amélioration des moyens de base du langage, ce qui a conduit à l'apparition dans certaines implémentations d'opérateurs de branchement complexes, de types supplémentaires de boucles, de procédures nommées avec paramètres.

Plusieurs nouvelles versions de BASIC ont été créées pour la plate-forme IBM PC. Microsoft a vendu BASIC pour MS-DOS / PC DOS, y compris BASICA, GW-BASIC (une modification BASICA qui ne nécessitait pas de micrologiciel IBM) et QuickBASIC. Borland, qui est à l'origine entré sur le marché avec son célèbre Turbo Pascal, a sorti Turbo Basic 1.0 basé sur le même environnement logiciel en 1985 (ses successeurs ont ensuite été vendus par une autre société sous le nom de PowerBASIC). Plusieurs autres langages ont utilisé la syntaxe BASIC bien connue comme base sur laquelle un système complètement différent a été construit (voir par exemple GRASS). La volonté d'augmenter les performances des programmes BASIC a conduit à l'émergence de compilateurs à part entière (comme le Turbo Basic susmentionné), ainsi que de systèmes «hybrides», dans lesquels, tout en maintenant l'interprétation comme principale méthode d'exécution du programme, une compilation partielle «à la volée» a été mise en œuvre, par exemple, compilation de boucles courtes. De plus, au moins sur la plateforme IBM, la pseudo-compilation de programmes BASIC s'est répandue, lorsque le traducteur a traduit le programme BASIC en pseudo-code (souvent réversible) et formé un programme exécutable à partir du module objet de l'interpréteur et un module codé avec le texte du programme. Un tel programme a fonctionné et exécuté comme un programme objet compilé normal, bien qu'il soit resté essentiellement interprété.

Au milieu des années 1980, BASIC est devenu le langage principal des modèles sophistiqués de calculatrices programmables, qui à ce moment-là avaient atteint la puissance d'un langage de haut niveau à part entière. Le fait même que de nombreux fabricants, sans dire un mot, aient choisi BASIC comme base des calculatrices JAVU, témoigne le mieux de la prévalence et de la popularité de cette langue au moment spécifié. Ainsi, BASIC a été intégré à la calculatrice soviétique "Electronics MK-85" et à tous ses modèles ultérieurs. L'utilisation de BASIC comme JLU principale des calculatrices programmables continue à ce jour; à l'heure actuelle, c'est le BASIC "calculatrice" qui ressemble le plus à la version originale des années 60-80, par exemple, l'implémentation des calculatrices CITIZEN ne contient que 14 mots-clés (sans compter les fonctions mathématiques) et n'autorise que les noms de variables à un caractère.

À la fin des années 80, les ordinateurs personnels étaient devenus beaucoup plus puissants et offraient des capacités (comme une interface utilisateur graphique) qui n'étaient plus aussi faciles à utiliser en BASIC. En outre, l'apparition sur les ordinateurs de la classe «éducative» et «domestique» de traducteurs bon marché de langages industriels (principalement Pascal et C), accompagnée d'environnements de programmation pratiques et de bibliothèques utiles (par exemple, Borland Pascal avec la bibliothèque Turbo Vision) a créé une forte concurrence pour BASIC. BASIC a commencé à perdre du terrain, malgré le fait qu'un grand nombre de ses versions étaient encore utilisées et vendues. Dans le même temps, un changement rapide de l'apparence des systèmes BASIC restés en service a commencé. Il y a eu une "dérive" graduelle vers des langages structuraux reconnus: le vocabulaire et l'ensemble des constructions du langage se sont élargis, des branches complexes, des routines et des fonctions nommées, des noms de variables longs sont apparus. De plus, les capacités accrues des ordinateurs personnels ont permis d'abandonner les caractéristiques du BASIC, introduit pour assurer un travail interactif efficace sur un terminal texte: étiquettes numériques pour chaque ligne et édition ligne par ligne.

La description

La syntaxe du langage ressemble à Fortran et de nombreux éléments en sont des emprunts explicites. La langue a été conçue pour l'enseignement, ses constructions sont donc aussi simples que possible. Comme pour les autres langages de programmation, les mots-clés sont tirés de de langue anglaise... Il existe deux principaux types de données: les chaînes et les nombres. Avec l'apparition de la version Visual Basic, ainsi que ses diverses modifications (telles que VBA), de nombreux autres types de données et ajouts typiques des langages de programmation modernes (par exemple, le modèle objet) sont apparus dans le langage. Les déclarations de variables ne nécessitent pas de section spéciale (contrairement à Pascal). La déclaration d'une variable est la première utilisation de celle-ci.

Les premières versions de BASIC (telles que BASICA, GW-BASIC) diffèrent considérablement des dialectes modernes et ne sont pratiquement pas utilisées aujourd'hui.

Premières versions

L'apparition des programmes dans les premières versions de BASIC était largement déterminée par le fait qu'il était destiné à un environnement de programmation avec un éditeur de texte basé sur des lignes. Dans un tel éditeur, l'utilisateur n'a pas eu la possibilité d'afficher tout le texte à l'écran (dans la fenêtre), de le parcourir dans n'importe quelle direction à l'aide du clavier et / ou de la souris. Dans les éditeurs de ligne, pour changer une ligne de texte, l'utilisateur doit donner la commande pour changer la ligne avec le numéro spécifié, puis entrer le nouveau texte de la ligne spécifiée. Pour insérer une nouvelle ligne, vous devez donner la commande d'insertion, en spécifiant à nouveau le numéro. Les lignes saisies sont affichées à l'écran de manière séquentielle (quels que soient les nombres). Pour voir les modifications apportées, la commande de sortie de texte est utilisée, qui sort les lignes dans le bon ordre (nombres croissants).

Tout cela s'est reflété dans BASIC. Chaque ligne commençait par un numéro. Lors de la saisie dans l'éditeur, la ligne apparaît dans le code source du programme à la position correspondant à son numéro. Pour insérer une nouvelle ligne, il était nécessaire d'ajouter une ligne avec un numéro qui se situait dans l'intervalle entre les numéros des deux autres lignes. Il était impossible de "déplacer" les lignes s'il était nécessaire d'insérer une nouvelle ligne entre les lignes avec des numéros adjacents, il était nécessaire de ressaisir ces lignes avec des numéros différents afin de fournir une coupure dans la numérotation (ou utiliser la commande spéciale RENUM, qui renumérotait toutes les lignes déjà entrées avec un pas constant, de manière synchrone changer toutes les commandes de transition). Pour simplifier l'édition en ligne du programme, la pratique s'est développée pour numéroter les lignes par incréments de 10 - cela a permis dans presque tous les cas d'insérer de nouvelles lignes sans changer les numéros précédemment saisis. Par exemple, pour ajouter une troisième ligne entre les lignes 20 et 30, vous deviez écrire la ligne 25. Une ligne typique d'un programme BASIC ressemblait à ceci:

10 IMPRIMER "Bonjour le Monde!"

Il n'était pas sûr de modifier manuellement les numéros de lignes existantes, car les numéros servaient d'étiquettes pour l'instruction GOTO. Auparavant, en BASIC, seules les étiquettes numériques pour cet opérateur étaient autorisées, et la présence dans chaque ligne numéro unique a permis de sauter inconditionnellement à l'un d'entre eux. Les étiquettes numériques et l'utilisation active des GOTO étaient inévitables lors de la programmation en BASIC, ce qui a contribué à une mauvaise structure de code et dans les grands projets a conduit à la confusion des auteurs eux-mêmes. Ils ont même inventé le terme de plaisanterie "code spagetti" parce que la logique d'un programme avec des sauts GOTO fréquents ressemble à une assiette de spaghettis.

La fin de la déclaration était la fin de la ligne. Pour placer plusieurs opérateurs sur une même ligne, vous devez mettre un signe deux-points entre eux (ce n'était pas autorisé dans toutes les implémentations de langage). Les noms de variables dans la plupart des dialectes ne pouvaient être constitués que d'une lettre, après quoi on pouvait ajouter un chiffre, ce qui n'améliorait pas non plus la compréhension du code. Pour créer une variable de type chaîne, vous deviez ajouter un signe dollar ($) après le nom. Une variable sans ce signe était numérique (virgule flottante). Il y avait plusieurs autres modificateurs liés au type numérique: signe de pourcentage (%) - type entier, point d'exclamation (!) - précision régulière, octotorp (#) - double précision (pour les données à virgule flottante, c'est-à-dire les fractions décimales). Dans certaines versions, les modificateurs numériques peuvent ne pas s'appliquer, ou pas tous. Dans la grande majorité des programmes, seul le type numérique de base a été utilisé

Les expressions sont similaires à la plupart des autres langages de programmation procédurale, mais dans les premières versions de Basic, leur ensemble était plutôt pauvre. Dans les premières versions, le nombre de mots clés n'atteignait même pas 20. Voici un ensemble de constructions de programmation de base et de commandes interactives qui ont été implémentées dans presque tous les systèmes BASIC de la fin des années 1970:

  • LISTE - Sortie sur le moniteur du texte du programme dans la séquence correcte de lignes. Selon l'implémentation, la commande prend en charge les paramètres - la plage de lignes à afficher. Parfois, l'option LLIST était prise en charge - sortie vers un périphérique d'impression.
  • RUN - Exécutez le programme actuel à partir de la première instruction de la ligne numérotée la plus petite. Le paramètre peut être pris en charge - le numéro de ligne à partir duquel démarrer l'exécution.
  • REM - Commentaire. Le texte après le mot-clé et jusqu'à la fin de la ligne n'affectait pas l'exécution du programme. De nombreux interprètes ont également soutenu le guillemet simple "comme début d'un commentaire".
  • INPUT "Prompt:", Variable - Sortie sur le moniteur le texte "Prompt:" et attendez que l'utilisateur entre une valeur et appuie sur Entrée. Après cela, la valeur saisie sera écrite dans la variable. Dans les implémentations les plus simples, l'invite à INPUT n'était pas prise en charge et devait être affichée dans un opérateur PRINT distinct (voir ci-dessous).
  • IMPRIMER "Texte"; Variable; Variable; "Texte" - Affichage des objets répertoriés séquentiellement (texte et valeurs de variable) sur le moniteur. Selon l'implémentation, les délimiteurs étaient perçus différemment: dans certains cas, le délimiteur conduisait à la sortie d'au moins un espace, dans d'autres, les valeurs étaient affichées sur une ligne et les délimiteurs devaient être ajoutés manuellement. Séparateur ";" a également effectué la fonction de suppression de la traduction à la ligne suivante.
  • CLS - Efface l'écran du terminal. Selon l'implémentation, la conception et le mode de fonctionnement du terminal, le curseur de texte a été déplacé soit vers le coin supérieur gauche, soit vers le coin inférieur gauche.
  • LET - Affectation (format "LET Variable \u003d Value"). Dans la grande majorité des versions, l'opérateur LET était pris en charge, mais était facultatif - affectations valeurs variables enregistré sans LET).
  • DIM - Description de la matrice. Contrairement aux variables régulières, les tableaux nécessitaient une description. Le nombre maximum de dimensions d'un tableau était déterminé uniquement par l'implémentation
  • DATA - Un ensemble de données placé directement dans le texte du programme (analogique d'un tableau constant ou constant).
  • READ - Commande de lecture de l'ensemble de données.
  • GOTO Lbl - Commande de saut inconditionnel vers l'étiquette Lbl.
  • ON… GOTO - Commande de branche calculée - après ON, il devrait y avoir une expression ou une variable calculée, et après GOTO - un ensemble d'étiquettes séparées par des virgules. La valeur de l'expression indiquait le numéro de l'étiquette vers laquelle passer.
  • SI… ALORS… - L'opérateur de branchement habituel. Après IF, une condition logique est placée, après THEN - un opérateur qui doit être exécuté si cette condition est vraie. Pour raccourcir la notation, de nombreuses implémentations ont supporté la convention - si THEN est suivi d'un nombre, alors c'est l'étiquette vers laquelle aller, c'est-à-dire que la forme "IF ... THEN 150" équivaut à "IF ... THEN GOTO 150". Les formulaires "IF ... GOTO ..." peuvent également être pris en charge
  • Variable de boucle FOR \u003d StartValue TO EndValue STEP Step - En-tête de la boucle avec step. Lance une boucle dans laquelle la variable passe séquentiellement à travers une série de valeurs de StartValue à EndValue par incréments de Step. Le corps de la boucle est délimité par le titre et le mot-clé NEXT. La partie STEP pourrait être omise - dans ce cas, l'étape était est égal à un... Lorsque le LoopVariable dépasse les limites spécifiées, il se branche au-delà de l'instruction NEXT correspondante.
  • SUIVANT - Achèvement du corps de la boucle avec une étape. L'opérateur indique qu'il faut aller au titre de l'exécutable courant boucle FOR et continuez à travailler. Dans les implémentations plus avancées, NEXT pouvait contenir une liste de variables de boucle séparées par des virgules, ce qui signifiait qu'à un point donné du programme, le corps de non pas une, mais plusieurs boucles se terminait. L'utilisation de NEXT avec une variable assurait également contre la violation de la logique du programme, car elle provoquait une erreur d'exécution si, lors de l'exécution de cette commande, il s'avérait que la boucle était active sur une variable différente dont le nom était spécifié.
  • Condition WHILE - En-tête de la boucle avec une condition préalable. La boucle s'est terminée si la condition était fausse. Dans ce cas, l'instruction WEND correspondant à l'en-tête a été sautée.
  • WEND - Achèvement du corps de la boucle WHILE. Analogue NEXT mais pour une boucle avec une condition préalable.
  • GOSUB Label - Accédez à un sous-programme commençant par Label. Le retour se produit lorsque l'instruction RETURN est atteinte. Les appels de procédure récursifs étaient généralement interdits et entraînaient une erreur d'exécution.
  • RETURN - Instruction de retour de sous-programme. Un saut inconditionnel est effectué vers l'instruction suivant la commande GOSUB qui a accédé au sous-programme.
  • END - Fin de l'exécution du programme. Le système quitte l'interpréteur et l'utilisateur est invité à entrer des commandes.
  • CHAIN \u200b\u200b- Chargez une gamme de lignes de programme à partir d'un support externe.
  • OPEN - Ouvre un fichier de données sur un support externe.
  • CLOSE - Fermeture du fichier de données sur un support externe.
  • GET - Lecture séquentielle des valeurs des variables spécifiées à partir du fichier, en déplaçant le pointeur de fichier au-delà du dernier caractère lu.
  • PUT - Écriture séquentielle des valeurs des variables spécifiées dans un fichier, en déplaçant le pointeur de fichier au-delà du dernier caractère écrit.
  • DELETE - Commande du mode interactif - suppression de la ligne avec le numéro spécifié.
  • SAVE - Commande de mode interactif - sauvegarde du programme actuel dans un fichier sur un support externe.
  • LOAD - Commande de mode interactif - chargement du programme en mémoire à partir d'un fichier sur un support externe. En règle générale, par défaut, cela a conduit à la destruction du programme et des données précédemment chargés.
  • RENUM - Commande de mode interactif - renuméroter tout ou une plage spécifiée de lignes de programme à partir d'un nombre spécifié avec une étape spécifiée. Par défaut, toutes les lignes de programme sont renumérotées par incréments de 10.

L'opérateur conditionnel (IF..THEN) n'avait initialement qu'une seule branche - la branche ELSE y était absente et a été modélisée en utilisant un saut inconditionnel. Ainsi, dans le programme suivant, une opération élémentaire est effectuée - saisie d'un nombre et affichage du message "Nombre négatif" ou "Nombre positif ou zéro" en fonction de sa valeur:

10 INPUT I 20 IF I\u003e \u003d 0 THEN PRINT "Nombre positif ou nul": GOTO 40 30 PRINT "Nombre négatif" 40 END

Il y avait un opérateur de saut sur une étiquette calculée ON..GOTO (hérité d'une construction Fortran similaire) - dedans, après ON, une expression numérique était indiquée, et après GOTO, une liste de numéros de ligne. La transition s'est produite vers la ligne, dont le numéro dans la liste correspondait à la valeur de l'expression. Il existe également des boucles (une boucle avec un compteur FOR et une boucle avec une précondition WHILE).

L'utilisation de fonctions définies par l'utilisateur (sections de code à usage répété) était possible de deux manières: des fonctions définies et des sous-programmes.

Les sous-programmes n'étaient pas analogues aux fonctions dans des langages tels que C ou Pascal, car ils n'avaient pas de nom et ne pouvaient pas accepter et / ou renvoyer des paramètres. Les paramètres et les résultats ont été transmis via des variables globales (toutes les variables des premières versions de BASIC étaient globales). Les sous-programmes étaient généralement écrits à la fin d'un module, avec une numérotation évidemment supérieure au nombre de lignes prévu (par exemple, la numérotation d'un bloc de sous-programmes pouvait commencer à 5000, même si le programme comportait quelques centaines de lignes). Les sous-programmes n'avaient ni en-têtes ni noms et n'étaient pas différents des autres morceaux de code. Le sous-programme a été appelé à l'aide du mot-clé GOSUB<метка> ... Il s'agit pratiquement d'un clone GOTO, sauf pour une chose: le retour au point d'appel s'est produit automatiquement lorsque le mot-clé RETURN a été atteint dans le sous-programme. GOSUB, comme GOTO, ne contribuait qu'à une structure de code médiocre, car il était difficile de retracer l'exécution d'un programme contenant un grand nombre de branches et de sous-programmes inconditionnels. La récursivité n'était pas autorisée.

L'incapacité à nommer les sous-programmes (et à en passer le contrôle), l'impossibilité de passer des paramètres, le manque de variables locales, l'utilisation d'étiquettes numériques uniquement dans les grands projets ont semé la confusion dans le code et rendu le débogage très difficile.

Dans certains dialectes de BASIC, il était possible de charger un fichier avec un code directement lors de l'exécution du programme (celui en cours était déchargé) en utilisant l'opérateur CHAIN. C'était l'une des fonctionnalités les plus utiles du langage, car elle vous permettait de diviser un grand projet en modules, en les appelant au besoin.

Critique

À son apogée (1970-1980), BASIC a été fortement critiqué. En plus de signaler les lacunes évidentes du langage associées à la pauvreté syntaxique des premières versions et au manque de nombreux constructs et mécanismes reconnus et pratiques, BASIC a été critiqué pour le fait que sa simplicité et son absence de structure encourage l'utilisation de méthodes de développement défectueuses et contribue au développement d'habitudes de programmation dangereuses qui peuvent parfois être appropriées lorsque créer rapidement de petits programmes pour les besoins actuels, mais peut conduire à l'effondrement de grands projets.

La formation de base omniprésente à la programmation basée sur BASIC a été vivement critiquée. L'une des «cartes de visite» d'Edsger Dijkstra était la déclaration:

Il est presque impossible d'enseigner une bonne programmation aux étudiants qui ont déjà étudié le niveau de base. En tant que programmeurs potentiels, ils sont mentalement paralysés sans espoir de guérison.

Texte original (Anglais)

Il est pratiquement impossible d'enseigner une bonne programmation à des étudiants qui ont déjà été exposés au BASIC: en tant que programmeurs potentiels, ils sont mutilés mentalement au-delà de tout espoir de régénération.

En réponse aux critiques, les adhérents de BASIC notent que les critiques attribuent des aspects négatifs au langage qui devrait être attribué à son utilisation abusive. Les inconvénients de BASIC (si nous parlons des premiers dialectes) se manifestent lorsque l'on tente de développer professionnellement des programmes complexes et volumineux dessus et que l'on l'utilise comme langage de base pour enseigner aux programmeurs, mais ce langage n'était destiné à aucune de ces applications; sa tâche principale était de fournir aux étudiants non-programmeurs opportunité après le minimum apprendre à écrire de façon autonome protozoaires programmes pour ses propres besoinsafin de ne pas distraire les spécialistes de ce travail. La langue est tout à fait cohérente avec cette tâche.

Si nous parlons de dialectes modernes et d'implémentations de BASIC, alors ils sont allés si loin de la forme originale de la langue que tout ce qui précède peut difficilement être considéré comme lié à eux. Les dialectes modernes de BASIC sont des langages assez structurés, ils sont comparables en capacités avec des langages tels que C, Pascal, etc.

Fabricants

À différentes époques, les interprètes BASIC ont été produits par diverses organisations, entreprises, cabinets:

Soviétique:

  • Université de Vilnius - Vilnius
  • Centre de calcul SB AS URSS - Novosibirsk
  • Université d'État Lobachevsky de Nizhny Novgorod - Nizhny Novgorod

la mise en oeuvre

  • Visual Basic (VBA, VBS, .NET)
  • Rapid-Q de base

Rédiger un avis sur l'article "Basique"

Remarques

Littérature

  • Dyakonov V., Munerman V., Samoylova T., Yemelchenkov Ye. Le guide révolutionnaire de QBASIC. - Birmingham: Wrox Press Ltd, 1996, 578 p.
  • Dyakonov V.P. Ouvrage de référence sur les algorithmes et programmes en langage BASIC pour les ordinateurs personnels. - M .: Nauka, Fizmatlit, 1987 .-- 240 p.
  • Dyakonov V.P. L'utilisation d'ordinateurs personnels et la programmation en langage BASIC. - M .: Radio et communication, 1989 .-- 288 p.
  • Dyakonov V.P. Microcalculateurs étrangers modernes. - M .: SOLON-R, 2002 .-- 400 p.
Normes
  • ANSI X3.60-1978 "POUR MINIMAL BASIC"
  • ISO / CEI 6373: 1984 "TRAITEMENT DES DONNÉES - LANGUES DE PROGRAMMATION - BASE MINIMALE"
  • ANSI X3.113-1987 "PROGRAMMATION DES LANGUES FULL BASIC"
  • GOST 27787-88 "BASIC Programming Language" (inclut la norme ISO 6373: 1984)
  • ANSI X3.113 INTERPRETATIONS-1992 "BULLETIN D'INFORMATIONS TECHNIQUES DE BASE # 1 INTERPRETATIONS DE L'ANSI 03.113-1987"

Liens

  • Andrey Kolesov. Version de l'auteur. avec des révisions littéraires mineures dans la revue "Science and Life" n ° 10/2000, p. 18-20.
  • Dartmouth College Preprint 1 octobre 1964.
  • Thomas E. Kurtz. , 1977.
  • (Anglais)

Extrait BASIQUE

Si étrangement soudain pour Natasha, sa voix douce, douce et émouvante parut.
- Ne parlons pas, mon ami, je vais tout lui dire; mais une chose que je vous demande - considérez-moi comme votre ami, et si vous avez besoin d'aide, de conseils, vous avez juste besoin de verser votre âme à quelqu'un - pas maintenant, mais quand cela devient clair dans votre âme - souvenez-vous de moi. Il lui prit et lui baisa la main. - Je serai heureux si je peux ... - Pierre était gêné.
- Ne me parle pas comme ça: je n'en vaux pas la peine! Natasha a crié et a voulu quitter la pièce, mais Pierre lui a tenu la main. Il savait qu'il avait besoin de quelque chose d'autre à lui dire. Mais quand il a dit cela, il a été surpris de ses propres paroles.
«Arrêtez, arrêtez, toute votre vie vous attend,» lui dit-il.
- Pour moi? Ne pas! Tout est parti pour moi », dit-elle avec honte et auto-humiliation.
- Tout est perdu? Il a répété. - Si je n'étais pas moi, mais la plus belle, la plus intelligente et la plus meilleure personne dans le monde, et serais libre, je serais à genoux cette minute pour ta main et ton amour.
Pour la première fois après plusieurs jours, Natasha pleura avec des larmes de gratitude et d'affection et, regardant Pierre, quitta la pièce.
Pierre, lui aussi, faillit courir après elle dans le couloir, retenant des larmes d'émotion et de bonheur qui lui pressaient la gorge, sans tomber dans ses manches, enfila un manteau de fourrure et s'assit dans le traîneau.
- Maintenant, où allez-vous commander? Demanda le cocher.
"Où? Se demanda Pierre. Où pouvez-vous aller maintenant? Est-ce au club ou aux invités? " Tout le monde semblait si pitoyable, si pauvre en comparaison des sentiments de tendresse et d'amour qu'il éprouvait; en comparaison avec le regard adouci et reconnaissant qu'elle lui jeta pour la dernière fois à cause de ses larmes.
- À la maison, dit Pierre, malgré dix degrés de gel, ouvrant un manteau de fourrure d'ours sur sa large poitrine respirant joyeusement.
C'était glacial et clair. Un ciel sombre et étoilé se dressait sur les rues sales et à moitié sombres, sur les toits noirs. Pierre, regardant juste le ciel, ne sentait pas la bassesse insultante de tout ce qui était terrestre en comparaison de la hauteur à laquelle se trouvait son âme. A l'entrée de la place de l'Arbat, un immense espace de ciel étoilé s'est ouvert aux yeux de Pierre. Presque au milieu de ce ciel au-dessus du boulevard Prechistensky, entouré, parsemé d'étoiles de tous côtés, mais différent de tout le monde par sa proximité avec la terre, une lumière blanche et une longue queue retournée, se tenait une énorme comète brillante de 1812, la même comète qui présageait, comme ils l'ont dit, toutes sortes d'horreurs et la fin du monde. Mais chez Pierre, cette étoile brillante à la longue queue rayonnante n'a suscité aucune sensation terrible. En face, Pierre regardait joyeusement, les yeux humides de larmes, cette étoile brillante, qui, comme si, à une vitesse inexprimable volant des espaces incommensurables le long d'une ligne parabolique, soudain, comme une flèche perçant le sol, claqua à un endroit qu'elle avait choisi, dans le ciel noir, et s'arrêta, sa queue se souleva énergiquement, brillant et jouant avec sa lumière blanche entre d'innombrables autres étoiles scintillantes. Il semblait à Pierre que cette étoile correspondait pleinement à ce qu'il y avait dans son âme, qui s'épanouissait dans une nouvelle vie, adoucie et encouragée.

À partir de la fin de 1811, l'armement intensifié et la concentration des forces de l'Europe occidentale ont commencé, et en 1812, ces forces - des millions de personnes (y compris celles qui ont transporté et nourri l'armée) se sont déplacées d'Ouest en Est, aux frontières de la Russie, où de la même manière depuis 1811 l'année où les forces russes ont été rassemblées. Le 12 juin, les forces de l'Europe occidentale ont traversé les frontières de la Russie et une guerre a éclaté, c'est-à-dire un événement contraire à la raison humaine et à toute la nature humaine. Des millions de personnes ont commis, les unes contre les autres, un nombre incalculable d'atrocités, de tromperies, de trahisons, de vols, de contrefaçons et l'émission de faux billets, de vols, d'incendies criminels et de meurtres, qui pendant des siècles ne seront pas recueillis par la chronique de tous les tribunaux du monde et pour lesquels, pendant cette période, les gens ceux qui les ont commis ne les considéraient pas comme des crimes.
Qu'est-ce qui a causé cet événement extraordinaire? Quelles en étaient les raisons? Les historiens disent avec une confiance naïve que les raisons de cet événement étaient l'insulte infligée au duc d'Oldenbourg, le non-respect du système continental, la soif de pouvoir de Napoléon, la fermeté d'Alexandre, les erreurs diplomatiques, etc.
Par conséquent, il n'a fallu qu'à Metternich, Rumyantsev ou Talleyrand, entre la sortie et la réception, s'efforcer d'écrire un morceau de papier plus recherché ou à Napoléon d'écrire à Alexandre: Monsieur mon frère, je consens a rendre le duche au duc d'Oldenbourg, [Mon cher frère, je suis d'accord rendre le duché au duc d'Oldenbourg.] - et il n'y aurait pas de guerre.
Il est clair que c'était ainsi que les choses semblaient être aux contemporains. Il est clair qu'il semblait à Napoléon que la cause de la guerre était les intrigues de l'Angleterre (comme il le disait sur l'île de Sainte-Hélène); il est clair qu'il semblait aux membres de la Chambre d'Angleterre que la cause de la guerre était la soif de pouvoir de Napoléon; qu'il semblait au prince d'Oldenbourg que la cause de la guerre était la violence commise contre lui; que les marchands pensaient que la cause de la guerre était le système continental qui ravageait l'Europe, que les anciens soldats et généraux estimaient que la raison principale était la nécessité de les utiliser dans les affaires; les légitimistes de l'époque qu'il fallait restaurer les bons principes, et les diplomates de l'époque que tout se passait parce que l'alliance de la Russie avec l'Autriche en 1809 n'était pas habilement cachée à Napoléon et que le mémorandum était maladroitement rédigé pour N ° 178. Il est clair que ces raisons, et encore une infinité de raisons, dont le nombre dépend des innombrables différences de points de vue, ont paru aux contemporains; mais pour nous, descendants, contemplant dans toute sa portée l'énormité de l'événement qui s'est produit et plongeant dans sa signification simple et terrible, ces raisons semblent insuffisantes. Il nous est incompréhensible que des millions de chrétiens se soient tués et torturés les uns les autres, parce que Napoléon avait faim de pouvoir, Alexandre était ferme, la politique de l'Angleterre était rusée et le duc d'Oldenbourg était offensé. Il est impossible de comprendre quel rapport ces circonstances ont avec le fait même du meurtre et de la violence; pourquoi, en raison du fait que le duc a été offensé, des milliers de personnes de l'autre bout de l'Europe ont tué et ruiné les habitants des provinces de Smolensk et de Moscou et ont été tués par eux.
Pour nous, les descendants, non pas les historiens, non emportés par le processus de recherche et donc avec un bon sens immaculé contemplant l'événement, ses causes sont présentées en quantité innombrable. Plus nous nous penchons sur la recherche des raisons, plus elles s'ouvrent à nous, et chaque raison prise ou toute une série de raisons nous semble également juste en elles-mêmes, et également fausse dans leur insignifiance par rapport à l'énormité de l'événement, et également fausse dans leur invalidité ( sans la participation de toutes les autres raisons concomitantes) pour produire l'événement qui s'est produit. La même raison que le refus de Napoléon de retirer ses troupes à travers la Vistule et de rendre le duché d'Oldenbourg, nous semble le désir ou la réticence du premier caporal français à entrer en service secondaire: car s'il ne voulait pas entrer en service et n'en voudrait pas un autre, le troisième et le millième caporal et soldats, donc moins de gens auraient été dans l'armée de Napoléon, et il n'aurait pas pu y avoir de guerre.
Si Napoléon n'avait pas été offensé par la demande de se retirer au-delà de la Vistule et n'avait pas ordonné aux troupes d'avancer, il n'y aurait pas eu de guerre; mais si tous les sergents ne voulaient pas entrer en service secondaire, il ne pouvait pas non plus y avoir de guerre. De plus, il ne pourrait y avoir de guerre, s'il n'y avait pas d'intrigues de l'Angleterre, et il n'y aurait pas de prince d'Oldenbourg et un sentiment d'insulte en Alexandre, et il n'y aurait pas de pouvoir autocratique en Russie, et il n'y aurait pas de révolution française et la dictature et l'empire qui s'ensuivraient, et tout cela. qui a produit la Révolution française, et ainsi de suite. Sans l'une de ces raisons, rien n'aurait pu arriver. Par conséquent, toutes ces raisons - des milliards de raisons - ont coïncidé pour produire ce qui était. Et, par conséquent, rien n'était la cause exclusive de l'événement, et l'événement n'aurait dû se produire que parce qu'il devait arriver. Des millions de personnes, ayant renoncé à leurs sentiments humains et à leur raison, ont dû se rendre à l'Est depuis l'Ouest et tuer les siens, tout comme il y a quelques siècles des foules de gens allaient d'Est en Ouest, tuant les leurs.
Les actions de Napoléon et d'Alexandre, dont les paroles dépendaient, semble-t-il, que l'événement se produise ou non, étaient tout aussi peu arbitraires que les actions de chaque soldat qui faisait campagne par tirage au sort ou par recrutement. Il ne pouvait en être autrement, car pour que s'accomplisse la volonté de Napoléon et d'Alexandre (ces personnes dont l'événement semblait dépendre), la coïncidence d'innombrables circonstances était nécessaire, sans lesquelles l'événement n'aurait pas pu se produire. Il fallait que des millions de personnes, entre les mains desquelles il y avait un vrai pouvoir, les soldats qui tiraient, portaient des provisions et des fusils, il fallait qu'ils acceptent d'accomplir cette volonté de gens isolés et faibles et y soient conduits par d'innombrables raisons complexes et variées.
Le fatalisme dans l'histoire est inévitable pour expliquer les phénomènes déraisonnables (c'est-à-dire ceux dont nous ne comprenons pas la rationalité). Plus nous essayons d'expliquer rationnellement ces phénomènes dans l'histoire, plus ils deviennent déraisonnables et incompréhensibles pour nous.
Chacun vit pour lui-même, utilise la liberté pour atteindre ses objectifs personnels et sent de tout son être qu'il peut maintenant faire ou non une telle action; mais dès qu'il le fait, cette action, effectuée à un certain moment dans le temps, devient irréversible et devient la propriété de l'histoire, dans laquelle elle n'a pas une signification libre, mais prédéterminée.
Il y a deux facettes de la vie chez chaque personne: la vie personnelle, qui est d'autant plus libre, les intérêts les plus abstraits, et la vie spontanée, grouillante, où une personne remplit inévitablement les lois qui lui sont prescrites.
Une personne vit consciemment pour elle-même, mais sert d'instrument inconscient pour atteindre des objectifs humains historiques et universels. Un acte parfait est irréversible et son action, coïncidant dans le temps avec des millions d'actions d'autrui, acquiert une signification historique. Plus une personne est élevée sur l'échelle sociale, plus il y a de personnes avec lesquelles elle est connectée, plus elle a de pouvoir sur les autres, plus la prédétermination et l'inévitabilité de chacune de ses actions sont évidentes.
"Le cœur du Tsarevo est entre les mains de Dieu."
Le roi est esclave de l'histoire.
L'histoire, c'est-à-dire la vie inconsciente, commune et grouillante de l'humanité, utilise chaque minute de la vie des rois pour elle-même comme un instrument à ses propres fins.
Napoléon, malgré le fait que plus que jamais, maintenant, en 1812, il semblait que verser ou ne pas verser le sang de ses peuples [verser ou ne pas verser le sang de ses peuples] dépendait de lui (comme dans la dernière lettre que je lui ai écrite Alexander), jamais plus que maintenant n'a été soumis à ces lois inévitables qui l'ont forcé (agissant par rapport à lui-même, comme il lui semblait, à sa discrétion) à faire pour la cause commune, pour l'histoire, ce qui aurait dû arriver.
Les Occidentaux se sont déplacés vers l'Est pour s'entre-tuer. Et selon la loi de la coïncidence des raisons, des milliers de petites raisons à ce mouvement et à la guerre coïncidaient avec cet événement: les reproches de non-respect du système continental, et du duc d'Oldenbourg, et le déplacement des troupes vers la Prusse, entrepris (comme il semblait à Napoléon) dans le seul but de pour parvenir à une paix armée, et l'amour et l'habitude de l'empereur français pour la guerre, coïncidant avec la disposition de son peuple, la fascination pour la grandeur des préparatifs et les coûts de préparation, et la nécessité d'acquérir de tels avantages qui couvriraient ces coûts, et des honneurs enivrants à Dresde et des négociations diplomatiques, qui, selon l'opinion des contemporains, étaient animés d'un désir sincère de parvenir à la paix et qui ne faisait que blesser l'orgueil de l'un et de l'autre, et des millions de millions d'autres raisons, contrefaisant un événement qui allait se produire, coïncidant avec lui.
Quand la pomme est mûre et tombe, pourquoi tombe-t-elle? Est-ce parce qu'il gravite vers le sol, parce que la verge sèche, parce qu'elle sèche par le soleil, parce qu'elle devient lourde, parce que le vent la secoue, parce que le garçon qui se tient en dessous veut la manger?
Rien n'est la raison. Tout cela n'est qu'une coïncidence des conditions dans lesquelles chaque événement vital, organique et élémentaire a lieu. Et le botaniste qui trouve que la pomme tombe parce que la fibre se décompose et ainsi de suite sera tout aussi juste et tout aussi faux que l'enfant debout en dessous qui dit que la pomme est tombée parce qu'il voulait manger lui et qu'il a prié à ce sujet. Tout aussi vrai et faux sera celui qui dit que Napoléon est allé à Moscou parce qu'il le voulait, et parce qu'il est mort, parce qu'Alexandre voulait sa mort: combien le bien et le mal sera celui qui dit que celui qui est tombé en un million la montagne qui a été creusée est tombée parce que le dernier ouvrier l'a frappée une dernière fois avec une pioche. Dans les événements historiques, les soi-disant grands personnages sont des étiquettes qui donnent des noms à l'événement, qui, comme les étiquettes, ont le moins de lien avec l'événement lui-même.
Chacune de leurs actions, qui leur paraît arbitraire pour elles-mêmes, est au sens historique involontaire, mais se rapporte à tout le cours de l'histoire et est déterminée éternellement.

Le 29 mai, Napoléon quitte Dresde, où il séjourne trois semaines, entouré d'une cour composée de princes, de ducs, de rois et même d'un empereur. Avant de partir, Napoléon a gentiment traité les princes, les rois et l'empereur qui le méritaient, grondait les rois et les princes dont il n'était pas complètement satisfait, offrait le sien, c'est-à-dire pris à d'autres rois, perles et diamants à l'impératrice d'Autriche et, embrassant tendrement l'impératrice Marie-Louise, comme le dit son historien, il l'a laissée avec une séparation douloureuse, qu'elle - cette Marie Louise, qui était considérée comme sa femme, malgré le fait qu'une autre femme soit restée à Paris - semblait incapable de la supporter. Malgré le fait que les diplomates croyaient toujours fermement à la possibilité de la paix et travaillaient avec diligence à cet objectif, malgré le fait que l'empereur Napoléon lui-même ait écrit une lettre à l'empereur Alexandre, l'appelant Monsieur mon frère [frère souverain] et assurant sincèrement qu'il ne voulait pas la guerre et qu'il l'aimerait et le respecterait toujours - il est monté à l'armée et a donné de nouveaux ordres à chaque station, dans le but de précipiter l'armée d'ouest en est. Il montait dans une voiture de route tirée par un six, entouré de pages, d'adjudants et d'une escorte, le long de la route de Posen, Thorn, Danzig et Konigsberg. Dans chacune de ces villes, des milliers de personnes l'ont accueilli avec appréhension et joie.
L'armée se déplaçait d'ouest en est et des engrenages variables l'y portaient. Le 10 juin, il dépasse l'armée et passe la nuit dans la forêt de Vilkovis, dans un appartement préparé pour lui, sur le domaine d'un comte polonais.
Le lendemain, Napoléon, ayant rattrapé l'armée, monta au Niémen en calèche et, pour inspecter la zone du passage, se revêtit d'un uniforme polonais et descendit à terre.
Voir de l'autre côté les Cosaques (les Cosaques) et les steppes étendues (les Steppes), au milieu desquelles se trouvait Moscou la ville sainte, [Moscou, la ville sainte,] la capitale de cet État scythe similaire, où se rendit Alexandre le Grand, pour tout le monde, et contrairement aux considérations à la fois stratégiques et diplomatiques, il ordonna une offensive, et le lendemain, ses troupes commencèrent à traverser le Neman.
Le 12, tôt le matin, il quitta la tente qui avait été dressée ce jour-là sur la rive gauche escarpée des Nemunas, et regarda à travers le télescope les ruisseaux de ses troupes flottant hors de la forêt de Vilkovis, débordant de trois ponts construits sur le Neman. Les troupes savaient la présence de l'empereur, le cherchaient des yeux, et quand elles trouvèrent sur la montagne devant la tente une silhouette en redingote et un chapeau qui s'était séparée de sa suite, elles jetèrent leur casquette, crièrent: "Vive l" Empereur! [Vive l'empereur!] - et une pour d'autres, sans épuisement, coulaient, tout coulait de l'immense forêt qui les cachait jusque-là et, frustré, traversait trois ponts de l'autre côté.
- On fera du chemin cette fois ci. Oh! quand il s "en mele lui meme ca chauffe ... Nom de Dieu ... Le voila! .. Vive l" Empereur! Les voila donc les Steppes de l "Asie! Vilain pays tout de meme. Au revoir, Beauche; je te réserve le plus beau palais de Moscou. Au revoir! Bonne chance ... L" as tu vu, l "Empereur? Vive l" Empereur! .. preur! Si on me fait gouverneur aux Indes, Gerard, je te fais ministre du Cachemire, c "est arrete. Vive l" Empereur! Vive! vive! vive! Les gredins de Cosaques, comme ils filent. Vive l "Empereur! Le voila! Le vois tu? Je l" ai vu deux fois comme jete vois. Le petit caporal ... Je l "ai vu donner la croix al" un des vieux ... Vive l "Empereur! .. [Maintenant allons-y! Oh, comment il va le prendre lui-même, la matière va bouillir. Par Dieu ... Le voici ... Hourra, empereur! Alors les voici, les steppes asiatiques ... Mais un pays méchant. Au revoir, Boche. Je te laisse le meilleur palais de Moscou. Au revoir, je te souhaite du succès. Avez-vous vu l'empereur? Hourra! Si je suis nommé gouverneur de l'Inde, je ferai de vous le ministre du Cachemire ... Hourra! Empereur Le voici! Vous le voyez? Je l'ai vu deux fois comme vous. Petit caporal ... J'ai vu comment il a accroché une croix à l'un des vieillards ... Hourra, empereur!] - parlaient les voix des vieux et des jeunes, des personnages et des positions les plus divers de la société. tous les visages de ces gens avaient une expression commune de joie au début de la marche tant attendue et de joie et de dévotion à l'homme en redingote grise, debout sur la montagne.
Le 13 juin, Napoléon reçut un petit cheval pur-sang arabe, et il s'assit et monta au galop jusqu'à l'un des ponts à travers le Niémen, sans cesse assourdi par des cris enthousiastes, qu'il ne supportait apparemment que parce qu'il était impossible de les empêcher d'exprimer leur amour pour lui avec ces cris; mais ces cris, qui l'accompagnaient partout, l'alourdissaient et le distrayaient de l'inquiétude militaire qui l'avait saisi depuis son entrée dans l'armée. Il franchit l'un des ponts en balançant sur des bateaux de l'autre côté, tourna brusquement à gauche et galopa vers Kovno, précédé par les gardes enthousiastes des gardes à cheval, qui gelaient de bonheur, ouvrant la voie aux troupes galopant devant lui. Ayant approché la large rivière Viliya, il s'arrêta à côté du régiment polonais Uhlan, qui se tenait sur la rive.
- Vivat! - les Polonais ont également crié avec enthousiasme, bouleversant le front et s'écrasant pour le voir. Napoléon examina la rivière, descendit de son cheval et s'assit sur une bûche posée sur la berge. Sur un signe muet, une trompette lui fut remise, il la posa au dos d'une page heureuse qui accourut et se mit à regarder de l'autre côté. Puis il est allé en profondeur dans l'examen d'une feuille de carte étalée entre les journaux. Sans lever la tête, il dit quelque chose, et deux de ses adjudants galopent vers les lanciers polonais.
- Quelle? Qu'a t'il dit? - entendu dans les rangs des lanciers polonais, lorsqu'un adjudant accourut au galop vers eux.
Il fut ordonné, ayant trouvé un gué, de passer de l'autre côté. Le colonel polonais Uhlan, beau vieillard, rougi et confus de paroles d'excitation, demanda à l'adjudant s'il serait autorisé à traverser la rivière avec ses lanciers sans chercher un gué. Lui, avec une peur évidente du refus, comme un garçon demandant la permission de monter à cheval, a demandé à être autorisé à traverser la rivière aux yeux de l'empereur. L'adjudant a dit que probablement l'empereur ne serait pas mécontent de ce zèle excessif.
Dès que l'adjudant eut dit cela, un vieil officier moustachu au visage joyeux et aux yeux brillants, levant son épée, cria: «Vivat! - et, ordonnant aux uhlans de le suivre, donna les éperons du cheval et galopa vers la rivière. Il poussa avec colère le cheval qui était tombé sous lui et plongea dans l'eau, se dirigeant vers l'intérieur des terres vers la rapidité du courant. Des centaines de lanciers galopaient après lui. Il faisait froid et inquiétant au milieu et dans la rapidité du courant. Les lanciers se sont accrochés les uns aux autres, sont tombés de leurs chevaux, certains chevaux se sont noyés, des gens se sont noyés, d'autres ont essayé de nager, certains sur la selle, certains se tenant à la crinière. Ils ont essayé de nager de l'autre côté et, malgré le fait qu'il y avait une traversée d'un demi-mile, ils étaient fiers de nager et de se noyer dans cette rivière sous le regard d'un homme assis sur une bûche et ne regardant même pas ce qu'ils faisaient. Lorsque l'adjudant de retour, choisissant un moment opportun, se permit d'attirer l'attention de l'empereur sur le dévouement des Polonais à sa personne, le petit homme en redingote grise se leva et, appelant Berthier, se mit à marcher avec lui le long de la côte, lui donnant des ordres et parfois en jetant un regard mécontent. sur les lanciers noyés qui ont retenu son attention.
Pour lui, ce n'était pas nouveau dans la conviction que sa présence à tous les bouts du monde, de l'Afrique aux steppes de la Moscovie, frappe et plonge également les gens dans une folie d'oubli de soi. Il a ordonné de s'apporter un cheval et s'est rendu à son parking.
Quarante lanciers se sont noyés dans la rivière, malgré les bateaux envoyés au secours. La plupart d'entre eux sont retournés à cette banque. Le colonel et plusieurs personnes traversèrent la rivière à la nage et montèrent difficilement de l'autre côté. Mais dès qu'ils sont sortis dans une robe mouillée éclaboussée sur eux, coulant le long des ruisseaux, ils ont crié: «Vivat!», Regardant avec enthousiasme l'endroit où se tenait Napoléon, mais où il n'était plus là, et à ce moment-là se considéraient heureux.
Dans la soirée, Napoléon, entre deux ordres - l'un pour livrer les faux billets russes préparés dès que possible pour l'importation en Russie, et l'autre pour tirer sur le Saxon, dans la lettre interceptée des informations sur les commandes de l'armée française, il passa une troisième commande - sur le compte du colonel polonais, qui se jeta inutilement dans le fleuve, à la cohorte d'honneur (Légion d'honneur), dont Napoléon était à la tête.
Qnos vult perdere - dementat. [Quiconque veut détruire - il le privera de raison (lat.)]

L'empereur russe, quant à lui, vivait déjà à Vilna depuis plus d'un mois, effectuant des revues et des manœuvres. Rien n'était prêt pour la guerre à laquelle tout le monde attendait et pour la préparation pour laquelle l'empereur était venu de Pétersbourg. Il n’y avait pas de plan d’action général. L'hésitation quant à savoir lequel des plans proposés devrait être adopté ne s'intensifia qu'après le séjour d'un mois de l'empereur dans l'appartement principal. Chacune des trois armées avait un commandant en chef distinct, mais il n'y avait pas de commandant général sur toutes les armées et l'empereur n'assumait pas ce grade.
Plus l'empereur vivait à Vilna, moins il était préparé à la guerre, fatigué de l'attendre. Toutes les aspirations du peuple entourant le souverain ne visaient, semble-t-il, qu'à faire oublier au souverain, en passant un moment agréable, la guerre à venir.
Après de nombreux bals et vacances chez les magnats polonais, chez les courtisans et chez le souverain lui-même, l'un des généraux polonais des adjudants du souverain eut en juin l'idée de donner dîner et bal au souverain au nom de ses adjudants généraux. Cette idée a été joyeusement acceptée par tous. L'Empereur a exprimé son consentement. Les adjudants généraux ont collecté de l'argent par abonnement. La personne qui pouvait être la plus agréable au souverain était invitée à être l'hôtesse du bal. Le comte Bennigsen, un propriétaire terrien de la province de Vilnius, a offert sa maison de campagne pour cette fête et le 13 juin, un dîner, un bal, une navigation de plaisance et des feux d'artifice étaient prévus à Zakret, la maison de campagne du comte Bennigsen.
Le jour même où Napoléon donna l'ordre de traverser le Niémen et ses troupes avancées, repoussant les cosaques, franchirent la frontière russe, Alexandre passa la soirée à la datcha de Bennigsen - à un bal donné par les adjudants du général.
Ce furent des vacances joyeuses et brillantes; les experts ont déclaré que tant de beautés se rassemblaient rarement au même endroit. La comtesse Bezukhova, ainsi que d'autres dames russes qui sont venues pour l'empereur de Saint-Pétersbourg à Vilna, étaient à ce bal, assombrissant les dames polonaises sophistiquées avec sa lourde, soi-disant beauté russe. Elle a été remarquée et l'empereur l'a honorée avec une danse.
Boris Drubetskoy, en garcon (célibataire), comme il l'a dit, ayant laissé sa femme à Moscou, était également à ce bal et, bien que n'étant pas adjudant général, participait pour une grosse somme à la souscription du bal. Boris était maintenant un homme riche, loin des honneurs, ne cherchant plus de protection, mais se tenant sur un pied d'égalité avec le plus élevé de ses pairs.
A midi, ils dansaient encore. Hélène, qui n'avait pas de gentilhomme, offrit elle-même la mazurka à Boris. Ils se sont assis dans la troisième paire. Boris, regardant froidement les épaules nues et brillantes d'Helen dépassant d'une robe de gaze sombre et d'or, parlait de vieilles connaissances, et en même temps, inaperçu de lui-même et des autres, il ne s'arrêta pas une seconde d'observer le souverain qui était dans la même pièce. Le souverain ne dansait pas; il se tint dans l'embrasure de la porte et s'arrêta l'un ou l'autre avec ces doux mots que lui seul pouvait prononcer.
Au début de la mazurka, Boris vit que l'adjudant général Balashev, l'une des personnes les plus proches du souverain, s'approchait de lui et se tenait toujours près du souverain, qui parlait à une polonaise. Après avoir parlé avec la dame, le souverain regarda d'un air interrogateur et, se rendant compte apparemment que Balashev ne l'avait fait que parce qu'il y avait des raisons importantes à cela, il fit un léger signe de tête à la dame et se tourna vers Balashev. Dès que Balashev commença à parler, la surprise se manifesta sur le visage de l'empereur. Il prit le bras de Balashev et marcha avec lui à travers le hall, dégageant inconsciemment les brasses des deux côtés des trois larges chemins qui se tenaient de côté devant lui. Boris remarqua le visage agité d'Araktcheev, tandis que l'empereur accompagnait Balashev. Arakcheev, baissant les yeux sur le souverain et reniflant avec un nez rouge, sortit de la foule, comme s'il s'attendait à ce que le souverain s'adresse à lui. (Boris s'est rendu compte qu'Arakcheev était jaloux de Balashev et n'était pas satisfait du fait que certaines nouvelles, manifestement importantes, n'étaient pas transmises au souverain par son intermédiaire.)
Mais le tsar et Balashev passèrent, sans remarquer Arakcheev, par la porte de sortie dans le jardin éclairé. Arakcheev, tenant son épée et regardant autour de lui avec colère, fit vingt pas derrière eux.
Tandis que Boris continuait à faire des figures de mazurka, il était tourmenté par la pensée du genre de nouvelles que Balashev avait apportées et de la façon de la connaître en premier.
Dans la figure où il devait choisir les dames, chuchotant à Hélène qu'il voulait emmener la comtesse Pototskaya, qui, semble-t-il, est sortie sur le balcon, lui, glissant ses pieds sur le parquet, a couru par la porte de sortie dans le jardin et, remarquant le souverain entrant avec Balashev sur la terrasse , mis en pause. L'Empereur et Balashev se dirigeaient vers la porte. Boris, pressé, comme s'il n'avait pas le temps de s'éloigner, se pressa respectueusement contre le linteau et pencha la tête.
L'Empereur, avec l'excitation d'une personne personnellement offensée, termina les mots suivants:
- Entrez en Russie sans déclarer la guerre. Je ne ferai la paix que lorsqu'il ne restera pas un seul ennemi armé sur ma terre », a-t-il déclaré. Il semblait à Boris que l'empereur était heureux d'exprimer ces mots: il était content de la forme d'exprimer ses pensées, mais il était mécontent que Boris les entende.
- Pour que personne ne sache rien! Ajouta l'empereur en fronçant les sourcils. Boris se rendit compte que cela s'appliquait à lui et, fermant les yeux, pencha légèrement la tête. Le tsar entra de nouveau dans la salle et resta au bal pendant environ une demi-heure.
Boris a été le premier à apprendre la nouvelle des troupes françaises traversant le Niémen et grâce à cela, il a eu l'occasion de montrer à des personnes importantes que beaucoup de choses cachées aux autres, il le savait parfois, et grâce à cela, il avait l'occasion de s'élever plus haut dans l'opinion de ces personnes.

La nouvelle inattendue des Français traversant le Niémen était surtout inattendue après un mois d'attentes non comblées, et au bal! Le souverain, à la première minute de la nouvelle, sous l'influence de l'indignation et de l'insulte, trouva cela, qui devint plus tard célèbre, un dicton qu'il aimait lui-même et exprimait pleinement ses sentiments. De retour du bal, le souverain, à deux heures du matin, fit appeler le secrétaire Shishkov et ordonna d'écrire un ordre aux troupes et un rescrit au maréchal Prince Saltykov, dans lequel il exigea certainement que les mots soient placés qu'il ne se réconcilierait pas avant au moins un le Français armé restera sur le sol russe.
Le lendemain, la lettre suivante fut écrite à Napoléon.
«Monsieur mon frère. J "ai appris hier que malgre la loyaute avec laquelle j" ai maintenu mes engagements envers Votre Majeste, ses troupes ont franchis les frontieres de la Russie, et je recois al "instant de Petersbourg une par laquelle le comte Lauriston, pour cause de cette agression, annonce que Votre Majeste est considérée comme en état de guerre avec moi des le moment ou le prince Kourakine a fait la demande de ses passeports. Les motifs sur lesquels le duc de Bassano fondait son refus de les lui délivrer, n "aurait jamais pu me faire supposer que cette démarche servirait jamais de prétexte à l" agression. En effet cet ambassadeur n "y a jamais ete autorise comme il l" a declare lui meme, et aussitot que j "en fus informe, je lui ai fait connaitre combien je le desapprouvais en lui donnant l" ordre de rester a son poste. Si votre Majeste n "est pas intentionnel de verser le sang de nos peuples pour un malentendu de ce genre et qu" elle consente à retirer ses troupes du territoire russe, je regarde ce qui s "est passe comme non avenu, et un logement entre Nous serons possible. Il dépend encore de Votre Majeste d "éviter un l" humanité les calamites d "une nouvelle guerre.
Je suis, etc.
(signe) Alexandre. "
[«Souverain frère! Hier, il m'est apparu que, malgré la franchise avec laquelle j'ai respecté mes obligations envers Votre Majesté Impériale, vos troupes ont traversé les frontières russes et n'ont reçu que maintenant de Saint-Pétersbourg une note avec laquelle le comte Lauriston me notifie cette invasion, que Votre Majesté se considère en relations hostiles avec moi, depuis le temps où le prince Kurakin exigeait ses passeports. Les raisons sur lesquelles le duc de Bassano fonde son refus de délivrer ces passeports n'auraient jamais pu me conduire à supposer que l'acte de mon ambassadeur était le prétexte d'un attentat. Et en réalité, il n'avait pas de commande de ma part, comme il l'a lui-même annoncé; et dès que j'appris cela, j'exprimai aussitôt mon mécontentement au prince Kurakin, lui ordonnant de remplir les devoirs qui lui avaient été confiés comme auparavant. Si Votre Majesté n'est pas encline à verser le sang de nos sujets à cause d'un tel malentendu, et si vous acceptez de retirer vos troupes des possessions russes, alors j'ignorerai tout ce qui s'est passé et un accord entre nous sera possible. Sinon, je serai obligé de repousser une attaque qui n'a été initiée par rien de ma part. Votre Majesté, vous avez toujours la possibilité de sauver l'humanité du fléau d'une nouvelle guerre.
(signé) Alexander ". ]

Le 13 juin, à deux heures du matin, le souverain, convoquant Balashev et lui lisant sa lettre à Napoléon, lui ordonna de prendre cette lettre et de la remettre personnellement à l'empereur de France. Envoyant Balashev, le souverain lui répéta ses paroles qu'il ne ferait pas la paix tant qu'au moins un ennemi armé resterait sur le sol russe, et lui ordonna de transmettre ces paroles à Napoléon sans faute. L'Empereur n'a pas écrit ces mots dans sa lettre, parce qu'il sentait avec son tact que ces mots n'étaient pas commodes à transmettre au moment où se faisait la dernière tentative de réconciliation; mais il a certainement ordonné à Balashev de les remettre personnellement à Napoléon.
Partant dans la nuit du 13 au 14 juin, Balashev, accompagné d'un trompettiste et de deux cosaques, arriva à l'aube dans le village de Rykonty, aux avant-postes français de ce côté du Neman. Il a été arrêté par des sentinelles de cavalerie française.
Un sous-officier hussard français, en uniforme cramoisi et chapeau hirsute, a crié à Balashev, qui s'approchait, lui ordonnant de s'arrêter. Balashev ne s'est pas arrêté immédiatement, mais a continué à se déplacer le long de la route d'un pas.
Le sous-officier, fronçant les sourcils et grognant une sorte de malédiction, s'avança avec la poitrine du cheval à Balashev, prit son sabre et cria grossièrement au général russe, lui demandant s'il était sourd qu'il n'entendait pas ce qu'on lui disait. Balashev s'est identifié. Le sous-officier a envoyé un soldat à l'officier.
Ne prêtant pas attention à Balashev, le sous-officier commença à parler avec ses camarades de ses affaires régimentaires et ne regarda pas le général russe.
C'était inhabituellement étrange pour Balashev, après avoir été proche de la plus haute puissance et puissance, après une conversation il y a trois heures avec le souverain et généralement habitué aux honneurs à son service, de voir ici, sur le sol russe, cette attitude hostile et surtout irrespectueuse de force brute envers lui-même.
Le soleil commençait juste à se lever derrière les nuages; l'air était frais et couvert de rosée. Sur le chemin, le troupeau a été chassé du village. Dans les champs, une à une, comme des bulles dans l'eau, des alouettes étaient saupoudrées d'un carillon.
Balashev regarda autour de lui, s'attendant à l'arrivée d'un officier du village. Les cosaques russes, le trompettiste et les hussards français se regardaient parfois en silence.
Le colonel hussard français, apparemment tout juste sorti du lit, sortit du village sur un beau cheval gris bien nourri, accompagné de deux hussards. L'officier, les soldats et leurs chevaux avaient un air de contentement et de panache.
C'était la première fois de la campagne, alors que les troupes étaient encore en bon état de fonctionnement, presque égal à l'observation, à une activité pacifique, seulement avec une touche de tenue guerrière élégante et avec une touche morale de ce plaisir et de cette entreprise qui accompagnent toujours le début des campagnes.
Le colonel français pouvait à peine retenir un bâillement, mais il était courtois et, apparemment, comprenait toute la signification de Balashev. Il le fit passer devant ses soldats par la chaîne et lui dit que son désir d'être présenté à l'empereur serait probablement immédiatement comblé, puisque l'appartement impérial, à sa connaissance, n'était pas loin.
Ils passèrent devant le village de Rykonty, dépassèrent les postes d'attelage des hussards français, les sentinelles et les soldats saluant leur colonel et examinant l'uniforme russe avec curiosité, et se rendirent de l'autre côté du village. Selon le colonel, le chef de division était à deux kilomètres de là, qui recevrait Balashev et l'escorterait jusqu'à sa destination.
Le soleil s'était déjà levé et brillait joyeusement sur la verdure éclatante.
Ils venaient de quitter la taverne sur la montagne, quand un groupe de cavaliers parut les rencontrer de dessous la montagne, devant laquelle, sur un cheval noir avec un harnais brillant au soleil, un grand homme montait dans un chapeau à plumes et cheveux noirs enroulés sur ses épaules, en robe rouge longues jambes dépassant en avant, comme le tour français. Cet homme chevauchait au galop vers Balashev, scintillant et flottant sous le soleil éclatant de juin avec ses plumes, ses pierres et ses tresses d'or.
Balashev était déjà à deux chevaux d'un cavalier en bracelets, plumes, colliers et or galopant vers lui avec un visage théâtral solennel, quand Yulner, un colonel français, murmura respectueusement: «Le roi de Naples». [Roi de Naples.] En effet, c'était Murat, maintenant appelé le roi de Naples. Bien que la raison pour laquelle il était le roi de Naples soit totalement incompréhensible, on l'appelait ainsi, et il en était lui-même convaincu et avait donc une apparence plus solennelle et plus importante qu'auparavant. Il était si sûr qu'il était vraiment un roi napolitain que lorsque, à la veille de son départ de Naples, lors de sa promenade avec sa femme dans les rues de Naples, plusieurs Italiens lui crièrent: "Viva il re!" [Vive le roi! (Italien)] il se tourna vers sa femme avec un sourire triste et dit: «Les malheureux, ils ne savent pas que je les quitte demain! [Malheureux, ils ne savent pas que je les quitte demain!]
Mais malgré le fait qu'il croyait fermement qu'il était un roi napolitain, et qu'il regrettait le chagrin de ses sujets qui les quittaient, récemment, après avoir reçu l'ordre de réintégrer le service, et surtout après une rencontre avec Napoléon à Dantzig, quand l'auguste beau-frère lui dit: «Je vous ai fait roi pour regner a maniere, mais pas a la votre», [je t'ai fait roi pour régner non pas à ma manière, mais à mon avis.] - il commença gaiement pour une entreprise qu'il connaissait et, comme un cheval usé, mais pas en surpoids, apte au service, se sentant dans un harnais, il jouait dans les arbres et, déchargé aussi vivement et cher que possible, gai et content, galopait, ne sachant ni où ni pourquoi, le long des routes Pologne.
Voyant le général russe, il rejeta la tête en arrière, les cheveux recroquevillés sur ses épaules d'une manière royale et solennelle, et regarda le colonel français d'un air interrogateur. Le colonel communiqua respectueusement à sa majesté l'importance de Balashev, dont il ne put prononcer le nom.

La section est très facile à utiliser. Il suffit de saisir le mot souhaité dans le champ proposé, et nous vous donnerons une liste de ses significations. Je voudrais noter que notre site fournit des données provenant de diverses sources - dictionnaires encyclopédiques, explicatifs, de formation de mots. Ici aussi, vous pouvez vous familiariser avec des exemples d'utilisation du mot que vous avez entré.

Le sens du mot basic

bASIC dans le dictionnaire de mots croisés

de base

Dictionnaire encyclopédique, 1998

de base

BASIC (BASIC; à partir des premières lettres des mots anglais Débutants - pour les débutants, Tout usage - universel, Symbolique - symbolique, Instruction - éducatif, Code - code) est un langage de programmation axé sur l'enseignement des bases de la programmation. Il est principalement utilisé pour la programmation sur des ordinateurs personnels.

Wikipédia

DE BASE

De base (de DE BASE, abréviation de - code d'instructions symbolique universel pour les débutants) est une famille de langages de programmation de haut niveau.

Il a été développé en 1964 par les professeurs du Dartmouth College Thomas Kurz et John Kemeny.

Le langage a été créé comme un outil permettant aux étudiants non programmeurs de créer indépendamment des programmes informatiques pour résoudre leurs problèmes. S'est répandu sous la forme de divers dialectes, principalement comme langue pour les ordinateurs personnels. À ce jour, il a subi des changements importants, s'éloignant considérablement de la simplicité caractéristique des premières versions, frôlant le primitivisme et se transformant en un langage de haut niveau assez ordinaire avec un ensemble typique de capacités. Il est utilisé comme langage indépendant pour le développement de programmes d'application, fonctionnant principalement sous le système d'exploitation Windows de différentes versions. Il est également largement utilisé comme langage intégré pour les systèmes logiciels d'application à diverses fins et comme langage pour les calculatrices programmables.

BASIC (homonymie)

DE BASE, De base:

  • L'anglais de base est une langue artificielle internationale basée sur l'anglais.
  • BASIC est un langage de programmation de haut niveau.
  • BASIC est un ordinateur domestique soviétique du début des années 1990, un clone du ZX Spectrum.
  • BASIC Vilnius est une implémentation du langage de programmation BASIC pour les ordinateurs 16 bits avec processeurs PDP-11.

Exemples d'utilisation du mot BASIC dans la littérature.

Les espaces dans la chaîne sont inclus uniquement pour la commodité du programmeur - DE BASE les ignore.

Notez que DE BASE a sa propre variable qui stocke la position actuelle du curseur.

Si vous incluez une routine assembleur qui modifie la position du curseur, alors DE BASE ignorera la nouvelle position du curseur lorsque le contrôle sera retourné.

Notez que DE BASE désactive généralement le curseur lors du démarrage de l'exécution du programme.

Dans la mesure où DE BASE n'autorise pas les nombres binaires, certaines manipulations sont nécessaires pour déterminer les attributs.

Quand DE BASE convertit le caractère en 16e forme, puis il ne renvoie qu'un seul chiffre si le premier était un , donc le null supprimé doit être restauré pour que cette méthode fonctionne correctement.

Langages de haut niveau tels que kapk DE BASEcréez ces zones automatiquement.

Défaut DE BASE définit le nombre de tampons à 8, mais vous pouvez changer ce nombre en quelque chose d'autre de 4 à 15.

DE BASE, effectuez automatiquement les travaux préparatoires aux opérations sur les fichiers.

Langages de haut niveau tels que DE BASE, insérez ces caractères automatiquement, tandis que les programmes d'assemblage doivent prendre soin d'insérer ces caractères après l'écriture de chaque variable dans le fichier.

Bien que dans certains cas DE BASE pardonne les fichiers non fermés, mais ce n'est pas le cas.

Dans les fichiers à accès direct DE BASE traite toutes les variables, y compris les variables numériques, comme des chaînes.

Cependant, vous pouvez définir la gestion des erreurs de sorte que lorsqu'une erreur critique se produit DE BASE a automatiquement suivi la procédure de récupération après incident que vous avez créée.

Lors de l'exécution de cette procédure DE BASE transfère le contrôle d'une séquence d'instructions constituant un programme vers DE BASEe, à l'emplacement où sont stockées les instructions qui peuvent être décodées en une séquence d'instructions en langage d'assemblage.

La solution habituelle à ce problème est que la procédure est placée dans les adresses mémoire auxquelles DE BASE ne peut pas accéder.

Le but de la leçon:

    Pour familiariser les étudiants avec les bases du langage BASIC. Vérifiez les connaissances de la leçon précédente. Favoriser la capacité d'écouter l'enseignant. Développement de l'intérêt cognitif.

Plan de cours:

Vérification des devoirs. Explication du nouveau matériel. Concepts de base de la langue Devoirs. Résumer la leçon.

Pendant les cours

Vérification des devoirs.

Définition des objectifs de la leçon.

Explication du nouveau matériel.

Le langage de programmation de base a été créé en 1964 par deux professeurs de l'Université de Dartmoon, John Kenemy et Thomas Kurtz. BASIC est la première lettre des mots anglais Code d'instruction symbolique universel pour débutants. Il existe actuellement de nombreuses versions de cette langue, parfois très différentes les unes des autres. Pour les établissements d'enseignement, les versions les plus courantes sont MSX , d'abord implémenté sur l'ordinateur japonais "Yamaha", et la version de Microsoft pour les ordinateurs IBM. De plus, la version Turbo-Basic de Borland est populaire dans notre pays. Sans exagération, on peut dire qu'aujourd'hui BASIC est le langage de programmation le plus répandu. Après l'émergence de compilateurs puissants Visual Basic, ce langage est devenu populaire parmi les programmeurs professionnels. BASIC fait référence aux langages de programmation de haut niveau. Comme les autres langages, ce langage a un alphabet, une syntaxe, une sémantique.

Alphabet de la langue. L'alphabet de base est une table de caractères ASCII. La première moitié de ce tableau (caractères avec le code 0-127) est standard. La seconde moitié (caractères avec le code 128-255) est spécifique à chaque pays. Dans ce tableau, chaque caractère a une désignation de 8 bits. Ainsi, l'alphabet de base comprend toutes les lettres majuscules et minuscules des alphabets anglais et russe, des chiffres, ainsi qu'un ensemble de caractères spéciaux disponibles sur le clavier de l'ordinateur.

Variables. En BASIC, les variables des types suivants sont distinguées:

    variables numériques; variables symboliques; variables de type personnalisé (enregistrements); variables de tableau.

Une variable est une valeur qui peut changer pendant l'exécution du programme. En plus de ceux indiqués dans le tableau, des nombres entiers sont également enregistrés dans l'enregistrement de l'exposition, par exemple,

2,55,105 \u003d 2,5 cycles; 7,15.10-7 \u003d 7.15E-7

Le programme BASIC traite des données de deux types - numériques et symboliques. Chaque nombre est représenté dans la machine par une combinaison de bits. N'importe quel nombre peut être représenté de différentes manières dans une voiture:

Un entier compris entre –32768 et 32768; entier long compris entre - et; nombres réels de précision ordinaire; nombres réels à double précision;

Les données peuvent être représentées par des variables et des constantes.

Variables. Vous connaissez déjà le concept de variable à partir des leçons d'algèbre. Par exemple, dans une simple égalité algébrique c \u003d f + 2b - 5 valeur variable avec dépend de la valeur de la variable f et b indiquée à droite de l'égalité. Par exemple, pour f \u003d 2 et b \u003d 6, c \u003d 9 .

La même égalité peut être écrite dans un programme BASIC.

c \u003d f + 2 * b - 5

En termes de langage BASIC c , F et b Sont des noms de variables. Ces noms sont également appelés identifiants.

Identifiants... Dans le langage BASIC, un identificateur est un ensemble arbitraire de caractères pouvant contenir de 1 à 40 caractères, et le premier caractère doit être une lettre latine, et le reste doit être des lettres latines ou des chiffres ou des symboles tels que @, #,% et. etc.

Exemple :

A, Ds, SodRan, k1, n123, dlina!

Le type d'identifiant en BASIC est reconnu par le dernier caractère du nom de la variable.

% est un entier;
& est un entier long;
! - nombre réel de précision usuelle;
# - nombre réel double précision;
$ est un type de caractère.

En BASIC, il existe une autre façon de décrire les types de variables (qbasic). Si vous mettez la commande: DEFINT I - L au début du programme, toutes les variables dont les noms commencent par la lettre I et se situent dans la plage allant jusqu'à la lettre L seront considérées comme des nombres entiers (INTEGER).

Le format général de la commande de description de type est:

DEFINT X-X (entiers) DEFLNG X-X (longs entiers longs) DEFSNG X-X (nombres réels, simples) DEFDBL X-X (doubles réels) DEFSTR X-X (chaîne de caractères)

Constantes. Les constantes, à la fois numériques et symboliques, sont des valeurs qui ne changent pas pendant l'exécution du programme.

Par exemple:

p \u003d 3,1415
T $ \u003d "École Skorodnyanskaya"
A \u003d 9575
m $ \u003d "Programme hebdomadaire"

Les constantes écrites sont parfois appelées littéraux. Concernant les constantes, rappelez-vous les règles:

Le point décimal est le séparateur; les valeurs des constantes de caractère sont placées entre guillemets.

Les nombres peuvent être écrits exponentielformulaire, par exemple:

0,0285 \u003d 2,85E-2 ou 0,0285 \u003d 2,85D-2
784,527 \u003d 7,84E + 2
ou 784,527 \u003d 7,84D + 2

Les nombres écrits sous forme exponentielle représentent le produit de la mantisse par un ordre de grandeur, c'est-à-dire par 10 à la puissance –2, +2, etc. La lettre E est utilisée pour les nombres réels de précision ordinaire, la lettre D est utilisée pour les nombres réels de double précision.

Constantes nommées. Si vous attribuez une valeur à une variable (numérique ou symbolique) et ne modifiez pas ces valeurs à l'avenir, par exemple:

F3 \u003d 60, n% \u003d 15

CONST <имя_переменной = константа, имя переменной = константе>

Par exemple: CONST F2 \u003d 60, n% \u003d 15

Expressions et opérations. La séquence d'opérations à effectuer sur les données pour obtenir la valeur requise est appelée expression.Il existe cinq catégories d'opérations en BASIC:

Opérations arithmétiques; Opérations relationnelles; Opérations logiques; Opérations fonctionnelles; Opérations sur les chaînes.

Opérations arithmétiques.

Nom de l'opération

signe
en mat.

se connecter BASIC

Exemple en
math.

Exemple en
DE BASE

Exponentiation

-

^

25

2^5

Une addition

+

+

5+10

5+10

Soustraction

-

-

un B

un B

Multiplication

x; ...

*

2.5

2*5

Division

:

/

10:2

10/2

Opérations relationnelles.

Fonction est une opération prédéfinie sur les données. Il existe deux types de fonctions dans BASIC: intégrées et définies par l'utilisateur.

Fonctions mathématiques intégrées

Nom de la fonction

Ecrire en mathématiques

Enregistrement BASIQUE

Exemple en BASIC

Valeur absolue

Exposant

Un algorithme naturel.

Reste de la division entière (MOD)

19 MOD 6.7

Racine carrée

Sinus

NAS (3,14)

Cosinus

Tangente

Arc tangent

Signe d'expression numérique

Toutes les autres fonctions trigonométriques, ainsi que les fonctions hyperboliques, sont déterminées par des formules mathématiques bien connues, par exemple, ARCSIN (X) \u003d ATN (X / SQR (1-X ^ 2)) .

Lors de la résolution de problèmes, deux autres fonctions sont très souvent utilisées.

1.RND (1) - un générateur de nombres aléatoires qui définit des nombres aléatoires dans la plage de 0 à 1.

Exemple:

Entrez un nombre aléatoire de 1 à 100. (Nombre naturel).

N \u003d (RND (1) * 100 + 1)

2. INT (expression numérique) - cette fonction supprime la partie fractionnaire lors de la division des nombres.

Exemple:

Dans le premier exemple, il faut que les nombres N de 1 à 100 soient naturels.

N \u003d INT (RND (1) * 100 + 1)

Fonction utilisateur.

Dans les cas où la fonction n'est pas élémentaire, ou la fonction a plusieurs arguments, il est pratique d'utiliser une fonction utilisateur: DEF FN.Le nom de la fonction doit toujours commencer par les lettres FN. DEF FN ne peut pas être récursif (ne peut pas s'appeler lui-même) et doit être défini avant l'utilisateur.

Exemple:

Soit X et Y des nombres naturels. R est le reste de la division de X par Y. Exprimez R (X, Y) - R fonction de X et Y.

R \u003d X - INT (X / Y) * Y - reste de la division X sur le Oui
DÉF FN R (X, Y) \u003d X-Y * INT (X / Y)

Dans cet exemple R (X, Y) est une fonction de deux arguments.

Écrire des expressions mathématiques en BASIC.

Toute expression mathématique en BASIC est écrite sous forme de chaîne. Pour évaluer cette expression, écrivez simplement PRINT ou? Avant.

Calculer:

https://pandia.ru/text/78/020/images/image003_37.gif "alt \u003d" (! LANG: Formule" width="121" height="42 src=">!}

IMPRIMER (SIN (47 * PI / 180) -COS (78 * PI / 180) ^ 2) / (EXP (1.5) -SIN (13 * PI / 180))

Notez les expressions suivantes en BASIC:

  • Développement pour Windows
  • DONKEY.BAS. Inclus avec l'IBM PC en 1981. Co-écrit par Bill Gates

    Le nom BASIC vient du «code d'instruction symbolique polyvalent pour débutants», qui signifie littéralement «langage d'instruction symbolique polyvalent pour les débutants». C'est le cas lorsque la traduction littérale transmet avec précision l'essence. Caractéristique clé BASIC "n'était pas seulement sa simplicité, mais aussi la capacité de trouver des solutions aux problèmes dans un dialogue avec un ordinateur.

    Pour de nombreux ordinateurs de la fin des années 60, BASIC était positionné comme le seul langage de programmation polyvalent de haut niveau, ce qui a conduit au fil du temps à l'apparition de diverses modifications. Le tournant dans le développement du langage a été l'apparition de Visual Basic.

    Contexte

    Au milieu des années 50, le rôle de la programmation dans les codes machine a commencé à diminuer. Des langues de plus haut niveau sont apparues - Fortran, Algol, Cobol, etc.

    Le premier d'entre eux et l'un des plus courants était 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.

    Le nom du langage Algol (ALGOrithmic Language), dont la première version est apparue en 1958, souligne le fait qu'il est destiné à l'écriture d'algorithmes. En raison de sa structure logique claire, Algol est devenu moyen standard enregistrements d'algorithmes dans la littérature scientifique et technique.

    À l'époque, les langages de programmation de haut niveau étaient caractérisés par une orientation vers le sujet. De plus, ces langages étaient trop difficiles pour les développeurs débutants, surtout s'ils n'étaient pas des ingénieurs. Par conséquent, il est naturel qu'au fil du temps, un langage de programmation pour «simples mortels» soit apparu.

    DE BASE. Juste BASIC

    La célèbre histoire du missionnaire anglais est associée à l'idée de créer ce langage de programmation.
    Au XIXe siècle, un missionnaire anglais, qui cherchait une occasion de faciliter et de simplifier le contact avec les autochtones, a eu l'idée ingénieuse - d'isoler de la langue anglaise la partie la plus simple, qui n'a pratiquement pas de grammaire et contient environ 300 des mots les plus courants. Cette sous-espèce tronquée de la langue anglaise a été nommée BASIC ENGLISH et, comme l'a montré la pratique, elle s'est avérée très facile à apprendre et a rapidement gagné en popularité non seulement parmi la population autochtone, mais aussi parmi les immigrants pour lesquels l'anglais n'était pas leur langue maternelle.
    Cent ans plus tard, les employés du département de mathématiques du Dartmouth College ont suivi un chemin similaire. Ils ont décidé de faciliter l'interaction entre un ordinateur et un utilisateur profane en utilisant un langage de programmation «simplifié».

    En 1964, Thomas Kurtz et John Kameni ont créé un langage de programmation spécialisé composé de mots simples de la langue anglaise. La nouvelle langue a été nommée BASIC.

    Ils l'ont utilisé pour enseigner aux élèves des compétences en programmation. La langue s'est avérée si simple et compréhensible qu'après un certain temps, ils ont commencé à l'utiliser dans d'autres établissements d'enseignement.

    Fortran II et Algol 60 ont eu un impact significatif sur BASIC En outre, les développeurs ont mis en œuvre des mécanismes pour travailler avec des systèmes de partage de temps, ainsi que le traitement de texte et l'arithmétique matricielle. Le compilateur de langage a été initialement écrit pour le mainframe GE-265.

    Florissant

    Dans les années 70, des ordinateurs plus compacts (PC) sont apparus. Bill Gates et Paul Allen, les fondateurs de Microsoft, ont profité de cette circonstance.

    Ils ont créé une nouvelle version de BASIC pour les premiers ordinateurs "Altair" (MITS Altair), capable de fonctionner en 4KB mémoire vive... Au fil du temps, c'est cette version qui est devenue l'un des langages de programmation les plus populaires au monde.


    Altair

    La période de la plus grande floraison et de développement du BASIC original peut être considérée comme la fin des années 1970 - la première moitié des années 1980. Ses versions sont apparues sur d'autres plates-formes, et ont rapidement commencé à se disperser en millions d'exemplaires avec toutes sortes de changements et d'améliorations. L'une des versions les plus populaires était Applesoft BASIC, qui est devenue la langue standard sur l'Apple II.

    Applesoft BASIC a été écrit par Microsoft en remplacement du système Integer BASIC utilisé dans le tout premier modèles Apple II et avait des capacités très limitées. Applesoft BASIC a été flashé dans la ROM de tous les modèles Apple II depuis Apple II + et tous les clones Apple II. En outre, une version antérieure et allégée d'Applesoft BASIC était disponible sur cassettes pour le tout premier modèle Apple II.

    Pour le système d'exploitation CP / M, le dialecte BASIC-80 a été créé, ce qui a déterminé le développement du langage pendant longtemps.

    Lorsque les premiers ordinateurs personnels IBM PC sont apparus, c'est lui qui est devenu le standard de la programmation, mais déjà sous la forme de GW-Basic.

    Au milieu des années 80, BASIC est devenu le langage dominant dans les modèles de calculateurs programmables sophistiqués, qui à ce moment-là avaient atteint la puissance d'un langage complet de haut niveau. BASIC a été intégré à la calculatrice soviétique MK-85 Electronics et à tous ses modèles ultérieurs.

    Également en 1985, l'IDE Quick Basic est apparu - un environnement de développement intégré et un compilateur pour le langage de programmation BASIC, développé par Microsoft de 1985 à 1988. Il existe des versions pour DOS et Mac OS. Le dialecte BASIC utilisé était basé sur le dialecte GW-BASIC amélioré: la prise en charge des types définis par l'utilisateur, des constructions de programmation structurées a été implémentée et la prise en charge des opérations graphiques et de disque a été considérablement étendue.

    Robert "Bob" Zale a créé Turbo Basic en 1987 sur la base de ses nombreuses années de développement BASIC / Z et l'a ensuite vendu à Borland. Il a été nommé l'un des produits les plus importants de cette année par le magazine Infoworld.

    Contrairement à la plupart des implémentations BASIC de l'époque, Turbo Basic était un compilateur complet qui générait du code MS-DOS natif.

    Malgré le grand nombre de versions du langage BASIC, lors du développement d'une nouvelle version du langage, la compatibilité avec les versions précédentes était toujours maintenue: avec un programme écrit pour des versions antérieures, il était tout à fait possible (parfois avec des modifications mineures) de travailler dans les versions ultérieures de ce langage.

    Seconde vie

    Au début des années 90 est apparu système opérateur Microsoft Windows avec une nouvelle interface utilisateur graphique.

    Créer programme simple, les développeurs ont dû écrire plusieurs pages de code: écrire des blocs de code volumineux pour les menus et les fenêtres, les polices, effacer la mémoire, les boutons "dessiner", etc. Cependant, les avantages de la nouvelle interface étaient assez forts et Windows avait de réelles chances de devenir populaire partout.

    Microsoft a compris qu'il fallait en quelque sorte faciliter la vie des développeurs. Par conséquent, la société a lancé plusieurs projets parallèles pour créer un nouveau langage de programmation et un environnement de développement pour Windows.

    BASIC a eu sa deuxième vie lorsque Microsoft a publié Visual Basic. Il est devenu l'achèvement logique de l'évolution du langage et, malgré la préservation des mots-clés habituels, en termes de structure et d'ensemble de fonctionnalités, il était plus proche de Pascal que du BASIC original.

    En 1991, la première version du nouvel IDE Microsoft Visual Basic a été publiée. Cependant, à ce moment-là, Microsoft était plutôt modeste dans l'évaluation des capacités de ce système, l'orientant néanmoins vers la catégorie des programmeurs débutants et non professionnels.

    Bien sûr, ce n'était que la première étape, car la société de Bill Gates prévoyait de renforcer la position de Windows sur le marché. Et cela serait très difficile à faire, laissant les développeurs commerciaux sans outils efficaces pour créer des applications pour MS Windows.

    Le système de programmation créé par les développeurs de Visual Basic a permis d'abstraire de la structure interne de Windows. 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 des opérations de glisser-déposer les plus simples, et la plupart du code pour leur initialisation et leur configuration a été généré automatiquement.

    Les programmeurs VB pouvaient créer leur premier programme en quelques minutes après avoir commencé à apprendre cette langue. De plus, Visual Basic a permis aux développeurs de créer de nouveaux éléments d'interface graphique qui pourraient également être utilisés dans des programmes avec les éléments standard.

    Malgré le fait que de nombreux développeurs C n'ont pas pris au sérieux les tentatives de Microsoft de créer un outil simple et compréhensible pour développer des programmes Windows, le reste de la communauté informatique avait de grands espoirs pour Visual Basic.

    En 1994, la société a publié Visual Basic pour Applications. C'est à cette époque, après l'incorporation de VBA dans Microsoft Office, que Basic est devenu l'un des principaux standards de programmation pour Windows.

    Initialement conçu comme un jouet, Visual Basic de Microsoft a conquis le monde de la programmation incroyablement rapidement. Sa popularité est due à deux raisons: simplicité relative et productivité.

    Les programmes VB étaient plus lents que leurs homologues C / C ++, mais ils sont toujours assez rapides pour de nombreux besoins commerciaux et nécessitent beaucoup moins de temps de développement. Les formulaires étaient l'abstraction très économique que VB offrait aux programmeurs Windows.

    L'EDI VB a rendu possible la conception graphique des fenêtres en faisant glisser et en déposant des contrôles tels que des boutons et des listes de la barre d'outils sur le formulaire. Ayant reçu une note satisfaisante apparence formulaire, vous pouvez accéder au code-behind et écrire des gestionnaires d'événements pour chaque contrôle du formulaire.

    Développer une application en VB consistait donc à créer plusieurs formulaires qui interagissaient les uns avec les autres.

    Du point de vue de l'écriture de code, une différence importante par rapport au même C ++ est le rejet des pointeurs. Bill Gates l'a décidé, même lors du développement des 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 aux erreurs s'ils sont utilisés de manière inappropriée. Et puisque le langage a été créé à l'origine pour «de simples mortels», cette décision semble tout à fait justifiée.

    Principales versions de Visual Basic

    Dans la première version (1991), Alan Cooper a implémenté le principe de la communication entre le langage et l'interface graphique.

    À partir de la troisième version (1993), le support de MS Access est apparu dans VB.

    Visual Basic 4.0 (1995) - la version dans laquelle il est devenu possible de créer des applications Windows 32 bits et 16 bits. De plus, des classes ont été ajoutées à la langue.

    À partir de VB 5.0 (1997), il est devenu possible de développer des composants COM personnalisés. De plus, un nouveau machine virtuelleimplémenté dans la bibliothèque de liens dynamiques MSVBVM50.DLL. Le compilateur VB utilisait le multi-pass pour la traduction, mais s'est finalement appuyé sur le compilateur Microsoft C ++ pour produire le code machine de sortie après compilation dans le langage intermédiaire. L'utilisation de la bibliothèque d'exécution et de l'interface interne C ++ a été le point de départ de la formation de la technologie .NET.

    VB version 6 est déjà un langage puissant qui peut être utilisé pour créer des applications distribuées à l'aide des composants COM et Microsoft Transaction Server. Microsoft a proposé une approche à trois niveaux pour les architectures client-serveur, dans laquelle les interfaces des utilisateurs interagi avec des composants VB distants pour récupérer des données d'une base de données ou d'une autre machine.

    De plus, VB6 (1998) pourrait être utilisé pour créer des contrôles Active-X qui fonctionnent avec Internet Explorer.

    En 2002, la première version de Visual Basic .NET a été publiée. Depuis lors, la compatibilité descendante avec la version classique de Visual Basic a été interrompue.

    Depuis 2005, Visual Basic est inclus dans l'IDE de Microsoft Visual Studio 2005. À ce jour, le langage évolue avec l'IDE - jusqu'à la version actuelle - MS Visual Studio 2015.

    Les langages Basic et Visual Basic ont parcouru un long chemin et ont subi des changements importants, pourrait-on dire irréversibles. Il ne reste guère de leur simplicité originelle. En conséquence, VB est devenu un langage de programmation orienté objet «régulier» de haut niveau.

    LA CLOCHE

    Il y a ceux qui ont lu cette nouvelle avant vous.
    Abonnez-vous pour recevoir les derniers articles.
    Email
    Nom
    Nom de famille
    Comment voulez-vous lire The Bell
    Pas de spam