LA CAMPANA

C'è chi ha letto questa notizia prima di te.
Iscriviti per ricevere gli ultimi articoli.
E-mail
Nome
Cognome
Come vuoi leggere The Bell
Niente spam

Il linguaggio BASIC (noto anche come BASIC, anche noto come BASIC) è un membro della famiglia dei linguaggi di programmazione di alto livello.

DI BASE è un'abbreviazione che sta per: Beginner's UNll-scopo Symbolic ionstruction Code è un codice di istruzione simbolico generico per principianti).

Il linguaggio di programmazione BASIC è stato sviluppato nel 1964. L'idea era di creare un linguaggio con cui gli studenti senza competenze di programmazione potessero creare in modo indipendente per risolvere i loro problemi.

Questa lingua era un tempo molto popolare e diffusa nel mondo dei computer sotto forma di vari dialetti, principalmente come la lingua per i computer di casa.

Sin dal suo inizio, Basic è stato più volte raffinato e complicato, obbedendo alle leggi della programmazione moderna. Per questo motivo ormai ha già perso (rispetto alle prime versioni) la sua semplicità. Sebbene, anche con questo in mente, il moderno Basic rimane ancora un linguaggio relativamente semplice, rispetto a linguaggi come, ad esempio,.

Dagli anni '60, i computer sono diventati sempre più convenienti. Non solo i programmatori, ma anche gli scolari e gli studenti che non erano programmatori potevano lavorare sui computer. Tuttavia, questi scolari e studenti avevano già problemi che dovevano essere risolti con l'aiuto dei computer.

All'epoca non c'erano quasi programmi già pronti. Pertanto, per ogni attività è stato necessario creare un programma separato. Ed era molto difficile farlo sui computer di quegli anni, utilizzando i linguaggi di programmazione allora disponibili (questo è in parte il motivo per cui i linguaggi di programmazione sono stati creati in precedenza per risolvere problemi specifici, ad esempio PROLOGUE era focalizzato sulla creazione di sistemi con intelligenza artificiale, FORTRAN - per lavorare con formule matematiche nei calcoli scientifici e ingegneristici, ecc.).

Pertanto, non sorprende che qualcuno abbia avuto l'idea di creare un linguaggio di programmazione il più semplice possibile, in modo che le persone che non hanno familiarità con la programmazione possano creare almeno programmi semplici per risolvere alcuni problemi sui computer (questa idea è stata portata alla vita , sebbene i critici successivi abbiano incolpato BASIK per queste caratteristiche).

Di conseguenza, nel 1964, la lingua di base fu inventata dagli insegnanti del Dartmouth College John Kemeny e Thomas Kurtz, e sotto la loro guida fu implementata da un team di studenti universitari. Nel corso del tempo, quando iniziarono ad apparire altri dialetti, l'implementazione originale fu chiamata Dartmouth BASIC.

BASIC è stato concepito e realizzato in modo che gli studenti possano creare i loro programmi in modo relativamente semplice. Basic era focalizzato su utenti per i quali la velocità di esecuzione del programma non era troppo importante e per i quali era molto più importante poter utilizzare un computer per risolvere i loro problemi, in linea di principio, senza avere alcuna formazione specifica (ricorda, allora non c'erano quasi programmi già pronti).

Durante lo sviluppo del linguaggio di base, sono stati utilizzati i seguenti otto principi:

  1. La lingua dovrebbe essere facile da usare e comprensibile per i principianti.
  2. Dovrebbe essere un linguaggio di programmazione generico (non uno speciale, come, ad esempio, Fortran e Prolog menzionati sopra).
  3. Il linguaggio dovrebbe fornire la capacità di estendere le funzionalità disponibili ai programmatori esperti.
  4. La lingua deve essere interattiva, ovvero eseguire i comandi dell'utente.
  5. La lingua dovrebbe fornire messaggi di errore inequivocabili e comprensibili.
  6. La lingua dovrebbe funzionare rapidamente su piccoli programmi.
  7. Il linguaggio non dovrebbe essere legato all'hardware e non dovrebbe richiedere al programmatore di comprendere il lavoro di questo stesso hardware.
  8. La lingua dovrebbe proteggere l'utente dal sistema operativo (o il sistema operativo dall'utente - come preferisci))).

Durante la creazione di Basic, sono state prese come base parte di Fortran II e parte di Algol 60. Inizialmente, Basic è stato implementato su un mainframe GE-265 con supporto per più terminali (un mainframe è un grande server a tolleranza di errore ad alte prestazioni).

Nonostante il linguaggio fosse già utilizzato su diversi mini-computer, la sua vera diffusione è iniziata con l'introduzione sul microcomputer Altair 8800.

Molti linguaggi di programmazione erano troppo ingombranti per entrare nella poca memoria che gli utenti di tali computer potevano permettersi. Per macchine con supporti lenti come il nastro di carta (in seguito cassetta del nastro) e senza un editor di testo adatto, un linguaggio piccolo come BASIC era la soluzione migliore.

Nel 1975 Microsoft (allora erano solo due - e Paul Allen, con la partecipazione di Monte Davidov), pubblicò Altair BASIC. Quindi le sue versioni apparvero su un'altra piattaforma sotto licenza e presto c'erano già milioni di copie e diverse varianti in uso. Una delle varianti, Applesoft BASIC, è diventata il linguaggio standard in. Per il sistema operativo CP / M, è stato creato il dialetto BASIC-80, che era molto in anticipo sui tempi.

A proposito, Bill Gates ha detto che BASIC è il suo linguaggio di programmazione preferito.

Basic si è sviluppato più rapidamente e con successo durante gli anni '70 e l'inizio degli anni '80. In questo momento, quasi tutti computer personale aveva il proprio interprete BASIC, spesso collegato direttamente alla ROM. Nei computer più semplici fungeva anche da sistema operativo.

Praticamente tutti i computer più potenti avevano anche sistemi BASIC interattivi. Sono state create diverse nuove versioni di BASIC per la piattaforma PC IBM e compatibili. Microsoft ha venduto BASIC per MS-DOS / PC DOS, inclusi BASICA, GW-BASIC (una modifica BASICA che non richiedeva il firmware IBM) e QuickBASIC.

L'azienda Borland, divenuta molto nota (con la quale è entrata per la prima volta nel mercato), nel 1985 ha rilasciato il sistema Turbo Basic 1.0 basato sullo stesso ambiente software (i suoi successori sono stati successivamente venduti da un'altra società con il nome PowerBASIC).

Alla fine degli anni '80, i personal computer erano diventati molto più potenti e fornivano nuove funzionalità (come un'interfaccia utente grafica). Non era più così facile e non così conveniente usare queste nuove possibilità in BASIC. Inoltre, apparvero compilatori economici di linguaggi più avanzati (come Pascal e C), che, inoltre, avevano fantasia per quei tempi e librerie aggiuntive con quelli già pronti (ad esempio, Borland Pascal con la libreria Turbo Vision).

BASIC iniziò a perdere popolarità, sebbene un numero enorme di versioni fosse ancora in uso e venduto. Allo stesso tempo, iniziò la graduale transizione del BASIC verso linguaggi strutturali riconosciuti: il vocabolario e l'insieme delle costruzioni linguistiche si espansero, apparvero rami complessi, subroutine e funzioni denominate, nomi di variabili lunghi.

Caratteristiche del linguaggio BASIC

Le prime versioni di BASIC (come BASICA, GW-BASIC) sono molto diverse dai dialetti moderni e non sono praticamente utilizzate oggi. Inoltre, differiscono così tanto che un programmatore alle prime armi non sarà in grado di tradurre tutti i programmi del vecchio BASIC nel moderno BASIC.

La struttura del programma nelle prime versioni di BASIC era in gran parte formata tenendo conto del fatto che era inteso per un ambiente di programmazione con un editor di riga. In un editor di questo tipo, l'utente non poteva visualizzare tutto il testo sullo schermo (nella finestra), non poteva spostarsi in nessuna direzione utilizzando la tastiera e / o il mouse. Negli editor di riga, per modificare una riga di testo, l'utente deve dare il comando per cambiare la riga con il numero specificato, quindi inserire il nuovo testo della riga specificata (quella era la vita dei programmatori))).

Per inserire una nuova riga, è necessario dare il comando di inserimento, specificando nuovamente il numero. Le righe inserite vengono visualizzate sullo schermo in sequenza (indipendentemente dai numeri). Per vedere le modifiche apportate, viene utilizzato il comando di output del testo, che emette le righe nell'ordine corretto (numeri crescenti).

Pertanto, nel vecchio BASIC, ogni riga iniziava con un numero. Una volta inserita nell'editor, la riga appariva nel codice sorgente del programma nella posizione corrispondente al suo numero. Per inserire una nuova riga, era necessario aggiungere una riga con un numero che fosse compreso nell'intervallo tra i numeri delle altre due righe.

Non era possibile "spostare" le righe se era necessario inserire una nuova riga tra righe con numeri adiacenti, era necessario reinserire queste righe con numeri diversi in modo da fornire un'interruzione nella numerazione (oppure utilizzare l'apposito comando RENUM, che cambiava i numeri di tutte le righe già inserite con un passo costante) ...

Come capisci, quando crei un programma più o meno complesso, è quasi impossibile prevedere quante righe ci saranno e in quale ordine seguiranno.

Pertanto, per garantire la successiva modifica del programma, è diventata consuetudine numerare le righe con un passo di 10 (e talvolta di più). Ciò ha permesso, nella maggior parte dei casi, di inserire nuove righe senza problemi senza modificare i numeri di riga precedentemente inseriti.

Considereremo un esempio un po 'più tardi, quando familiarizzeremo con la sintassi del linguaggio BASIC.

Sintassi del linguaggio BASIC

Il terminatore è la fine della riga. Per inserire più operatori su una riga, è necessario inserire i due punti tra di loro (ciò non era consentito in tutte le implementazioni del linguaggio).

Il programma BASIC più semplice:

10 STAMPA "Hello, WORLD!"

Basic non è un linguaggio sensibile al maiuscolo / minuscolo. Cioè, per Basic, le parole PRINT e print sono la stessa cosa. Questo vale non solo per le parole chiave, ma anche per i nomi delle variabili. Sebbene alcune implementazioni del linguaggio facciano distinzione tra maiuscole e minuscole in tutto o in parte (ad esempio, Liberty BASIC).

I nomi delle variabili devono iniziare con una lettera e possono essere costituiti da lettere e numeri latini. Per creare una variabile di tipo stringa, era necessario aggiungere un segno di dollaro ($) dopo il nome.

Per esempio:

X \u003d 100 "Variabile numerica X $ \u003d" Hello "" Variabile stringa

Le espressioni sono simili alle espressioni nella maggior parte degli altri linguaggi di programmazione procedurale, ma ce n'erano alcune nelle prime versioni di Basic. Nelle prime versioni, il numero di parole chiave era inferiore a 20 (questa è la bellezza di BASIC))).

Non è necessario dichiarare variabili semplici. Scriviamo semplicemente il nome della variabile ovunque nel programma, e il gioco è fatto. Tuttavia, gli array devono essere dichiarati.

I seguenti sono i costrutti linguistici più elementari che sono stati implementati in quasi tutti i sistemi BASIC della fine degli anni '70 (molti di questi costrutti sono supportati dalle moderne implementazioni del linguaggio Basic):

ELENCO
Emissione al monitor del testo del programma nella corretta sequenza di righe.

CORRERE
In esecuzione programma corrente dal primo operatore della riga con il numero più basso.

REM
Commento. Il testo dopo la parola chiave e alla fine della riga è un commento. Molti interpreti supportano anche le virgolette singole come inizio di un commento. "Alcuni interpreti accettano la parola REM solo se si trova proprio all'inizio di una riga.

INGRESSO
Visualizza il testo del prompt sul monitor e attende che l'utente immetta un valore e prema INVIO.

STAMPA
Visualizza i dati sul monitor (testo e valori variabili).

CLS
Cancella lo schermo.

DIM
Descrizione dell'array. A differenza delle variabili regolari, gli array richiedono una dichiarazione preventiva.

Etichetta GOTO
Comando di salto incondizionato a Etichetta.

SE POI ...
Il solito operatore di ramificazione. Dopo IF, viene inserita una condizione logica, dopo THEN - un operatore che deve essere eseguito se questa condizione è vera.

FINE
Fine dell'esecuzione del programma. Il sistema esce dall'interprete e all'utente viene richiesto di immettere i comandi.

SALVA
Comando modalità interattivache salva il programma corrente in un file in supporti esterni.

CARICARE
Un comando interattivo che carica un programma in memoria da un file su un supporto esterno. Questo di solito rimuove il programma caricato in precedenza ei dati dalla memoria.

Un esempio di programma BASIC:

10 CLS "Cancella schermo 20 PRINT" Hello WORLD !!! "30 X \u003d 100" Assegna 100 alla variabile X 40 INPUT "Inserisci un numero:"; Y 50 PRINT Y; "*"; X; "\u003d"; X * Y 60 FINE

Interpreti di base

Uno degli interpreti BASIC più famosi è QBasic di Microsoft. Per molti anni è stato fornito gratuitamente con i sistemi operativi MS-DOS e Windows. QBasic aveva buone capacità grafiche e sonore all'epoca. Pertanto, anche i giochi sono stati creati su QBasic (uno dei miei amici l'ha fatto - non quello che è nella foto, ma qualcosa del genere))).

Le versioni successive di BASIC (a partire da Turbo Basic e Visual Basic) sono molto diverse dalle implementazioni precedenti. In effetti, questo è un nuovo linguaggio che sembra già più simile a Fortran o Pascal rispetto al BASIC originale (sebbene siano supportati molti costrutti).

BASIC ha avuto la sua seconda vita con l'avvento di Visual Basic da Microsoft. Ma, nonostante la sua popolarità, nel 2001 Microsoft ha abbandonato l'ulteriore supporto per Visual Basic (se non erro l'ultima versione di Visual Basic era la 6.5) a favore di un linguaggio fondamentalmente nuovo Visual Basic .NET, dove il linguaggio è stato nuovamente "ridisegnato" e "alterato" è incentrato sulla tecnologia multipiattaforma .NET e allo stato attuale coincide praticamente nel set di funzionalità con il linguaggio C #. Le differenze sono solo nella sintassi e nelle parole chiave.

Quindi Basic è passato da programmatore dilettante non professionista a programmatore a tutti gli effetti.

Oltre a scrivere programmi a tutti gli effetti, BASIC è ampiamente utilizzato come base per vari linguaggi di scripting (ad esempio, le macro nel pacchetto Microsoft Office sono scritte nel dialetto VBA, il linguaggio di scripting VBScript viene utilizzato nei sistemi SCADA e altri programmi simili).

Quante persone, tante opinioni

Anche nei suoi periodi migliori (1970 ... 1980), BASIC è stato sottoposto a dure critiche (tuttavia, come quasi tutti gli altri linguaggi di programmazione, ci piace criticare).

Ovviamente BASIC aveva molti difetti. Ma è stato concepito così! Sì, con degli svantaggi. Ma d'altra parte, è semplice e comprensibile anche per le discipline umanistiche.

Fondamentalmente, i programmatori professionisti hanno ridotto in frantumi il BASIC per il fatto che la sua semplicità e mancanza di strutturazione hanno portato al fatto che i programmatori alle prime armi, cercando di ridurre il tempo per creare programmi, dimenticano completamente l'approccio "corretto" alla programmazione. Questo è accettabile quando si scrivono programmi semplici, ma quasi sempre porta al fallimento quando si lavora su grandi progetti seri.

Molti professionisti erano anche veementemente contrari all'uso di Basic per insegnare ai principianti. L'autorità Edsger Dijkstra, ben nota nel mondo dei programmatori, ha affermato che era quasi impossibile insegnare agli studenti che avevano precedentemente studiato BASIC una buona programmazione. E che come aspiranti programmatori sono mentalmente paralizzati senza alcuna speranza di guarigione.

Nonostante l'autorità di Dijkstra, non sono d'accordo con lui su questo. Ciò che viene attribuito ai difetti del BASIC sono infatti i suoi punti di forza. Gli svantaggi del BASIC (se intendiamo i primi dialetti) compaiono quando cerchi di sviluppare programmi complessi e di grandi dimensioni in modo professionale e quando lo usi come linguaggio di base per insegnare ai programmatori, ma per nessuna di queste applicazioni data lingua non era previsto. Il suo compito principale era fornire agli studenti non programmatori l'opportunità, dopo una formazione minima, di scrivere autonomamente i programmi più semplici per le proprie esigenze, in modo da non distrarre gli specialisti da questo lavoro. La lingua risolve questo problema con successo.

Se parliamo di dialetti moderni e implementazioni del BASIC, allora si sono allontanati così tanto dalla forma originale del linguaggio che tutto quanto sopra può difficilmente essere considerato correlato a loro. I dialetti moderni del BASIC sono linguaggi abbastanza strutturati, sono comparabili nelle capacità con linguaggi come C, Pascal, ecc.

Il linguaggio Basic (anche le sue prime implementazioni, come QBasic), è abbastanza adatto per l'apprendimento, perché dal mio punto di vista non ci sono assolutamente problemi, se necessario, quindi impara un'altra lingua. Forse negli anni '60 del secolo scorso questo era il problema - non lo so (sono nato nel 1969). Ma ora no.

Inoltre, oggi non hai davvero bisogno di riqualificarti, poiché puoi creare i tuoi fantastici programmi, ad esempio, in Visual Basic.

E sotto la loro guida, è stato implementato da un team di studenti universitari. Nel corso del tempo, quando iniziarono ad apparire altri dialetti, l'implementazione originale iniziò a essere chiamata Dartmouth BASIC.

BASIC è stato progettato in modo che gli studenti possano scrivere programmi senza difficoltà utilizzando terminali di condivisione del tempo. Era destinato a utenti più "semplici", non tanto interessati alla velocità di esecuzione del programma, ma semplicemente alla capacità di utilizzare un computer per risolvere i propri problemi senza una formazione specifica.

Il linguaggio è stato progettato utilizzando i seguenti otto principi. La nuova lingua doveva:

  1. essere facile da usare per principianti;
  2. essere un linguaggio di programmazione scopo generale;
  3. fornire un'opportunità funzionalità in espansionea disposizione di programmatori esperti;
  4. essere interattivo;
  5. fornire messaggi di errore chiari;
  6. lavorare velocemente su piccoli programmi;
  7. non richiedono una comprensione del funzionamento dell'hardware;
  8. proteggere l'utente dal sistema operativo.

Il linguaggio era basato in parte su Fortran II e in parte su Algol 60, con aggiunte che lo rendevano conveniente per il time-sharing e, successivamente, per l'elaborazione di testi e l'aritmetica delle matrici. BASIC è stato originariamente implementato sul mainframe GE-265 con supporto per più terminali. Contrariamente alla credenza popolare, al momento del suo inizio era un linguaggio compilato.

Crescita

Nonostante il linguaggio fosse già utilizzato su diversi mini-computer, la sua vera diffusione è iniziata con la sua comparsa sul microcomputer Altair 8800. Molti linguaggi di programmazione erano troppo grandi per entrare nella piccola memoria che gli utenti di tali macchine potevano permettersi. Per macchine lente come un nastro di carta (in seguito audiocassetta) e senza un editor di testo adatto, un linguaggio piccolo come BASIC è stata una grande scoperta.

Scadenza

Il periodo di maggiore prosperità e sviluppo del BASIC originale può essere considerato la fine degli anni '70 - la prima metà degli anni '80. Durante questo periodo, quasi tutti i personal computer avevano il proprio interprete BASIC, spesso collegato alla ROM, che nei computer più semplici spesso svolgeva le funzioni di un sistema operativo. Praticamente tutti i computer più potenti avevano anche sistemi BASIC interattivi. Tipicamente, non c'era praticamente nessuno compilatori BASIC, la stragrande maggioranza delle implementazioni era un ibrido standard di un editor di riga e un interprete. L'insoddisfazione per il primitivismo del BASIC originale ha dato origine a tentativi di migliorare i mezzi di base del linguaggio, che hanno portato alla comparsa in alcune implementazioni di operatori di ramificazione complessi, tipi aggiuntivi di cicli, procedure denominate con parametri.

Diverse nuove versioni di BASIC sono state create per la piattaforma PC IBM. Microsoft ha venduto BASIC per MS-DOS / PC DOS, inclusi BASICA, GW-BASIC (una modifica BASICA che non richiedeva il firmware IBM) e QuickBASIC. Borland, che originariamente era entrato nel mercato con il suo famoso Turbo Pascal, ha rilasciato Turbo Basic 1.0 basato sullo stesso ambiente software nel 1985 (i suoi successori furono successivamente venduti da un'altra società con il nome PowerBASIC). Diversi altri linguaggi hanno utilizzato la ben nota sintassi BASIC come base su cui è stato costruito un sistema completamente diverso (vedere ad esempio GRASS). Il desiderio di aumentare le prestazioni dei programmi BASIC ha portato alla nascita di compilatori a tutti gli effetti (come, ad esempio, il citato Turbo Basic), nonché sistemi "ibridi" in cui, pur mantenendo l'interpretazione come metodo principale di esecuzione del programma, è stata implementata la compilazione parziale "al volo", ad esempio compilazione di brevi loop. Inoltre, almeno sulla piattaforma IBM, si è diffusa la pseudo compilazione di programmi BASIC, quando un traduttore traduceva un programma BASIC in pseudocodice (spesso reversibile) e formava un programma eseguibile dal modulo oggetto dell'interprete e un modulo codificato con il testo del programma. Un tale programma veniva eseguito ed eseguito come un normale programma oggetto compilato, sebbene rimanesse essenzialmente interpretato.

A metà degli anni '80, il BASIC divenne il linguaggio principale in modelli sofisticati di calcolatrici programmabili, che a quel tempo avevano raggiunto la potenza di un vero e proprio linguaggio di alto livello. Il fatto stesso che molti produttori, senza dire una parola, abbiano scelto BASIC come base per le calcolatrici JAVU, parla soprattutto della prevalenza e della popolarità di questa lingua nel momento specificato. Quindi, BASIC è stato integrato nella calcolatrice sovietica "Electronics MK-85" e in tutti i suoi modelli successivi. L'uso del BASIC come il principale Java delle calcolatrici programmabili continua ancora oggi; attualmente, è la "calcolatrice" BASIC che è più simile alla versione originale degli anni '60 -'80, ad esempio, l'implementazione per le calcolatrici CITIZEN contiene solo 14 parole chiave (senza contare le funzioni matematiche) e consente solo nomi di variabili di un carattere.

Alla fine degli anni '80, i personal computer erano diventati molto più potenti e fornivano capacità (come un'interfaccia utente grafica) che non erano più così facili da usare in BASIC. Inoltre, l'apparizione sui computer delle classi "educative" e "domestiche" di traduttori economici di linguaggi industriali (principalmente Pascal e C), accompagnati da comodi ambienti di programmazione e utili librerie (ad esempio, Borland Pascal con la libreria Turbo Vision) ha creato una forte concorrenza per BASIC. BASIC iniziò a perdere terreno, nonostante il fatto che un numero enorme delle sue versioni fosse ancora in uso e venduto. Allo stesso tempo, iniziò un rapido cambiamento nell'aspetto di quei sistemi BASIC che rimasero in funzione. Ci fu una graduale "deriva" verso linguaggi strutturali riconosciuti: il vocabolario e l'insieme delle costruzioni linguistiche si espansero, rami complessi, subroutine e funzioni denominate, apparvero lunghi nomi di variabili. Inoltre, le maggiori capacità dei personal computer hanno permesso di abbandonare le caratteristiche del BASIC, introdotto per garantire un lavoro interattivo efficace su un terminale di testo: etichette numeriche per ogni riga e modifica della riga.

Descrizione

La sintassi del linguaggio assomiglia a Fortran e molti elementi sono espliciti mutui da esso. La lingua è stata concepita per l'insegnamento, quindi le sue costruzioni sono il più semplici possibile. Come con altri linguaggi di programmazione, le parole chiave vengono prese da in inglese... Esistono due tipi di dati principali: stringhe e numeri. Con la comparsa della versione Visual Basic, così come le sue varie modifiche (come VBA), molti altri tipi di dati e aggiunte tipici dei linguaggi di programmazione moderni (ad esempio, come il modello a oggetti) sono apparsi nel linguaggio. Le dichiarazioni di variabili non richiedono una sezione speciale (a differenza di Pascal). La dichiarazione di una variabile è il primo utilizzo di essa.

Le prime versioni di BASIC (come BASICA, GW-BASIC) differiscono in modo significativo dai dialetti moderni e non sono praticamente utilizzate oggi.

Prime versioni

L'aspetto dei programmi nelle prime versioni di BASIC era in gran parte determinato dal fatto che era inteso per un ambiente di programmazione con un editor di testo basato su righe. In un editor di questo tipo, l'utente non era in grado di visualizzare tutto il testo sullo schermo (nella finestra), spostarsi attraverso di esso in qualsiasi direzione utilizzando la tastiera e / o il mouse. Negli editor di riga, per modificare una riga di testo, l'utente deve dare il comando per cambiare la riga con il numero specificato, quindi inserire il nuovo testo della riga specificata. Per inserire una nuova riga, è necessario dare il comando di inserimento, specificando nuovamente il numero. Le righe immesse vengono visualizzate sullo schermo in sequenza (indipendentemente dai numeri). Per vedere le modifiche apportate, viene utilizzato il comando di output del testo, che emette le righe nell'ordine corretto (numeri crescenti).

Tutto questo si rifletteva in BASIC. Ogni riga inizia con un numero. Una volta inserita nell'editor, la riga appariva nel codice sorgente del programma nella posizione corrispondente al suo numero. Per inserire una nuova riga, era necessario aggiungere una riga con un numero che fosse compreso nell'intervallo tra i numeri delle altre due righe. Non era possibile "spostare" le righe se era necessario inserire una nuova riga tra righe con numeri adiacenti, era necessario reinserire queste righe con numeri diversi per poter fornire un'interruzione nella numerazione (oppure utilizzare l'apposito comando RENUM, che rinumerava tutte le righe già inserite con passo costante, in modo sincrono cambiando tutti i comandi di transizione). Per semplificare l'editing in linea del programma, si è sviluppata la pratica di numerare le righe con un passo di 10, questo ha reso possibile in quasi tutti i casi di inserire nuove righe senza modificare i numeri precedentemente inseriti. Ad esempio, per aggiungere una terza riga tra le righe 20 e 30, è stato necessario scrivere la riga 25. Una riga tipica di un programma BASIC era simile a questa:

10 STAMPA "Hello, World!"

Non era sicuro modificare manualmente i numeri delle righe esistenti, poiché i numeri servivano come etichette per l'istruzione GOTO. In precedenza, in BASIC, erano consentite solo etichette numeriche per questo operatore e la presenza in ogni riga numero unico ha reso possibile passare incondizionatamente a uno qualsiasi di essi. Le etichette numeriche e l'uso attivo di GOTO erano inevitabili durante la programmazione in BASIC, il che ha contribuito a una struttura del codice scadente e in grandi progetti ha portato a confusione degli autori stessi. Hanno persino coniato il termine scherzoso "codice spaghetti" perché la logica di un programma con frequenti salti GOTO ricorda un piatto di spaghetti.

La fine della dichiarazione era la fine della riga. Per inserire più operatori su una riga, è necessario inserire i due punti tra di loro (questo non era consentito in tutte le implementazioni del linguaggio). I nomi delle variabili nella maggior parte dei dialetti potevano consistere solo di una lettera, dopo di che si poteva aggiungere una cifra, il che non migliorava la comprensione del codice. Per creare una variabile di tipo stringa, era necessario aggiungere un segno di dollaro ($) dopo il nome. Una variabile senza questo segno era numerica (virgola mobile). C'erano molti altri modificatori relativi al tipo numerico: segno di percentuale (%) - tipo intero, punto esclamativo (!) - precisione regolare, octotorp (#) - doppia precisione (per dati in virgola mobile, cioè frazioni decimali). In alcune versioni, i modificatori numerici potrebbero non essere applicabili o non tutti. Nella stragrande maggioranza dei programmi, è stato utilizzato solo il tipo numerico di base

Le espressioni sono simili alla maggior parte degli altri linguaggi di programmazione procedurale, ma nelle prime versioni di Basic, il loro set era piuttosto scarso. Nelle prime varianti, il numero di parole chiave non raggiungeva nemmeno 20. Ecco una serie di costrutti di programmazione di base e comandi interattivi che furono implementati in quasi tutti i sistemi BASIC della fine degli anni '70:

  • LIST - Emissione al monitor del testo del programma nella corretta sequenza di righe. A seconda dell'implementazione, il comando supportava i parametri: l'intervallo di righe da visualizzare. A volte era supportata l'opzione LLIST - output su un dispositivo di stampa.
  • RUN - Esegue il programma corrente dalla prima istruzione nella riga con il numero più basso. Il parametro potrebbe essere supportato: il numero di riga da cui iniziare l'esecuzione.
  • REM - Commento. Il testo dopo la parola chiave e fino alla fine della riga non ha influenzato l'esecuzione del programma. Molti interpreti hanno anche sostenuto la citazione singola "come carattere di inizio del commento".
  • INPUT "Prompt:", Variabile - Invia al monitor il testo "Prompt:" e attendi che l'utente inserisca un valore e prema Invio. Dopodiché, il valore immesso verrà scritto nella variabile. Nelle implementazioni più semplici, il prompt di INPUT non era supportato e doveva essere stampato come un operatore PRINT separato (vedere di seguito).
  • STAMPA "Testo"; Variabile; Variabile; "Testo" - Visualizzazione di oggetti elencati in sequenza (testo e valori di variabili) sul monitor. A seconda dell'implementazione, i delimitatori erano percepiti in modo diverso: in alcuni casi il delimitatore portava all'output di almeno uno spazio, in altri i valori venivano visualizzati in una riga e i delimitatori dovevano essere aggiunti manualmente. Delimitatore ";" svolgeva anche la funzione di sopprimere la traduzione alla riga successiva.
  • CLS - Cancella lo schermo del terminale. A seconda dell'implementazione, del design e della modalità operativa del terminale, il cursore del testo è stato spostato in alto a sinistra o in basso a sinistra.
  • LET - Assegnazione (formato "LET Variabile \u003d Valore"). Nella stragrande maggioranza delle versioni, l'operatore LET era supportato, ma era facoltativo: assegnazioni valori variabili registrato senza LET).
  • DIM - Descrizione dell'array. A differenza delle variabili regolari, gli array richiedevano una descrizione. Il numero massimo di dimensioni di un array è stato determinato solo dall'implementazione
  • DATI - Un insieme di dati inseriti direttamente nel testo del programma (analogo di una costante o costante di matrice).
  • READ - Comando per leggere dal set di DATI.
  • GOTO Lbl - Comando di salto incondizionato all'etichetta Lbl.
  • ON… GOTO - Comando ramo calcolato - dopo ON dovrebbe esserci un'espressione o variabile calcolata, e dopo GOTO - un insieme di etichette separate da virgole. Il valore dell'espressione indicava il numero dell'etichetta a cui saltare.
  • SE ... ALLORA ... - Il solito operatore di ramificazione. Dopo IF, viene inserita una condizione logica, dopo THEN - un operatore che deve essere eseguito se questa condizione è vera. Per abbreviare la notazione, molte implementazioni hanno supportato la convenzione: se THEN è seguito da un numero, allora questa è l'etichetta a cui andare, ovvero la forma "IF ... THEN 150" è equivalente a "IF ... THEN GOTO 150". Anche i moduli "IF ... GOTO ..." potrebbero essere supportati
  • FOR Loop Variable \u003d StartValue TO EndValue STEP Step - Intestazione del loop con passo. Avvia un ciclo in cui la variabile passa in sequenza attraverso una serie di valori da StartValue a EndValue in incrementi di Step. Il corpo del ciclo è delimitato dall'intestazione e dalla parola chiave NEXT. La parte STEP potrebbe essere omessa: in questo caso, il passaggio era è uguale a uno... Quando LoopVariable supera i limiti specificati, si dirama oltre l'istruzione NEXT corrispondente.
  • NEXT - Completamento del corpo del loop con un passaggio. L'operatore indica che è necessario andare al titolo dell'eseguibile corrente ciclo FOR e continua a lavorare. Nelle implementazioni più avanzate, NEXT poteva contenere un elenco separato da virgole di variabili di ciclo - questo significava che in un dato punto del programma il corpo di non uno, ma di più cicli finisce. L'utilizzo di NEXT con una variabile assicurava anche contro la violazione della logica del programma, poiché causava un errore di runtime se, durante l'esecuzione di questo comando, risultava attivo un loop su una variabile diversa di cui era stato specificato il nome.
  • WHILE Condizione - Intestazione del ciclo con una precondizione. Il ciclo terminava se la condizione era falsa. In questo caso, l'istruzione WEND corrispondente all'intestazione è stata saltata.
  • WEND - Completamento del corpo del ciclo WHILE. NEXT analogico ma per un loop con una precondizione.
  • Etichetta GOSUB - Salta a una subroutine che inizia con Etichetta. Il ritorno si verifica quando viene raggiunta l'istruzione RETURN. Le chiamate di procedura ricorsiva erano generalmente proibite e davano come risultato un errore di runtime.
  • RETURN - Istruzione di ritorno della subroutine. Viene eseguito un salto incondizionato all'istruzione che segue il comando GOSUB che è passato alla subroutine.
  • END - Fine dell'esecuzione del programma. Il sistema esce dall'interprete e all'utente viene richiesto di immettere i comandi.
  • CATENA - Carica un intervallo di righe di programma da un supporto esterno.
  • OPEN - Apre un file di dati su un supporto esterno.
  • CLOSE - Chiusura del file di dati su supporto esterno.
  • GET - Lettura sequenziale dei valori delle variabili specificate dal file, spostando il puntatore del file oltre l'ultimo carattere letto.
  • PUT - Scrittura sequenziale dei valori delle variabili specificate in un file, spostando il puntatore del file oltre l'ultimo carattere scritto.
  • DELETE - Comando della modalità interattiva - elimina la riga con il numero specificato.
  • SALVA - Comando della modalità interattiva - salva il programma corrente in un file su un supporto esterno.
  • LOAD - Comando modalità interattiva - carica il programma in memoria da un file su un supporto esterno. Di norma, per impostazione predefinita, ha portato alla distruzione del programma e dei dati precedentemente caricati.
  • RENUM - Comando modalità interattiva - rinumerazione di tutte o di un intervallo specificato di righe di programma a partire da un numero specificato con un passaggio specificato. Per impostazione predefinita, tutte le righe del programma vengono rinumerate in incrementi di 10.

L'operatore condizionale (IF..THEN) inizialmente aveva un solo ramo: il ramo ELSE era assente ed è stato modellato utilizzando un salto incondizionato. Quindi, nel seguente programma, viene eseguita un'operazione elementare - inserendo un numero e visualizzando il messaggio "Numero negativo" o "Numero positivo o zero", a seconda del suo valore:

10 INPUT I 20 IF I\u003e \u003d 0 THEN PRINT "Numero positivo o nullo": GOTO 40 30 PRINT "Numero negativo" 40 END

C'era un operatore di salto da un'etichetta calcolata ON..GOTO (ereditato da una costruzione Fortran simile) - in esso, dopo ON, era indicata un'espressione numerica e dopo GOTO, un elenco di numeri di riga. Il passaggio è avvenuto alla riga, il cui numero nell'elenco corrispondeva al valore dell'espressione. Ci sono anche dei loop (un loop con un contatore FOR e un loop con una precondizione WHILE).

L'uso di funzioni definite dall'utente (sezioni di codice per uso ripetuto) era possibile in due modi: funzioni definite e subroutine.

Le subroutine non erano analoghe alle funzioni in linguaggi come C o Pascal, poiché non avevano nomi e non potevano accettare e / o restituire parametri. Parametri e risultati venivano passati attraverso variabili globali (tutte le variabili nelle prime versioni di BASIC erano globali). Le subroutine venivano solitamente scritte alla fine di un modulo, con una numerazione ovviamente maggiore del numero di righe previsto (ad esempio, la numerazione di un blocco di subroutine poteva iniziare da 5000, anche se il programma avesse un paio di centinaia di righe). Le subroutine non avevano intestazioni o nomi e non erano diverse da qualsiasi altra parte di codice. La subroutine è stata chiamata utilizzando la parola chiave GOSUB<метка> ... Questo è praticamente un clone GOTO, con l'eccezione di una cosa: il ritorno al call point è avvenuto automaticamente quando è stata raggiunta la parola chiave RETURN nella subroutine. GOSUB, come GOTO, ha contribuito solo alla scarsa struttura del codice, poiché era difficile tracciare l'esecuzione di un programma contenente un gran numero di rami e subroutine incondizionati. La ricorsione non era consentita.

L'incapacità di nominare le subroutine (e di passare il controllo attraverso di esse), l'incapacità di passare parametri, la mancanza di variabili locali, l'uso di sole etichette numeriche in grandi progetti hanno causato confusione nel codice e reso il debug molto difficile.

In alcuni dialetti del BASIC era possibile caricare un file con un codice direttamente durante l'esecuzione del programma (quello attuale è stato scaricato) utilizzando l'operatore CHAIN. Questa era una delle caratteristiche più utili del linguaggio, in quanto permetteva di suddividere un grande progetto in moduli, chiamandoli secondo necessità.

Critica

Durante il suo periodo di massimo splendore (1970-1980), BASIC fu severamente criticato. Oltre ad affermare le evidenti carenze del linguaggio associate alla povertà sintattica delle prime versioni e alla mancanza di molti costrutti e meccanismi riconosciuti e convenienti, BASIC è stato criticato per il fatto che la sua semplicità e assenza di struttura incoraggia l'uso di metodi di sviluppo imperfetti e contribuisce allo sviluppo di pericolose abitudini di programmazione che a volte possono essere appropriate quando creare rapidamente piccoli programmi per le esigenze attuali, ma può portare al crollo di grandi progetti.

L'onnipresente educazione alla programmazione iniziale basata su BASIC è stata duramente criticata. Uno dei "biglietti da visita" di Edsger Dijkstra è stata la dichiarazione:

È quasi impossibile insegnare una buona programmazione a studenti che hanno già studiato Basic. Come potenziali programmatori, sono mentalmente paralizzati senza alcuna speranza di ripresa.

Testo originale (Inglese)

È praticamente impossibile insegnare una buona programmazione a studenti che hanno avuto una precedente esposizione al BASIC: come potenziali programmatori sono mentalmente mutilati oltre ogni speranza di rigenerazione

In risposta alle critiche, gli aderenti al BASIC notano che i critici attribuiscono al linguaggio quegli aspetti negativi che dovrebbero essere attribuiti al suo uso improprio. Gli svantaggi del BASIC (se intendiamo i primi dialetti) si manifestano quando si cerca di sviluppare professionalmente programmi complessi e di grandi dimensioni su di esso e quando lo si utilizza come linguaggio di base per insegnare ai programmatori, ma questo linguaggio non era inteso per nessuna di queste applicazioni; il suo compito principale era fornire agli studenti non programmatori opportunità dopo minimo imparare a scrivere in modo indipendente protozoi programmi per le proprie esigenzeper non distrarre gli specialisti per questo lavoro. Il linguaggio è abbastanza coerente con questo compito.

Se parliamo di dialetti moderni e implementazioni del BASIC, allora si sono allontanati così tanto dalla forma originale del linguaggio che tutto quanto sopra può difficilmente essere considerato correlato a loro. I dialetti moderni del BASIC sono linguaggi abbastanza strutturati, sono paragonabili in capacità a linguaggi come C, Pascal, ecc.

Produttori

In tempi diversi, gli interpreti BASIC sono stati prodotti da varie organizzazioni, aziende, aziende:

Sovietico:

  • Università di Vilnius - Vilnius
  • Centro di calcolo SB AS USSR - Novosibirsk
  • Università statale Lobachevsky di Nizhny Novgorod - Nizhny Novgorod

Implementazione

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

Scrivi una recensione sull'articolo "Basic"

Appunti

Letteratura

  • Dyakonov V., Munerman V., Samoylova T., Yemelchenkov Ye. La guida rivoluzionaria a QBASIC. - Birmingham: Wrox Press Ltd, 1996 - 578 p.
  • Dyakonov V.P. Libro di consultazione su algoritmi e programmi in linguaggio BASIC per personal computer. - M .: Nauka, Fizmatlit, 1987 - 240 p.
  • Dyakonov V.P. Utilizzo di personal computer e programmazione in linguaggio BASIC. - M .: Radio e comunicazione, 1989 - 288 p.
  • Dyakonov V.P. Microcalcolatori stranieri moderni. - M .: SOLON-R, 2002 .-- 400 p.
Standard
  • ANSI X3.60-1978 "PER MINIMAL BASIC"
  • ISO / IEC 6373: 1984 "ELABORAZIONE DATI - LINGUE DI PROGRAMMAZIONE - BASE MINIMA"
  • ANSI X3.113-1987 "LINGUE DI PROGRAMMAZIONE COMPLETAMENTE BASE"
  • GOST 27787-88 "BASIC Programming Language" (include lo standard ISO 6373: 1984)
  • ANSI X3.113 INTERPRETAZIONE-1992 "BOLLETTINO DI INFORMAZIONI TECNICHE DI BASE # 1 INTERPRETAZIONI DI ANSI 03.113-1987"

Collegamenti

  • Andrey Kolesov. Versione dell'autore. con piccole revisioni letterarie nella rivista "Science and Life" n. 10/2000, p. 18-20.
  • Dartmouth College Preprint 1 ottobre 1964.
  • Thomas E. Kurtz. , 1977.
  • (Inglese)

Estratto BASIC

Così stranamente all'improvviso per Natasha sembrò la sua voce mite, gentile, piena di sentimento.
- Non parleremo, amico mio, gli dirò tutto; ma una cosa ti chiedo - considerami tuo amico, e se hai bisogno di aiuto, consiglio, devi solo riversare la tua anima a qualcuno - non ora, ma quando è chiaro nella tua anima - ricordati di me. La prese e le baciò la mano. - Sarò felice se potrò ... - Pierre era imbarazzato.
- Non parlarmi così: non ne valgo la pena! Natasha urlò e voleva lasciare la stanza, ma Pierre le tenne la mano. Sapeva di aver bisogno di qualcos'altro da dirle. Ma quando ha detto questo, è rimasto sorpreso dalle sue stesse parole.
"Fermati, fermati, tutta la tua vita è avanti per te", le disse.
- Per me? No! È andato tutto per me ”, ha detto con vergogna e autoironia.
- Tutto è perduto? Ha ripetuto. - Se non fossi io, ma la più bella, la più intelligente e persona migliore nel mondo, e sarei libero, sarei in ginocchio in questo momento per la tua mano e il tuo amore.
Per la prima volta dopo molti giorni Natasha pianse con lacrime di gratitudine e affetto e, guardando Pierre, lasciò la stanza.
Anche Pierre quasi le corse dietro nell'atrio, trattenendo lacrime di emozione e di felicità che gli premevano sulla gola, senza cadergli nelle maniche, indossò una pelliccia e si sedette sulla slitta.
- Ora dove ordinerai? Ha chiesto il cocchiere.
"Dove? Si chiese Pierre. Dove puoi andare adesso? È per il club o per gli ospiti? " Tutte le persone sembravano così pietose, così povere in confronto ai sentimenti di affetto e amore che provava; in confronto allo sguardo ammorbidito e grato che l'aveva guardato l'ultima volta a causa delle sue lacrime.
- A casa, - disse Pierre, nonostante dieci gradi di gelo, aprendo una pelliccia d'orso sul suo ampio petto che respirava felice.
Era gelido e limpido. Sulle strade sporche e semioscure, sui tetti neri, c'era un cielo scuro e stellato. Pierre, solo guardando il cielo, non sentiva l'insultante bassezza di tutto ciò che è terreno rispetto all'altezza alla quale si trovava la sua anima. All'ingresso di piazza Arbat, si aprì agli occhi di Pierre un enorme spazio di cielo scuro e stellato. Quasi nel mezzo di questo cielo sopra Prechistensky Boulevard, circondato, disseminato di stelle su tutti i lati, ma diverso da tutti per la sua vicinanza alla terra, la luce bianca e una lunga coda all'insù, c'era un'enorme cometa luminosa del 1812, la stessa cometa che prefigurava come hanno detto, tutti i tipi di orrori e la fine del mondo. Ma in Pierre, questa stella luminosa con una coda lunga e radiosa non suscitava alcuna sensazione terribile. Di fronte, Pierre guardava con gioia, con gli occhi bagnati di lacrime, questa stella luminosa, che, come se, con una velocità inesprimibile, volando spazi incommensurabili lungo una linea parabolica, all'improvviso, come una freccia che trafigge il terreno, sbatté in un luogo che aveva scelto, nel cielo nero, e si fermò, la sua coda si alzò vigorosamente, splendendo e giocando con la sua luce bianca tra innumerevoli altre stelle scintillanti. A Pierre sembrava che questa stella corrispondesse pienamente a ciò che era nella sua anima, che sbocciò a una nuova vita, addolcita e incoraggiata.

Dalla fine del 1811 iniziò l'intensificazione degli armamenti e la concentrazione delle forze dell'Europa occidentale, e nel 1812 queste forze - milioni di persone (comprese quelle che trasportavano e nutrivano l'esercito) si trasferirono da ovest a est, ai confini della Russia, a cui allo stesso modo dal 1811 l'anno in cui le forze della Russia sono state riunite. Il 12 giugno, le forze dell'Europa occidentale attraversarono i confini della Russia e iniziò una guerra, cioè un evento contrario alla ragione umana e alla natura umana. Milioni di persone hanno commesso, l'una contro l'altra, un numero così infinito di atrocità, inganni, tradimenti, furti, falsificazioni e l'emissione di banconote false, rapine, incendi dolosi e omicidi, che per secoli non saranno raccolti dalla cronaca di tutte le corti del mondo e per i quali, durante questo periodo di tempo, le persone coloro che li hanno commessi non li consideravano crimini.
Cosa ha causato questo evento straordinario? Quali erano le ragioni? Gli storici affermano con ingenua fiducia che le ragioni di questo evento furono l'insulto inflitto al duca di Oldenburg, il mancato rispetto del sistema continentale, la brama di potere di Napoleone, la fermezza di Alessandro, gli errori diplomatici, ecc.
Di conseguenza, valeva solo la pena che Metternich, Rumyantsev o Talleyrand, tra l'uscita e il ricevimento, si sforzassero di scrivere un pezzo di carta più ricercato o a Napoleone che scrivesse ad Alexander: Monsieur mon frere, je consens a rendre le duche au duc d "Oldenbourg, [Mio caro fratello, sono d'accordo restituire il ducato al duca di Oldenburg.] - e non ci sarebbe stata la guerra.
È chiaro che questo era il modo in cui l'attività sembrava ai contemporanei. È chiaro che a Napoleone sembrava che la causa della guerra fossero gli intrighi dell'Inghilterra (come lo disse sull'isola di Sant'Elena); è chiaro che ai membri della Casa inglese sembrava che la causa della guerra fosse la brama di potere di Napoleone; che sembrava al principe di Oldenburg che la causa della guerra fosse la violenza commessa contro di lui; che i mercanti pensavano che la causa della guerra fosse il sistema continentale che devastò l'Europa, che i vecchi soldati e generali sentivano che il motivo principale era la necessità di usarli negli affari; i legittimisti di quel tempo che era necessario ripristinare les bons principes [buoni principi], e i diplomatici di quel tempo che tutto accadde perché l'alleanza della Russia con l'Austria nel 1809 non fu abilmente nascosta a Napoleone e che il memorandum fu scritto goffamente per N. 178. È chiaro che queste e ancora innumerevoli, infinite ragioni, il cui numero dipende dalle innumerevoli differenze di punti di vista, sembravano contemporanee; ma per noi - discendenti, contemplando in tutta la sua portata l'enormità dell'evento accaduto e approfondendone il significato semplice e terribile, queste ragioni sembrano insufficienti. È incomprensibile per noi che milioni di cristiani si uccidessero e si torturassero a vicenda, perché Napoleone era assetato di potere, Alessandro era fermo, la politica dell'Inghilterra era astuta e il duca di Oldenburg era offeso. È impossibile capire quale connessione queste circostanze abbiano con il fatto stesso dell'omicidio e della violenza; perché, a causa del fatto che il duca fu offeso, migliaia di persone dall'altra parte dell'Europa uccisero e rovinarono le persone delle province di Smolensk e Mosca e furono uccise da loro.
Per noi, discendenti, non storici che non siamo trascinati dal processo di ricerca e quindi con un buon senso intatto che contemplano un evento, le sue cause sono presentate in innumerevoli numeri. Più ci addentriamo nella ricerca delle ragioni, più esse ci si aprono, e ogni singola ragione presa o una serie di ragioni ci sembra ugualmente giusta in se stessa, e altrettanto falsa nella loro insignificanza rispetto all'enormità dell'evento, e altrettanto falsa nella loro invalidità ( senza la partecipazione di tutti gli altri motivi coincidenti) per produrre l'evento che si è verificato. Lo stesso motivo del rifiuto di Napoleone di ritirare le sue truppe attraverso la Vistola e di restituire il ducato di Oldenburg, ci sembra il desiderio o la riluttanza del primo caporale francese a entrare nel servizio secondario: perché se non volesse entrare in servizio e non ne vorrebbe un altro, il terzo , e il millesimo caporale e soldati, così meno persone sarebbero state nell'esercito di Napoleone, e non ci sarebbe potuta essere una guerra.
Se Napoleone non fosse stato offeso dalla richiesta di ritirarsi oltre la Vistola e non avesse ordinato alle truppe di avanzare, non ci sarebbe stata la guerra; ma se tutti i sergenti non volessero entrare in servizio secondario, non potrebbe esserci nemmeno la guerra. Inoltre, non potrebbe esserci guerra, se non ci fossero intrighi d'Inghilterra, e non ci sarebbe il principe di Oldenburg e un sentimento di insulto in Alessandro, e non ci sarebbe potere autocratico in Russia, e non ci sarebbe la rivoluzione francese e la conseguente dittatura e impero, e tutto il resto che ha prodotto la rivoluzione francese, e così via. Senza uno di questi motivi, non sarebbe potuto accadere nulla. Pertanto, tutte queste ragioni - miliardi di ragioni - hanno coinciso per produrre ciò che era. E, quindi, niente era la causa esclusiva dell'evento, e l'evento sarebbe dovuto accadere solo perché doveva accadere. Milioni di persone, avendo rinunciato ai loro sentimenti umani e alla loro ragione, dovettero andare in Oriente dall'Occidente e uccidere i loro simili, proprio come pochi secoli fa folle di persone andarono dall'Est all'Ovest, uccidendo i loro simili.
Le azioni di Napoleone e di Alessandro, dalle cui parole dipendevano, sembrava, che l'evento si sarebbe verificato o meno, erano altrettanto poco arbitrarie delle azioni di ogni soldato che partecipava a una campagna a sorte o per reclutamento. Non poteva essere altrimenti, perché per adempiere la volontà di Napoleone e Alessandro (quelle persone da cui l'evento sembrava dipendere) era necessaria la coincidenza di innumerevoli circostanze, senza una delle quali l'evento non sarebbe potuto accadere. Era necessario che milioni di persone, nelle cui mani c'era il vero potere, i soldati che sparavano, portavano provviste e fucili, era necessario che accettassero di adempiere a questa volontà di persone isolate e deboli e che fossero condotte a questo da innumerevoli ragioni complesse e varie.
Il fatalismo nella storia è inevitabile per spiegare fenomeni irragionevoli (cioè quelli di cui non capiamo la razionalità). Più cerchiamo di spiegare razionalmente questi fenomeni nella storia, più irragionevoli e incomprensibili diventano per noi.
Ogni persona vive per se stessa, usa la libertà per raggiungere i suoi obiettivi personali e sente con tutto il suo essere che ora può fare o meno un'azione del genere; ma non appena lo fa, quest'azione, compiuta in un certo momento, diventa irreversibile e diventa proprietà della storia, nella quale non ha un significato libero, ma predeterminato.
Ci sono due lati della vita in ogni persona: la vita personale, che è più libera, più astratti sono i suoi interessi, e la vita spontanea, brulicante, dove una persona inevitabilmente adempie le leggi che le sono prescritte.
Una persona vive consapevolmente per se stessa, ma funge da strumento inconscio per raggiungere obiettivi umani storici e universali. Un'azione perfetta è irreversibile e la sua azione, coincidente nel tempo con le azioni di milioni di altre persone, acquista un significato storico. Più una persona si trova nella scala sociale, più persone è connessa, più potere ha sulle altre persone, più ovvia è la predeterminazione e l'inevitabilità di ogni sua azione.
"Il cuore dello Tsarevo è nelle mani di Dio".
Il re è schiavo della storia.
La storia, cioè la vita inconscia, comune, brulicante dell'umanità, usa ogni minuto della vita dei re per se stessa come uno strumento per i propri scopi.
Napoleone, nonostante il fatto che più che mai, ora, nel 1812, sembrava che verser o no verser le sang de ses peuples [versare o non versare il sangue dei suoi popoli] dipendesse da lui (come nell'ultima lettera che gli ho scritto Alexander), mai più di adesso non fu soggetto a quelle leggi inevitabili che lo costrinsero (agendo in relazione a se stesso, come gli sembrava, a sua discrezione) a fare per la causa comune, per la storia, quello che sarebbe dovuto accadere.
Gli occidentali si sono trasferiti in Oriente per uccidersi a vicenda. E secondo la legge della coincidenza delle ragioni, migliaia di piccole ragioni per questo movimento e per la guerra coincisero con questo evento: rimproveri per il mancato rispetto del sistema continentale, e del duca di Oldenburg, e il movimento delle truppe in Prussia, intrapreso (come sembrava a Napoleone) al solo fine di per raggiungere una pace armata, e l'amore e l'abitudine dell'imperatore francese per la guerra, in coincidenza con la disposizione del suo popolo, il fascino per la grandiosità dei preparativi e i costi di preparazione, e la necessità di acquisire tali benefici che coprissero questi costi, e inebrianti onori a Dresda e negoziati diplomatici, che, secondo il punto di vista dei contemporanei, erano guidati da un sincero desiderio di raggiungere la pace e che ferivano solo l'orgoglio dell'una e dell'altra parte, e milioni di milioni di altre ragioni, contraffando un evento che stava per accadere, in coincidenza con esso.
Quando la mela è matura e cade, perché cade? È perché gravita a terra, perché la verga si secca, perché si asciuga al sole, perché si appesantisce, perché il vento la scuote, perché il ragazzo che sta sotto vuole mangiarla?
Niente è il motivo. Tutto questo è solo una coincidenza delle condizioni in cui ha luogo ogni evento vitale, organico, elementare. E il botanico che scopre che la mela cade perché la fibra si sta decomponendo e simili saranno altrettanto giusti e altrettanto sbagliati del bambino in piedi sotto che dice che la mela è caduta perché voleva mangiare lui e che ha pregato per questo. Altrettanto giusto e sbagliato sarà colui che dice che Napoleone è andato a Mosca perché lo voleva, e perché è morto, perché Alessandro voleva la sua morte: quanto giusto e sbagliato sarà colui che dice che quello che è caduto in un milione di poods la montagna che è stata scavata è caduta perché l'ultimo operaio l'ha colpita un'ultima volta con un piccone. Negli eventi storici, le cosiddette grandi persone sono etichette che danno nomi all'evento, che, come le etichette, hanno il minimo legame con l'evento stesso.
Ciascuna delle loro azioni, che sembra loro arbitraria per se stesse, è in senso storico involontaria, ma è in relazione con l'intero corso della storia ed è determinata eternamente.

Il 29 maggio Napoleone lasciò Dresda, dove rimase per tre settimane, circondato da una corte composta da principi, duchi, re e persino un imperatore. Prima di partire, Napoleone trattò gentilmente i principi, i re e l'imperatore che lo meritavano, rimproverò i re ei principi con i quali non era completamente soddisfatto, presentò i suoi, cioè presi da altri re, perle e diamanti all'imperatrice d'Austria e, abbracciando teneramente l'imperatrice Maria Luisa, come dice il suo storico, la lasciò con una dolorosa separazione, che lei - questa Marie Louise, che era considerata sua moglie, nonostante un'altra moglie fosse rimasta a Parigi - sembrava incapace di sopportarla. Nonostante il fatto che i diplomatici credessero ancora fermamente nella possibilità della pace e lavorassero diligentemente verso questo obiettivo, nonostante il fatto che lo stesso imperatore Napoleone abbia scritto una lettera all'imperatore Alessandro, chiamandolo Monsieur mon frere [fratello sovrano] e assicurando sinceramente che non voleva guerra e che lui lo avrebbe sempre amato e rispettato - ha guidato l'esercito e ha dato nuovi ordini ad ogni stazione, con l'obiettivo di spingere l'esercito da ovest a est. Ha guidato in una carrozza stradale trainata da un sei, circondato da paggi, aiutanti e una scorta, lungo l'autostrada verso Posen, Thorn, Danzig e Konigsberg. In ciascuna di queste città, migliaia di persone lo hanno accolto con trepidazione e gioia.
L'esercito si spostò da ovest a est e lì fu trasportato da ingranaggi variabili. Il 10 giugno raggiunse l'esercito e passò la notte nella foresta di Vilkovis, in un appartamento preparato per lui, nella tenuta di un conte polacco.
Il giorno successivo Napoleone, sorpassato l'esercito, salì in carrozza fino al Niemen e, per ispezionare l'area del valico, indossò un'uniforme polacca e scese a terra.
Vedendo dall'altra parte i cosacchi (les Cosaques) e le steppe in espansione (les Steppes), in mezzo alle quali c'era Moscou la ville sainte, [Mosca, la città santa] la capitale di quello stato simile della Scizia, dove andò Alessandro Magno, - Napoleone, inaspettatamente per tutti, e contrariamente a considerazioni sia strategiche che diplomatiche, ordinò un'offensiva, e il giorno successivo le sue truppe iniziarono ad attraversare il Neman.
Il 12, la mattina presto, lasciò la tenda che era stata piantata quel giorno sulla ripida riva sinistra del Nemunas, e guardò attraverso il telescopio i flussi delle sue truppe che emergevano dalla foresta di Vilkovis, riversandosi su tre ponti costruiti sul Neman. Le truppe sapevano della presenza dell'imperatore, lo cercavano con i loro occhi, e quando hanno trovato una figura in finanziera e cappello che si era separata dal seguito sulla montagna davanti alla tenda, hanno alzato i berretti, gridando: "Vive l" Empereur! [Viva l'imperatore!] - e uno per altri, senza esaurirsi, scorrevano fuori, tutto scorreva fuori dall'enorme foresta che fino a quel momento li nascondeva e, frustrati, attraversavano tre ponti dall'altra parte.
- Sulla fera du chemin cette fois ci. Oh! quand il s "en mele lui meme ca chauffe ... Nom de Dieu ... Le voilà! .. Vive l" Empereur! Les voila donc les Steppes de l "Asie! Vilain pays tout de meme. Au revoir, Beauche; je te reserve le plus beau palais de Moscou. Au revoir! Bonne chance ... L" as tu vu, l "Empereur? Vive l" Empereur! .. preur! Si su di 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 voilà! 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! .. [Ora andiamo! Oh, come la prenderà lui stesso, la faccenda bollirà. Per Dio ... Eccolo ... Evviva, imperatore! Allora eccole, le steppe asiatiche ... Ma un brutto paese. Arrivederci, Boche. Ti lascio il miglior palazzo di Mosca. Addio, ti auguro successo. Hai visto l'imperatore? Evviva! Se mi fanno governatore in India, ti farò ministro del Kashmir ... Evviva! Imperatore Eccolo! Lo vedi? L'ho visto due volte come te. Piccolo caporale ... Ho visto come appendeva una croce a uno dei vecchi ... Evviva imperatore! tutti i volti di queste persone avevano una comune espressione di gioia all'inizio della tanto attesa marcia e gioia e devozione all'uomo in finanziera grigia, in piedi sulla montagna.
Il 13 giugno Napoleone ricevette un piccolo cavallo arabo di razza, e si sedette e cavalcò al galoppo verso uno dei ponti sul Niemen, incessantemente assordato da grida entusiastiche, che apparentemente sopportò solo perché era impossibile impedire loro di esprimere il loro amore per lui con queste grida; ma queste grida, che lo accompagnavano dappertutto, lo appesantivano e lo distraevano dalla preoccupazione militare che lo aveva afferrato da quando era entrato nell'esercito. Superò uno dei ponti oscillando su barche dall'altra parte, svoltò bruscamente a sinistra e galoppò verso Kovno, preceduto dalle entusiaste guardie ranger dei cavalli, che gelavano di felicità, aprendo la strada alle truppe al galoppo davanti a lui. Dopo essersi avvicinato all'ampio fiume Viliya, si fermò accanto al reggimento polacco Uhlan, che si trovava sulla riva.
- Vivat! - hanno gridato con entusiasmo anche i polacchi, sconvolgendo il fronte e schiacciandosi a vicenda per vederlo. Napoleone esaminò il fiume, smontò da cavallo e si sedette su un tronco che giaceva sulla riva. A un segno senza parole, gli fu consegnata una tromba, la mise sul retro di un foglio felice che corse su e cominciò a guardare dall'altra parte. Poi è andato a esaminare a fondo un foglio di mappa sparso tra i tronchi. Senza alzare la testa disse qualcosa e due dei suoi aiutanti corsero al galoppo verso i lancieri polacchi.
- Che cosa? Cosa ha detto? - sentito nelle file dei lancieri polacchi, quando un aiutante si avvicinò al galoppo.
Fu ordinato, avendo trovato un guado, di andare dall'altra parte. Il colonnello Uhlan polacco, un bell'uomo anziano, arrossato e confuso nelle parole per l'eccitazione, chiese all'aiutante se gli sarebbe stato permesso di attraversare il fiume con i suoi Ulani senza cercare un guado. Lui, con evidente timore del rifiuto, come un ragazzo che chiede il permesso di andare a cavallo, ha chiesto di poter attraversare il fiume agli occhi dell'imperatore. L'aiutante disse che probabilmente l'imperatore non sarebbe stato insoddisfatto di questo zelo eccessivo.
Non appena l'aiutante disse questo, un vecchio ufficiale baffuto con una faccia felice e gli occhi lucidi, alzando la spada, gridò: “Vivat! - e, comandando agli ulani di seguirlo, diede gli speroni del cavallo e galoppò al fiume. Spinse con rabbia il cavallo che era caduto sotto di lui e precipitò in acqua, dirigendosi verso l'interno verso la rapida corrente. Centinaia di lancieri gli corsero dietro. Faceva freddo e inquietante nel mezzo e nella rapidità della corrente. I lancieri si sono aggrappati gli uni agli altri, sono caduti dai cavalli, alcuni sono annegati, le persone sono annegate, altri hanno cercato di nuotare, alcuni in sella, alcuni aggrappati alla criniera. Hanno provato a nuotare in avanti verso l'altra sponda e, nonostante ci fosse una traversata per mezzo miglio, erano orgogliosi di nuotare e annegare in questo fiume sotto lo sguardo di un uomo seduto su un tronco e senza nemmeno guardare quello che stavano facendo. Quando l'aiutante di ritorno, scegliendo un momento opportuno, si concesse di attirare l'attenzione dell'imperatore sulla devozione dei polacchi verso la sua persona, l'ometto in finanziera grigia si alzò e, chiamandolo Berthier, cominciò a camminare con lui su e giù per la riva, dandogli ordini e lanciandogli occasionalmente occhiate scontente sui lancieri che annegano che hanno intrattenuto la sua attenzione.
Per lui, non era una novità la convinzione che la sua presenza a tutti gli estremi del mondo, dall'Africa alle steppe della Moscovia, colpisse e gettasse ugualmente le persone in una follia di dimenticanza di sé. Ordinò di portarsi un cavallo e andò al parcheggio.
Quaranta lancieri annegati nel fiume, nonostante le barche inviate in soccorso. La maggior parte tornò su questa riva. Il colonnello e diverse persone attraversarono a nuoto il fiume e con difficoltà salirono dall'altra parte. Ma appena usciti con la veste bagnata si sono schizzati addosso, scendendo dai ruscelli, hanno gridato: "Vivat!", Guardando con entusiasmo il luogo dove si trovava Napoleone, ma dove lui non c'era più, e in quel momento si consideravano felici.
La sera, Napoleone, tra due ordini - uno di consegnare al più presto le banconote russe false preparate per l'importazione in Russia, e l'altro di sparare al sassone, nella cui lettera intercettata sono state trovate informazioni sugli ordini per l'esercito francese, - fece un terzo ordine - sulla resa dei conti del colonnello polacco, che si gettò inutilmente nel fiume, alla coorte d'onore (Legion d'Onore), di cui Napoleone era a capo.
Qnos vult perdere - dementat. [Chi vuole distruggere, lo priverà della ragione (lat.)]

L'imperatore russo, nel frattempo, viveva a Vilna già da più di un mese, facendo revisioni e manovre. Niente era pronto per la guerra che tutti si aspettavano e per la preparazione per la quale l'imperatore era venuto da Pietroburgo. Non esisteva un piano d'azione generale. L'esitazione su quale dei piani proposti dovesse essere adottato si intensificò solo dopo il soggiorno di un mese dell'imperatore nell'appartamento principale. Ciascuno dei tre eserciti aveva un comandante in capo separato, ma non c'era un comandante generale su tutti gli eserciti e l'imperatore non assunse questo grado.
Più a lungo l'imperatore viveva a Vilna, meno era preparato alla guerra, stanco di aspettarla. Tutte le aspirazioni delle persone che circondavano il sovrano, a quanto pareva, miravano solo a far dimenticare al sovrano, che si divertiva, la guerra imminente.
Dopo molti balli e feste ai magnati polacchi, ai cortigiani e allo stesso sovrano, a giugno uno degli aiutanti generali polacchi del sovrano ebbe l'idea di dare la cena e un ballo al sovrano per conto dei suoi aiutanti generali. Questa idea è stata accolta con gioia da tutti. L'imperatore ha espresso il suo consenso. Gli Aiutanti Generali raccoglievano denaro tramite abbonamento. La persona che poteva essere più gradevole al sovrano è stata invitata a essere la padrona di casa del ballo. Il conte Bennigsen, proprietario terriero della provincia di Vilnius, ha offerto la sua casa di campagna per questa vacanza, e il 13 giugno sono stati programmati una cena, ballo, canottaggio e fuochi d'artificio a Zakret, la casa di campagna del conte Bennigsen.
Lo stesso giorno in cui Napoleone diede l'ordine di attraversare il Niemen e le sue truppe avanzate, respingendo i cosacchi, attraversarono il confine russo, Alexander trascorse la serata alla dacia di Bennigsen - a un ballo dato dagli aiutanti del generale.
È stata una vacanza allegra e brillante; gli esperti hanno detto che così tante bellezze raramente si riuniscono in un unico luogo. La contessa Bezukhova, insieme ad altre signore russe che vennero per l'imperatore da San Pietroburgo a Vilna, era a questo ballo, oscurando le sofisticate signore polacche con la sua pesante, cosiddetta bellezza russa. Fu notata e l'imperatore la onorò con una danza.
Boris Drubetskoy, en garcon (scapolo), come ha detto, avendo lasciato la moglie a Mosca, era anche a questo ballo e, sebbene non fosse un aiutante generale, partecipò per una grossa somma alla sottoscrizione del ballo. Boris era ora un uomo ricco, andato lontano negli onori, non più in cerca di protezione, ma in piedi su un piede regolare con il più alto dei suoi pari.
Alle dodici del mattino stavano ancora ballando. Helene, che non aveva un degno gentiluomo, offrì lei stessa la mazurka a Boris. Si sono seduti nella terza coppia. Boris, guardando freddamente le lucide spalle nude di Helen che sporgevano da una garza scura e da un vestito dorato, parlava di vecchie conoscenze e allo stesso tempo, inosservato da sé e dagli altri, non smetteva mai di osservare il sovrano che si trovava nella stessa stanza. Il sovrano non ballava; si fermò sulla soglia e si fermò l'uno o l'altro con quelle parole gentili che solo lui poteva pronunciare.
All'inizio della mazurka, Boris vide che l'aiutante generale Balashev, una delle persone più vicine al sovrano, gli si avvicinò e rimase fermo vicino al sovrano, che stava parlando con una signora polacca. Dopo aver parlato con la signora, il sovrano guardò con aria interrogativa e, apparentemente rendendosi conto che Balashev lo aveva fatto solo perché c'erano ragioni importanti, annuì leggermente alla signora e si rivolse a Balashev. Non appena Balashev iniziò a parlare, la sorpresa fu espressa sul volto dell'imperatore. Prese Balashev per il braccio e camminò con lui attraverso il corridoio, liberando inconsciamente le braccia su entrambi i lati dei tre ampi sentieri che si trovavano di fronte a lui. Boris notò il volto agitato di Arakcheev, mentre l'imperatore andò con Balashev. Arakcheev, guardando il sovrano e sbuffando con il naso rosso, uscì dalla folla, come se si aspettasse che il sovrano si rivolgesse a lui. (Boris si rese conto che Arakcheev era geloso di Balashev ed era insoddisfatto del fatto che alcune notizie, ovviamente importanti, non fossero state trasmesse al sovrano attraverso di lui.)
Ma lo zar e Balashev passarono, senza accorgersi di Arakcheev, attraverso la porta di uscita nel giardino illuminato. Arakcheev, impugnando la spada e guardandosi intorno con rabbia, camminava venti passi dietro di loro.
Mentre Boris continuava a creare figure mazurche, era tormentato dal pensiero di che tipo di notizie avesse portato Balashev e di come conoscerle prima.
Nella figura in cui doveva scegliere le signore, sussurrando a Helen che voleva portare la contessa Pototskaya, che sembrava essere uscita sul balcone, lui, facendo scivolare i piedi sul parquet, corse fuori dalla porta di uscita in giardino e, notando il sovrano entrare con Balashev sulla terrazza , in pausa. Lo zar e Balashev si stavano dirigendo verso la porta. Boris, di fretta, come se non avesse il tempo di allontanarsi, si premette rispettosamente contro l'architrave e chinò il capo.
Il sovrano, con l'eccitazione di una persona personalmente offesa, ha finito le seguenti parole:
- Entra in Russia senza dichiarare guerra. Farò la pace solo quando non rimarrà un solo nemico armato sulla mia terra ”, ha detto. A Boris sembrava che l'imperatore fosse lieto di esprimere queste parole: era soddisfatto della forma in cui esprimeva i suoi pensieri, ma era insoddisfatto che Boris le avesse udite.
- In modo che nessuno sappia niente! Aggiunto l'imperatore, accigliato. Boris si rese conto che questo si applicava a lui e, chiudendo gli occhi, inclinò leggermente la testa. L'imperatore entrò di nuovo nella sala e rimase al ballo per circa mezz'ora.
Boris fu il primo ad apprendere le notizie delle truppe francesi che attraversavano il Niemen e grazie a questo ebbe l'opportunità di mostrare ad alcune persone importanti che molto di ciò era nascosto agli altri, lo sapeva, e attraverso ciò ebbe l'opportunità di elevarsi più in alto nell'opinione di queste persone.

La notizia inaspettata della traversata francese del Niemen è stata soprattutto inaspettata dopo un mese di aspettative deluse, e al ballo! Il sovrano, al primo minuto di ricezione della notizia, sotto l'influenza di indignazione e insulto, trovò quello, divenuto poi famoso, un detto che a lui stesso piaceva ed esprimeva pienamente i suoi sentimenti. Tornato a casa dal ballo, il sovrano alle due del mattino mandò a chiamare il segretario Shishkov e gli ordinò di scrivere un ordine alle truppe e un rescritto al feldmaresciallo principe Saltykov, in cui chiedeva certamente che fossero poste le parole che non avrebbe fatto pace fino ad almeno l'una il francese armato rimarrà sul suolo russo.
Il giorno successivo la seguente lettera fu scritta a Napoleone.
“Monsieur mon frere. J "ai appris hier que malgre la loyaute avec laquelle j" ai maintenu mes engagement 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 s "est considere comme en etat 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 delivrer, n "auraient jamais pu me faire supposer que cette demarche servirait jamais de pretexte a 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 intentnee de verser le sang de nos peuples pour un malentendu de ce genre et qu" elle consente a retirer ses troupes du territoire russe, je considererai ce qui s "est passe comme non avenu, et un accomodement entre nous sera possible. Dans le cas contraire, Votre Majeste, je me verrai force de repousser ae attaque que rien n "a provoquee de ma part. Il depend encore de Votre Majeste d "eviter a l" humanite les calamites d "une nouvelle guerre.
Je suis, ecc.
(Signe) Alexandre. "
[“Fratello sovrano! Ieri mi è venuto in mente che, nonostante la franchezza con cui ho rispettato i miei obblighi nei confronti di Vostra Maestà Imperiale, le vostre truppe hanno attraversato i confini russi e solo ora hanno ricevuto da San Pietroburgo una nota con la quale il conte Lauriston mi informa di questa invasione che Vostra Maestà si considera in rapporti ostili con me, dal momento in cui il principe Kurakin ha chiesto i suoi passaporti. Le ragioni su cui il Duca di Bassano ha basato il suo rifiuto di rilasciare questi passaporti non avrebbero mai potuto indurmi a presumere che l'atto del mio ambasciatore fosse il pretesto per un attacco. E in realtà non aveva un comando da parte mia, come lui stesso aveva annunciato; e non appena l'ho saputo, ho subito espresso il mio disappunto al principe Kurakin, ordinandogli di adempiere ai doveri che gli erano stati affidati come prima. Se Vostra Maestà non è incline a versare il sangue dei nostri sudditi a causa di un tale malinteso e se acconsente a ritirare le sue truppe dai possedimenti russi, ignorerò tutto ciò che è accaduto e sarà possibile un accordo tra noi. Altrimenti, sarò costretto a respingere un attacco che non è stato avviato da nulla da parte mia. Vostra Maestà, avete ancora l'opportunità di salvare l'umanità dal flagello di una nuova guerra.
(firmato) Alexander ". ]

Il 13 giugno, alle due del mattino, il sovrano, convocando Balashev e leggendogli la sua lettera a Napoleone, gli ordinò di prendere questa lettera e di consegnarla personalmente all'imperatore francese. Inviando Balashev, il sovrano gli ripeté le sue parole che non avrebbe fatto la pace fintanto che almeno un nemico armato fosse rimasto sul suolo russo e gli ordinò di trasmettere queste parole a Napoleone senza fallo. L'imperatore non scrisse queste parole nella lettera, perché sentiva con il suo tatto che queste parole erano scomode per la trasmissione nel momento in cui fu fatto l'ultimo tentativo di riconciliazione; ma certamente ordinò a Balashev di consegnarli personalmente a Napoleone.
Partendo la notte tra il 13 e il 14 giugno, Balashev, accompagnato da un trombettista e due cosacchi, arrivò all'alba nel villaggio di Rykonty, presso gli avamposti francesi da questa parte del Neman. Fu fermato dalle sentinelle della cavalleria francese.
Un sottufficiale ussaro francese, in uniforme cremisi e cappello ispido, gridò a Balashev, che si stava avvicinando, ordinandogli di fermarsi. Balashev non si fermò immediatamente, ma continuò a muoversi lungo la strada a un passo.
Il sottufficiale, accigliandosi e brontolando una sorta di maledizione, avanzò con il petto del cavallo verso Balashev, prese la sua sciabola e gridò sgarbatamente al generale russo, chiedendogli se era sordo che non sentiva ciò che gli veniva detto. Balashev si è identificato. Il sottufficiale ha inviato un soldato all'ufficiale.
Non prestando attenzione a Balashev, il sottufficiale iniziò a parlare con i suoi compagni dei suoi affari di reggimento e non guardò il generale russo.
Era insolitamente strano per Balashev, dopo la vicinanza al più alto potere e potere, dopo una conversazione tre ore prima con il sovrano e generalmente abituato agli onori al suo servizio, vedere qui, sul suolo russo, questo atteggiamento ostile e, soprattutto, irrispettoso della forza bruta verso se stesso.
Il sole stava appena cominciando a sorgere da dietro le nuvole; l'aria era fresca e umida. Lungo la strada, la mandria fu cacciata dal villaggio. Nei campi, una ad una, come bolle nell'acqua, le allodole venivano spruzzate con un tintinnio.
Balashev si guardò intorno, aspettandosi l'arrivo di un ufficiale del villaggio. I cosacchi russi, il trombettista e gli ussari francesi di tanto in tanto si guardavano in silenzio.
Il colonnello ussaro francese, apparentemente appena alzato dal letto, uscì dal villaggio su un bellissimo cavallo grigio ben nutrito, accompagnato da due ussari. L'ufficiale, i soldati ei loro cavalli avevano un'aria di contentezza e brio.
Era la prima volta della campagna, quando le truppe erano ancora in buon ordine, quasi all'altezza dell'osservazione, delle attività pacifiche, solo con un tocco di elegante militanza nell'abbigliamento e con un tocco morale di quel divertimento e intraprendenza che da sempre accompagnano l'inizio delle campagne.
Il colonnello francese riusciva a malapena a trattenere uno sbadiglio, ma era cortese e, a quanto pare, capiva appieno il significato di Balashev. Lo condusse oltre i suoi soldati per la catena e disse che il suo desiderio di essere presentato all'imperatore sarebbe stato probabilmente soddisfatto immediatamente, poiché l'appartamento imperiale, per quanto ne sapeva, non era lontano.
Oltrepassarono il villaggio di Rykonty, le postazioni di autostop degli ussari francesi, le sentinelle ei soldati che salutavano il loro colonnello ed esaminavano con curiosità l'uniforme russa, e si dirigevano dall'altra parte del villaggio. Secondo il colonnello, il capo della divisione era a due chilometri di distanza, che avrebbe ricevuto Balashev e lo avrebbe scortato a destinazione.
Il sole era già sorto e splendeva allegramente sulla luminosa vegetazione.
Avevano appena lasciato l'osteria sulla montagna, quando un gruppo di cavalieri apparve loro incontro da sotto la montagna, davanti alla quale, su un cavallo nero con un'imbracatura che brillava al sole, cavalcava un uomo alto con un cappello con piume e capelli neri arricciati fino alle spalle, in una veste rossa e gambe lunghe sporgenti in avanti, come la cavalcata francese. Quest'uomo cavalcò al galoppo verso Balashev, scintillando e svolazzando nel luminoso sole di giugno con le sue piume, pietre e trecce d'oro.
Balashev era già a due cavalli da un cavaliere in braccialetti, piume, collane e oro che galoppava verso di lui con un volto solenne e teatrale, quando Yulner, un colonnello francese, sussurrò rispettosamente: "Le roi de Naples". [Re di Napoli.] In effetti, era Murat, ora chiamato il Re di Napoli. Sebbene fosse del tutto incomprensibile il motivo per cui fosse il re di Napoli, lo chiamavano così, e lui stesso ne era convinto e quindi aveva un aspetto più solenne e importante di prima. Era così sicuro di essere davvero un re napoletano che quando, alla vigilia della sua partenza da Napoli, durante la sua passeggiata con la moglie per le strade di Napoli, diversi italiani gli gridarono: "Viva il re!" [Viva il re! (Italiano)] si rivolse alla moglie con un sorriso triste e disse: “Les malheureux, ils ne savent pas que je les quitte demain! [Infelice, non sanno che domani li lascerò!]
Ma nonostante credesse fermamente di essere un re napoletano, e si pentisse del dolore dei suoi sudditi che li lasciavano, di recente, dopo che gli era stato ordinato di rientrare nuovamente in servizio, e soprattutto dopo un incontro con Napoleone a Danzica, quando l'augusto cognato gli disse: "Je vous ai fait Roi pour regner a maniere, mais pas a la votre", [Ti ho fatto re per regnare non a modo mio, ma secondo me.] - cominciò allegramente per un'attività che conosceva e, come un cavallo divorato, ma non sovrappeso, adatto al servizio, sentendosi in imbracatura, giocava nei pozzi e, congedato il più colorato e caro possibile, allegro e contento, galoppava, non sapendo dove e perché, lungo le strade Polonia.
Vedendo il generale russo, gettò indietro la testa con i capelli arricciati sulle spalle in modo regale e solenne e guardò interrogativamente il colonnello francese. Il colonnello comunicò rispettosamente a sua maestà l'importanza di Balashev, di cui non sapeva pronunciare il nome.

La sezione è molto facile da usare. È sufficiente inserire la parola desiderata nel campo proposto e ti daremo un elenco dei suoi significati. Vorrei sottolineare che il nostro sito fornisce dati da varie fonti: dizionari enciclopedici, esplicativi e derivati. Anche qui puoi conoscere esempi di utilizzo della parola che hai inserito.

Il significato della parola base

bASIC nel dizionario delle parole crociate

di base

Dizionario enciclopedico, 1998

di base

BASIC (BASIC; dalle lettere iniziali delle parole inglesi Beginners - per principianti, Universale - universale, Simbolico - simbolico, Istruzione - educativo, Codice - codice) è un linguaggio di programmazione incentrato sull'insegnamento delle basi della programmazione. Viene utilizzato principalmente per la programmazione su personal computer.

Wikipedia

DI BASE

Di base (a partire dal DI BASE, abbreviazione di - codice di istruzione simbolico universale per principianti) - una famiglia di linguaggi di programmazione di alto livello.

È stato sviluppato nel 1964 dai professori del Dartmouth College Thomas Kurz e John Kemeny.

Il linguaggio è stato creato come strumento con il quale gli studenti non programmatori potevano creare autonomamente programmi per computer per risolvere i loro problemi. Si è diffuso sotto forma di vari dialetti, principalmente come lingua per i computer di casa. Ad oggi, ha subito cambiamenti significativi, allontanandosi in modo significativo dalla semplicità caratteristica delle prime versioni, rasentando il primitivismo e trasformandosi in un linguaggio di alto livello abbastanza ordinario con un tipico insieme di capacità. Viene utilizzato come linguaggio indipendente per lo sviluppo di programmi applicativi, principalmente in esecuzione sotto il sistema operativo Windows di varie versioni. È anche ampiamente utilizzato come linguaggio integrato per sistemi software applicativi per vari scopi e come linguaggio per calcolatrici programmabili.

BASIC (disambiguazione)

DI BASE, Di base:

  • L'inglese di base è una lingua artificiale internazionale basata sull'inglese.
  • BASIC è un linguaggio di programmazione di alto livello.
  • BASIC è un computer domestico sovietico dei primi anni '90, un clone dello ZX Spectrum.
  • BASIC Vilnius è un'implementazione del linguaggio di programmazione BASIC per computer a 16 bit con processori PDP-11.

Esempi dell'uso della parola BASIC in letteratura.

Gli spazi nella stringa sono inclusi esclusivamente per comodità del programmatore - DI BASE li ignora.

Nota che DI BASE ha una propria variabile che memorizza la posizione corrente del cursore.

Se includi una routine assembler che cambia la posizione del cursore, allora DI BASE ignorerà la nuova posizione del cursore quando viene restituito il controllo.

Nota che DI BASE di solito spegne il cursore quando si avvia l'esecuzione del programma.

Nella misura in cui DI BASE non consente i numeri binari, è necessaria una certa manipolazione per determinare gli attributi.

quando DI BASE converte il carattere in un sedicesimo formato, quindi restituisce solo una cifra se la prima era un valore nullo, quindi il nullo eliminato deve essere ripristinato affinché questo metodo funzioni correttamente.

Linguaggi di alto livello come kapk DI BASEcreare queste aree automaticamente.

Predefinito DI BASE imposta il numero di buffer su 8, ma puoi cambiare questo numero con qualcos'altro da 4 a 15.

DI BASE, esegue automaticamente il lavoro preparatorio per le operazioni sui file.

Linguaggi di alto livello come DI BASE, inserire questi caratteri automaticamente, mentre i programmi assembly devono occuparsi di inserire questi caratteri dopo che ogni variabile è stata scritta nel file.

Sebbene in alcuni casi DI BASE perdona i file non chiusi, ma non è così.

Nei file ad accesso diretto DI BASE tratta tutte le variabili, comprese quelle numeriche, come stringhe.

Tuttavia, è possibile impostare la gestione degli errori in modo che quando si verifica un errore critico DI BASE ha seguito automaticamente la procedura di ripristino da arresto anomalo del sistema creata.

Quando si esegue questa procedura DI BASE trasferisce il controllo da una sequenza di istruzioni che compongono un programma a DI BASEe, nella posizione in cui sono memorizzate le istruzioni che possono essere decodificate in una sequenza di istruzioni in linguaggio assembly.

La solita soluzione a questo problema è che la procedura venga inserita in quegli indirizzi di memoria a cui DI BASE non poter accedere.

Lo scopo della lezione:

    Conoscere gli studenti con le basi del linguaggio BASIC. Verifica la conoscenza della lezione precedente. Favorire la capacità di ascoltare l'insegnante. Sviluppo dell'interesse cognitivo.

Piano della lezione:

Controllo dei compiti. Spiegazione del nuovo materiale. Concetti di base della lingua Compiti a casa. Riassumendo la lezione.

Durante le lezioni

Controllo dei compiti.

Definizione degli obiettivi della lezione.

Spiegazione del nuovo materiale.

Il linguaggio di programmazione Basic è stato creato nel 1964 da due professori dell'Università di Dartmoon, John Kenemy e Thomas Kurtz. BASIC è la prima lettera delle parole inglesi Beginner's All-purpose Symbolic Instruction Code. Attualmente esistono molte versioni di questa lingua, a volte molto diverse tra loro. Per le istituzioni educative, le versioni più comuni sono MSX , implementato per la prima volta sul computer giapponese "Yamaha", e la versione Microsoft per computer IBM. Inoltre, la versione Turbo-Basic di Borland è popolare nel nostro paese. Senza esagerare, possiamo dire che oggi BASIC è il linguaggio di programmazione più diffuso. Dopo l'emergere di potenti compilatori Visual Basic, questo linguaggio è diventato popolare tra i programmatori professionisti. BASIC si riferisce a linguaggi di programmazione di alto livello. Come altri linguaggi, questo linguaggio ha un alfabeto, sintassi, semantica.

Alfabeto della lingua. L'alfabeto di base è una tabella di caratteri ASCII. La prima metà di questa tabella (caratteri con codice 0-127) è standard. La seconda metà (caratteri con codice 128-255) è specifica per ogni paese. In questa tabella, ogni carattere ha una designazione a 8 bit. Quindi, l'alfabeto della lingua di base include tutte le lettere maiuscole e minuscole degli alfabeti inglese e russo, i numeri e un set di caratteri speciali disponibili sulla tastiera del computer.

Variabili. In BASIC si distinguono le variabili dei seguenti tipi:

    variabili numeriche; variabili simboliche; variabili di tipo personalizzato (record); variabili array.

Una variabile è un valore che può cambiare durante l'esecuzione del programma. Oltre a quelli indicati in tabella, nella registrazione dell'esposizione vengono registrati anche numeri interi, ad esempio,

2.55.105 \u003d 2.55E5; 7,15.10-7 \u003d 7.15E-7

Il programma BASIC elabora dati di due tipi: numerici e simbolici. Ogni numero è rappresentato nella macchina da una combinazione di bit. Qualsiasi numero può essere rappresentato in modi diversi in un'auto:

Un numero intero compreso tra –32768 e 32768; intero lungo nell'intervallo da - a; numeri reali di precisione ordinaria; numeri reali a doppia precisione;

I dati possono essere rappresentati da variabili e costanti.

Variabili. Hai già familiarità con il concetto di variabile dalle lezioni di algebra. Ad esempio, in una semplice uguaglianza algebrica c \u003d f + 2b - 5 valore variabile con dipende dal valore della variabile f e b indicata a destra dell'uguaglianza. Ad esempio, per f \u003d 2 e b \u003d 6, c \u003d 9 .

La stessa uguaglianza può essere scritta in un programma BASIC.

c \u003d f + 2 * b - 5

In termini di linguaggio BASIC c , f e b Sono nomi di variabili. Tali nomi sono anche chiamati identificatori.

Identificatori... Nel linguaggio BASIC, un identificatore è un insieme arbitrario di caratteri che può contenere da 1 a 40 caratteri e il primo carattere deve essere una lettera latina e il resto deve essere lettere o numeri latini o simboli come @, #,% e. eccetera.

Esempio :

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

Il tipo di identificatore in BASIC è riconosciuto dall'ultimo carattere nel nome della variabile.

% è un numero intero;
& è un numero intero lungo;
! - un numero reale di precisione normale;
# - numero reale a doppia precisione;
$ è un tipo di carattere.

In BASIC c'è un altro modo per descrivere i tipi di variabili (qbasic). Se si inserisce il comando: DEFINT I - L all'inizio del programma, tutte le variabili i cui nomi iniziano con la lettera I e si trovano nell'intervallo fino alla lettera L saranno considerate intere (INTERO).

Il formato generale del comando di descrizione del tipo è:

DEFINT X-X (numeri interi) DEFLNG X-X (interi lunghi lunghi) DEFSNG X-X (numeri reali, singoli) DEFDBL X-X (doppi reali) DEFSTR X-X (stringa di caratteri)

Costanti. Le costanti, sia numeriche che simboliche, sono valori che non cambiano durante l'esecuzione del programma.

Per esempio:

p \u003d 3,1415
T $ \u003d "Scuola Skorodnyanskaya"
A \u003d 9575
m $ \u003d "Programma settimanale"

A volte vengono chiamate le costanti scritte letterali. Per quanto riguarda le costanti, ricorda le regole:

Il punto decimale è il separatore; i valori delle costanti dei caratteri sono racchiusi tra virgolette.

I numeri possono essere scritti esponenzialeform, ad esempio:

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

I numeri scritti in forma esponenziale rappresentano il prodotto della mantissa per un ordine di grandezza, cioè per 10 alla potenza di –2, +2, ecc. La lettera E è usata per numeri reali di precisione ordinaria, la lettera D è per numeri reali di doppia precisione.

Costanti denominate. Se si assegna un valore a una variabile (numerica o simbolica) e non si modificano questi valori in futuro, ad esempio:

F3 \u003d 60, n% \u003d 15

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

Ad esempio: CONST F2 \u003d 60, n% \u003d 15

Espressioni e operazioni. Viene chiamata la sequenza di operazioni che devono essere eseguite sui dati per ottenere il valore richiesto espressione.Esistono cinque categorie di operazioni in BASIC:

Operazioni aritmetiche; Operazioni di relazione; Operazioni logiche; Operazioni funzionali; Operazioni su stringhe.

Operazioni aritmetiche.

Nome dell'operazione

cartello
in mat.

accedi BASIC

Esempio in
matematica.

Esempio in
DI BASE

Esponenziazione

-

^

25

2^5

Aggiunta

+

+

5+10

5+10

Sottrazione

-

-

a-b

a-b

Moltiplicazione

x; ...

*

2.5

2*5

Divisione

:

/

10:2

10/2

Operazioni di relazione.

Funzione è un'operazione predefinita sui dati. Ci sono due tipi di funzioni in BASIC: incorporate e definite dall'utente.

Funzioni matematiche integrate

Nome della funzione

Scrivere in matematica

Registrazione BASIC

Esempio in BASIC

Valore assoluto

Espositore

Logaritmo naturale.

Resto della divisione intera (MOD)

19 MOD 6.7

Radice quadrata

Seno

PECCATO (3.14)

Coseno

Tangente

Arcotangente

Segno di espressione numerica

Tutte le altre funzioni trigonometriche, così come le funzioni iperboliche, sono determinate da formule matematiche ben note, ad esempio, ARCSIN (X) \u003d ATN (X / SQR (1-X ^ 2)) .

Quando si risolvono i problemi, vengono utilizzate molto spesso altre due funzioni.

1.RND (1) - un generatore di numeri casuali che imposta numeri casuali dall'intervallo da 0 a 1.

Esempio:

Immettere un numero casuale compreso tra 1 e 100 (numero naturale).

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

2. INT (espressione numerica) - questa funzione scarta la parte frazionaria quando si dividono i numeri.

Esempio:

Nel primo esempio, i numeri N da 1 a 100 devono essere naturali.

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

Funzione utente.

Nei casi in cui la funzione non è elementare, o la funzione ha diversi argomenti, è conveniente usare una funzione utente: DEF FN.Il nome della funzione deve sempre iniziare con le lettere FN. DEF FN non può essere ricorsivo (non può chiamare se stesso) e deve essere definito prima dell'utente.

Esempio:

Siano X e Y numeri naturali. R è il resto della divisione di X per Y. Esprimi R (X, Y) - R funzione di X e Y.

R \u003d X - INT (X / Y) * Y - resto della divisione X sopra Y
DEF FN R (X, Y) \u003d X-Y * INT (X / Y)

In questo esempio R (X, Y) è una funzione di due argomenti.

Scrivere espressioni matematiche in BASIC.

Qualsiasi espressione matematica in BASIC è scritta come una stringa. Per valutare questa espressione, basta scrivere PRINT o? Prima di essa.

Calcolare:

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

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

Annota le seguenti espressioni in BASIC:

  • Sviluppo per Windows
  • DONKEY.BAS. Incluso con il PC IBM nel 1981. Co-autore di Bill Gates

    Il nome BASIC deriva da "Codice di istruzione simbolica per tutti gli usi per principianti", che letteralmente significa "linguaggio di istruzione simbolico multiuso per principianti". Questo è il caso in cui la traduzione letterale trasmette accuratamente l'essenza. Caratteristica fondamentale BASIC "non era solo la sua semplicità, ma anche la capacità di trovare soluzioni ai problemi in un dialogo con un computer.

    Per molti computer della fine degli anni '60, BASIC era posizionato come l'unico linguaggio di programmazione generico di alto livello e nel tempo ciò ha portato alla comparsa di varie modifiche di esso. Il punto di svolta nello sviluppo del linguaggio è stata la comparsa di Visual Basic.

    sfondo

    A metà degli anni '50, il ruolo della programmazione nei codici macchina iniziò a diminuire. Apparvero lingue di livello superiore: Fortran, Algol, Cobol e così via.

    Il primo di questi e uno dei più comuni era FORTRAN (FORTRAN, da FORmula TRANslator - traduttore di formule), sviluppato da un gruppo di programmatori iBM nel 1954 (prima versione). Questo linguaggio era focalizzato su calcoli scientifici e tecnici di natura matematica.

    Il nome del linguaggio Algol (ALGOrithmic Language), la cui prima versione è apparsa nel 1958, sottolinea il fatto che è destinato alla scrittura di algoritmi. Grazie alla sua chiara struttura logica, Algol è diventato mezzi standard registrazioni di algoritmi nella letteratura scientifica e tecnica.

    Allora, i linguaggi di programmazione di alto livello erano caratterizzati dall'orientamento per soggetto. Inoltre, tali linguaggi erano troppo difficili per gli sviluppatori inesperti, soprattutto se non erano ingegneri. Pertanto, è naturale che nel tempo sia apparso un linguaggio di programmazione per "semplici mortali".

    DI BASE. Solo BASIC

    La famosa storia del missionario inglese è associata all'idea di creare questo linguaggio di programmazione.
    Nel XIX secolo, un missionario inglese, che cercava un'opportunità per facilitare e semplificare il contatto con i nativi, ebbe l'idea geniale: isolare dalla lingua inglese la parte più semplice, che praticamente non ha grammatica, e contiene circa 300 delle parole più comuni. Questa sottospecie troncata della lingua inglese si chiamava BASIC ENGLISH e, come ha dimostrato la pratica, si è rivelata davvero molto facile da imparare e presto ha guadagnato popolarità non solo tra la popolazione indigena, ma anche tra gli immigrati per i quali l'inglese non era la loro lingua madre.
    Cento anni dopo, i dipendenti del dipartimento di matematica del Dartmouth College hanno intrapreso un percorso simile. Hanno deciso di facilitare l'interazione tra il computer e l'utente laico utilizzando un linguaggio di programmazione "semplificato".

    Nel 1964, Thomas Kurtz e John Kameni hanno creato un linguaggio di programmazione specializzato che consisteva in parole semplici in inglese. La nuova lingua è stata denominata BASIC.

    L'hanno usato per insegnare agli studenti abilità di programmazione. La lingua si è rivelata così semplice e comprensibile che dopo un po 'hanno iniziato a usarla in altre istituzioni educative.

    Fortran II e Algol 60 hanno avuto un impatto significativo sul BASIC Inoltre, gli sviluppatori hanno implementato meccanismi per lavorare con i sistemi di condivisione del tempo, nonché l'elaborazione del testo e l'aritmetica delle matrici. Il compilatore del linguaggio è stato originariamente scritto per il mainframe GE-265.

    Fiorente

    Negli anni '70 apparvero computer (PC) più compatti. Bill Gates e Paul Allen, i fondatori di Microsoft, hanno approfittato di questa circostanza.

    Hanno creato una nuova versione di BASIC per i primi computer "Altair" (MITS Altair), in grado di funzionare in 4KB memoria ad accesso casuale... Nel tempo, è stata questa versione a trasformarsi in uno dei linguaggi di programmazione più popolari al mondo.


    Altair

    Il periodo di maggiore fioritura e sviluppo del BASIC originale può essere considerato la fine degli anni '70 - la prima metà degli anni '80. Le sue versioni apparvero su altre piattaforme e presto iniziarono a disperdersi in milioni di copie con ogni sorta di modifiche e miglioramenti. Una delle versioni più popolari era Applesoft BASIC, che divenne il linguaggio standard su Apple II.

    Applesoft BASIC è stato scritto da Microsoft in sostituzione del sistema BASIC Integer utilizzato nel primissimo modelli Apple II e aveva capacità molto limitate. Applesoft BASIC è stato installato nella ROM di tutti i modelli Apple II da Apple II + e tutti i cloni di Apple II. Inoltre, una versione precedente e ridotta di Applesoft BASIC era disponibile su cassette per il primo modello Apple II.

    Per il sistema operativo CP / M è stato creato il dialetto BASIC-80, che per lungo tempo ha determinato lo sviluppo del linguaggio.

    Quando apparvero i primi personal computer IBM PC, fu lui a diventare lo standard nella programmazione, ma già sotto forma di GW-Basic.

    A metà degli anni '80, il BASIC divenne il linguaggio principale nei modelli complessi di calcolatrici programmabili, che proprio in quel momento avevano raggiunto la potenza di un vero e proprio linguaggio di alto livello. BASIC era integrato nel calcolatore elettronico sovietico MK-85 e in tutti i suoi modelli successivi.

    Sempre nel 1985 apparve l'IDE Quick Basic, un ambiente di sviluppo integrato e compilatore per il linguaggio di programmazione BASIC, sviluppato da Microsoft dal 1985 al 1988. C'erano versioni per DOS e Mac OS. Il dialetto BASIC utilizzato era basato sul dialetto GW-BASIC migliorato: il supporto per i tipi definiti dall'utente, i costrutti di programmazione strutturati è stato implementato e il supporto per le operazioni grafiche e su disco è stato notevolmente ampliato.

    Robert "Bob" Zeil ha creato Turbo Basic nel 1987, sulla base dei suoi molti anni di sviluppo BASIC / Z, e poi lo ha venduto a Borland. È stato nominato uno dei prodotti più significativi di quell'anno dalla rivista Infoworld.

    A differenza della maggior parte delle implementazioni BASIC del periodo, Turbo Basic era un compilatore completo che generava codice MS-DOS nativo.

    Nonostante l'enorme numero di versioni del linguaggio BASIC, durante lo sviluppo di una nuova versione del linguaggio, la compatibilità con le versioni precedenti è stata sempre mantenuta: con un programma scritto per versioni precedenti, era abbastanza (a volte con piccole modifiche) possibile lavorare nelle versioni successive di questo linguaggio.

    Seconda vita

    All'inizio degli anni '90 apparve sistema operativo Microsoft Windows con una nuova interfaccia utente grafica.

    Creare programma semplice, gli sviluppatori dovevano scrivere diverse pagine di codice: scrivere ingombranti blocchi di codice per menu e finestre, caratteri, cancellare la memoria, pulsanti di "disegno", ecc. Tuttavia, i vantaggi della nuova interfaccia erano piuttosto forti e Windows aveva reali prospettive di diventare popolare ovunque.

    Microsoft ha capito che era necessario in qualche modo rendere la vita più facile agli sviluppatori. Pertanto, la società ha lanciato diversi progetti paralleli per creare un nuovo linguaggio di programmazione e un ambiente di sviluppo per Windows.

    BASIC ha avuto la sua seconda vita quando Microsoft ha rilasciato Visual Basic. È diventato il completamento logico dell'evoluzione del linguaggio e, nonostante la conservazione delle parole chiave familiari, in termini di struttura e insieme di caratteristiche era più vicino a Pascal che al BASIC originale.

    Nel 1991 è stata rilasciata la prima versione del nuovo IDE di Microsoft Visual Basic. Tuttavia, in quel momento Microsoft era piuttosto modesta nel valutare le capacità di questo sistema, orientandolo, tuttavia, alla categoria dei programmatori principianti e non professionisti.

    Naturalmente, questo era solo il primo passo, poiché la società di Bill Gates intendeva rafforzare la posizione di Windows nel mercato. E questo sarebbe molto difficile da fare, lasciando gli sviluppatori commerciali senza strumenti efficaci per la creazione di applicazioni per MS Windows.

    Il sistema di programmazione creato dagli sviluppatori di Visual Basic ha permesso di astrarre dalla struttura interna di Windows. Menu, finestre, elenchi, pulsanti, campi di immissione di testo e altri elementi dell'interfaccia di Windows sono stati aggiunti al programma utilizzando le più semplici operazioni di trascinamento e rilascio e la maggior parte del codice per la loro inizializzazione e configurazione è stata generata automaticamente.

    I programmatori VB potrebbero creare il loro primo programma in pochi minuti dopo aver iniziato a imparare questa lingua. Inoltre, Visual Basic ha permesso agli sviluppatori di creare nuovi elementi dell'interfaccia grafica che potrebbero essere utilizzati anche nei programmi insieme a quelli standard.

    Nonostante il fatto che molti sviluppatori C non prendessero sul serio i tentativi di Microsoft di creare uno strumento semplice e comprensibile per lo sviluppo di programmi Windows, il resto della comunità IT aveva grandi speranze per Visual Basic.

    Nel 1994, la società ha rilasciato Visual Basic for Applications. Fu in questo momento, dopo l'incorporazione di VBA in Microsoft Office, che Basic divenne uno dei principali standard di programmazione per Windows.

    Originariamente concepito come un giocattolo, Visual Basic di Microsoft ha conquistato il mondo della programmazione in modo incredibilmente rapido. La sua popolarità è dovuta a due ragioni: relativa semplicità e produttività.

    I programmi VB erano più lenti delle loro controparti C / C ++, ma sono ancora abbastanza veloci per molti scopi aziendali e richiedono molto meno tempo di sviluppo. I moduli erano l'astrazione che risparmiava fatica che VB offriva ai programmatori Windows.

    L'IDE VB ha reso possibile sviluppare graficamente le finestre trascinando e rilasciando controlli come pulsanti ed elenchi dalla barra degli strumenti sul form. Avendo ricevuto un soddisfacente aspetto form, puoi andare al code-behind e scrivere gestori di eventi per ogni controllo nel form.

    Lo sviluppo di un'applicazione in VB, quindi, consisteva nella creazione di diversi moduli che interagivano tra loro.

    Dal punto di vista della scrittura del codice, un'importante differenza rispetto allo stesso C ++ è il rifiuto dei puntatori. Così decise Bill Gates, anche durante lo sviluppo delle prime versioni di Microsoft BASIC. Sebbene i puntatori siano utili perché consentono l'accesso diretto alla memoria a qualsiasi indirizzo, il loro utilizzo è soggetto a errori se utilizzato in modo inappropriato. E poiché il linguaggio è stato originariamente creato per "semplici mortali", questa decisione sembra abbastanza giustificata.

    Versioni principali di Visual Basic

    Nella prima versione (1991), Alan Cooper ha implementato il principio di comunicazione tra linguaggio e interfaccia grafica.

    A partire dalla terza versione (1993), il supporto per MS Access è apparso in VB.

    Visual Basic 4.0 (1995): la versione in cui è diventato possibile creare applicazioni Windows sia a 32 bit che a 16 bit. Inoltre, sono state aggiunte lezioni alla lingua.

    A partire da VB 5.0 (1997), è diventato possibile sviluppare componenti COM personalizzati. Inoltre, un nuovo macchina virtualeimplementato nella libreria di collegamento dinamico MSVBVM50.DLL. Il compilatore VB utilizzava il multi-pass per la traduzione, ma alla fine si affidava al compilatore Microsoft C ++ per produrre il codice macchina di output dopo essere stato compilato in un linguaggio intermedio. L'utilizzo della libreria runtime e dell'interfaccia interna C ++ è stato il punto di partenza per la formazione della tecnologia .NET.

    VB versione 6 è già un potente linguaggio che può essere utilizzato per creare applicazioni distribuite utilizzando componenti COM e Microsoft Transaction Server. Microsoft ha proposto un approccio a tre livelli per architetture client-server, in cui thin interfacce utente interagito con componenti VB remoti per recuperare i dati da un database o da un'altra macchina.

    Inoltre, VB6 (1998) potrebbe essere utilizzato per creare controlli Active-X che funzionano con Internet Explorer.

    Nel 2002 è stata rilasciata la prima versione di Visual Basic .NET. Da allora, la compatibilità con le versioni precedenti di Visual Basic è stata interrotta.

    Dal 2005, Visual Basic è stato incluso nell'IDE di Microsoft Visual Studio 2005. Ad oggi, il linguaggio si sta sviluppando insieme all'IDE - fino alla versione corrente - MS Visual Studio 2015.

    I linguaggi Basic e Visual Basic hanno fatto molta strada e hanno subito cambiamenti significativi, si potrebbe dire, irreversibili. Poco rimane della loro originaria semplicità. Di conseguenza, VB è diventato un "normale" linguaggio di programmazione orientato agli oggetti di alto livello.

    LA CAMPANA

    C'è chi ha letto questa notizia prima di te.
    Iscriviti per ricevere gli ultimi articoli.
    E-mail
    Nome
    Cognome
    Come vuoi leggere The Bell
    Niente spam