• Bilgisayar biliminde BASIC nedir? Temel dilde programlamanın temelleri. Dersin amacını belirlemek

    Üzerinde kullanıldıkları, eğitimli teknisyenler ve programcılar tarafından çalıştırılmak üzere tasarlandılar. Makineler pahalı olduğu için makine süresi de pahalıydı - bu nedenle, program yürütme hızı (sayma hızı) ilk sırada yer alıyordu.

    Ancak 1960'larda bilgisayar fiyatları, küçük şirketlerin bile karşılayabileceği şekilde düşmeye başladı; performansları arttı ve zaman paylaşım modunda bilgisayarlarla kullanıcıların daha verimli doğrudan çalışmasını organize etmenin mümkün olduğu zaman geldi ( zaman paylaşımı).

    Doğum

    Yükseklik

    Dil zaten birkaç mini bilgisayarda kullanılıyor olsa da, asıl yayılması Altair 8800 mikro bilgisayarında ortaya çıkmasıyla başladı. Birçok programlama dili, bu tür makinelerin kullanıcılarının karşılayabileceği küçük belleğe sığamayacak kadar büyüktü. Kağıt bant (daha sonra ses kaseti) gibi yavaş ortama sahip ve uygun bir metin düzenleyicisi olmayan makineler için BASIC gibi küçük bir dil bir nimetti.

    BASIC, programlanabilir hesap makinelerinin bazı modellerinde kullanılır. Örneğin, Sovyet Elektroniği MK-85 hesap makinesine yerleştirilmiştir.

    Tanım

    Dilin sözdizimi Fortran'a benzer ve birçok unsur ondan açıkça ödünç alınmıştır. Dil öğrenmek için tasarlandı, bu yüzden tasarımları olabildiğince basit. Diğer programlama dillerinde olduğu gibi, anahtar kelimeler İngilizce dilinden alınmıştır. İki temel veri türü vardır: diziler ve sayılar. Visual Basic sürümünün ortaya çıkmasıyla ve çeşitli modifikasyonlarının (VBA gibi) yanı sıra, modern programlama dillerine özgü (nesne modeli gibi) birçok başka veri türü ve ekleme dilde ortaya çıktı. Değişkenleri bildirmek özel bir bölüm gerektirmez (örneğin, Pascal'ın aksine). Bir değişken bildirmek, onun ilk kullanımıdır.

    BASIC'in eski sürümleri (BASICA, GW-BASIC gibi) modern lehçelerden önemli ölçüde farklıdır ve bugün pratik olarak kullanılmamaktadır.

    Erken sürümler

    BASIC'in ilk sürümlerinde programların görünümü, büyük ölçüde, bir satır metin düzenleyicisine sahip bir programlama ortamı için tasarlanmış olması gerçeğiyle belirlendi. Böyle bir düzenleyicide, kullanıcı ekranda (pencerede) tüm metni görüntüleyemedi, klavye ve / veya fareyi kullanarak herhangi bir yönde hareket edemedi. Satır editörlerinde, bir metin satırını değiştirmek için, kullanıcının belirli bir sayı ile satırı değiştirme komutunu vermesi ve ardından belirtilen satırın yeni metnini girmesi gerekir. Yeni bir satır eklemek için yine sayıyı belirterek insert komutunu vermeniz gerekir. Giriş dizileri ekranda sırayla görüntülenir (sayılardan bağımsız olarak). Yapılan değişiklikleri görmek için, satırları doğru sırayla (artan sayılar) çıkaran output text komutu kullanılır.

    Bütün bunlar BASIC'e yansıtılır. Her satır bir sayı ile başlar. Editöre girildiğinde, programın kaynak kodunda numarasına karşılık gelen konumda satır belirdi. Yeni bir satır eklemek için, diğer iki satırın sayıları arasındaki aralıkta bir sayı içeren bir satır eklemek gerekiyordu. Bitişik sayılara sahip satırlar arasına yeni bir satır eklemek gerekirse, satırları "yaymak" imkansızdı, numaralandırmada bir boşluk sağlamak için bu satırları başka sayılarla yeniden girmeniz gerekiyordu (veya özel RENUM komutunu kullanın, önceden girilen tüm satırları sabit bir adımla yeniden numaralandıran, tüm atlama komutlarını eşzamanlı olarak değiştiren). Programın çevrimiçi düzenlemesini basitleştirmek için satırları 10'luk adımlarla numaralandırmak bir uygulama haline geldi - bu, hemen hemen tüm durumlarda daha önce girilen sayıları değiştirmeden yeni satırlar eklemeyi mümkün kıldı. Örneğin, 20. ve 30. satırlar arasına üçüncü bir satır eklemek için 25. satır yazarsınız. BASIC programından tipik bir satır şöyle görünür:

    10 BASKI "Merhaba Dünya!"

    Numaralar GOTO deyimi için etiket işlevi gördüğünden, zaten var olan satırların numaralarını manuel olarak değiştirmek güvenli değildi. Daha önce BASIC, bu operatör için yalnızca sayısal etiketlere izin veriyordu ve her satırda benzersiz bir sayının bulunması, bunlardan herhangi birine koşulsuz olarak atlamayı mümkün kılıyordu. BASIC programlamasında sayısal etiketler ve yoğun GOTO kullanımı kaçınılmazdı, bu da zayıf kod yapısına katkıda bulundu ve büyük projelerde yazarların kendilerinin kafasını karıştırdı. Şaka amaçlı "makarna programlama" (spagetti kodu) terimi bile icat edildi, çünkü sık GOTO geçişlerine sahip bir programın mantığı bir tabak spagetti'ye benziyor.

    Operatörün sonlandırıcısı hattın sonuydu. Birkaç ifadeyi bir satıra yerleştirmek için aralarına iki nokta üst üste koymanız gerekir (buna dilin tüm uygulamalarında izin verilmemiştir). Çoğu lehçedeki değişken adları yalnızca bir harften oluşabilir ve ardından bir rakam eklenebilir, bu da kodun anlaşılmasına katkıda bulunmadı. Dize tipi bir değişken oluşturmak için, adından sonra bir dolar işareti ($) koymanız gerekiyordu. Bu işarete sahip olmayan bir değişken, sayısal (kayan noktalı) bir değişkendir. Sayısal türle ilgili birkaç değiştirici daha vardı: yüzde işareti (%) - bir tamsayı türü, ünlem işareti (!) - normal kesinlik, oktotorp (#) - çift kesinlik (kayan noktalı veriler için, yani kesirler) . Sayısal değiştiriciler tüm sürümlerde kullanılmadı.

    İfadeler, diğer prosedürel programlama dillerinin çoğuna benzer, ancak BASIC'in ilk sürümlerinde kümeleri oldukça zayıftı.

    Koşullu operatörün (IF..THEN) başlangıçta yalnızca bir dalı vardı - ELSE dalı içinde yoktu ve koşulsuz bir sıçrama kullanılarak modellenmişti. Böylece, aşağıdaki programda, temel bir işlem gerçekleştirilir - bir sayı girme ve değerine bağlı olarak "Negatif sayı" veya "Pozitif sayı veya sıfır" mesajını görüntüleme:

    10 INPUT I 20 IF >= 0 SONRA PRINT "Pozitif sayı veya boş" : GOTO 40 30 PRINT "Negatif sayı" 40 END

    Bir ON..GOTO hesaplanmış etiket atlama operatörü vardı (benzer bir Fortran yapısından miras alındı) - ON'dan sonra sayısal bir ifade ve GOTO'dan sonra bir satır numaraları listesi belirtildi. Geçiş, listedeki sayısı ifadenin değerine karşılık gelen satırda gerçekleşti. Ayrıca döngüler de vardır (FOR sayacı olan bir döngü ve WHILE ön koşulu olan bir döngü).

    Kullanıcı tanımlı işlevlerin (kod bölümleri, yeniden kullanılabilir) kullanımı iki şekilde mümkündü: tanımlı işlevler ve alt programlar.

    Altyordamlar, adları olmadığı ve parametre kabul edip/veya döndüremedikleri için C veya Pascal gibi dillerin işlevlerine benzemiyordu. Parametreler ve sonuçlar genel değişkenlerden geçirildi (BASIC'in ilk sürümlerindeki tüm değişkenler geneldi). Alt programlar genellikle modülün sonuna yazılır ve numaralandırma, planlanan satır sayısından açıkça daha fazladır (örneğin, program birkaç yüz satıra sahip olsa bile, bir alt program bloğunun numaralandırması 5000'den başlayabilir). Alt programların başlıkları veya adları yoktu ve diğer kod parçalarından hiçbir farkları yoktu. Alt program, GOSUB anahtar kelimesi kullanılarak çağrıldı.<метка>. Bu pratik olarak GOTO'nun bir klonudur, tek bir şey dışında: çağrı noktasına dönüş, alt programda RETURN anahtar sözcüğüne ulaşıldığında otomatik olarak gerçekleşti. GOSUB , GOTO gibi, çok sayıda koşulsuz atlama ve alt yordam içeren bir programın yürütülmesini izlemek zor olduğundan, yalnızca zayıf kod yapısına katkıda bulundu.

    Alt programların adlandırılamaması (ve üzerlerindeki kontrolün transfer edilememesi), parametrelerin geçilememesi, yerel değişkenlerin olmaması, büyük projelerde sadece sayısal etiketlerin kullanılması kodda karışıklığa neden oldu ve hata ayıklamayı çok zorlaştırdı.

    Bazı BASIC lehçelerinde, CHAIN ​​​​deyimi kullanılarak doğrudan program yürütme sırasında (mevcut dosya boşaltıldı) kod içeren bir dosya yüklemek mümkündü. Bu, büyük bir projeyi ihtiyaç sırasına göre çağırarak modüllere ayırmanıza izin verdiği için dilin en kullanışlı özelliklerinden biriydi.

    eleştiri

    BASIC, basitliği ve yapı eksikliği, küçük programlar için uygun olabilecek ancak büyük projelerin çökmesine yol açabilecek kısır programlama uygulamalarını ve alışkanlıklarını teşvik ettiği için ağır bir şekilde eleştirildi.

    Edsger Dijkstra'nın "kartvizitlerinden" biri şu ifadeydi: " Daha önce BASIC eğitimi almış öğrencilere iyi programlama öğretmek neredeyse imkansızdır. Sözde programcılar olarak, geri dönüşü olmayan bir zihinsel bozulma yaşadılar.».

    Ek olarak, BASIC'i eleştirenler, onun karmaşık programların profesyonel gelişimi için bir araç olarak değil, programcı olmayan öğrencilerin basit programlar yazabilecekleri bir araç olarak tasarlandığını genellikle görmezden gelirler. BASIC'in modern lehçeleri ve uygulamalarından bahsedersek, o zaman dilin orijinal biçiminden çok uzaklaştılar, daha yapılandırılmışlar ve yetenekler açısından C, Pascal vb.

    Üreticiler

    Farklı zamanlarda, çeşitli kuruluşlar, şirketler, firmalar tarafından BASIC tercümanları üretildi:

    geçiş prosedürel Nesne mobil

    Basic4ppc GLBasic NS Temel

    Programlama dillerinin tarihi, programlamadaki birçok gerçek devrim örneğini bilir. BASIC programlama dilinin tarihi bundan ibarettir. Öğrenmek için küçük, alışılmadık bir dilden, neredeyse tüm programlama dilleri için gerçek bir standart haline geldi.

    BASIC programlama dili, öğrencilere programlamanın temellerini öğretmek amacıyla 1964 yılında Thomas Kurtz ve John Kenemi tarafından geliştirilmiştir. Dil, oldukça kolay bir arayüzle basit, anlaşılır çıktı. Geliştiricilerin amacı açıktı: erişilebilir olacak basit bir programlama diline ihtiyaçları vardı. BASIC'in "Babalarının" dikkate aldığı ana hükümler şunlardır:

    1) Kullanım kolaylığı;

    2) kütle karakteri;

    3) bilgi vericilik;

    4) Dil, hataları izleme ve düzeltme yeteneğini desteklemelidir;

    5) Dil ciddi donanım bilgisi gerektirmemeli;

    6) Programlama dili, kullanıcı ile işletim sistemi arasında bir bağlantı haline gelmelidir.

    Sonuç olarak, diğer birçok eğitim kurumunda kullanılmaya başlandı. On bir yıl sonra, milyonlarca yeni mikrobilgisayar dünyaya akın ederken, BASIC programlama dili Microsoft'u yaratan Bill Gates ve Paul Allen'ın dikkatini çekti. Güçlerini birleştirerek, 4 kb RAM (!) ile bile çalışabilen BASIC sürümünü kendileri için geliştirenler onlardı.

    Bir süre sonra, en sık kullanılan ve popüler programlama dillerinden biri haline gelen onların versiyonuydu. BASIC programlama dilinin oluşumu sırasında sık sık kapatmaya çalıştılar, birçoğu kusurları bulmak ve bu dilin kullanımının kaldırılmasını sağlamak istedi. Ancak BASIC'in gelişiyle, diğerlerinin yönlendirdiği ana programlama dili haline geldi. Zaten GW-temel olarak adlandırıldığını belirtmekte fayda var. Ardından Borland ve Quick Basic'ten turbo basic geldi. Daha sonra geliştirilen tüm sürümler, mutlaka öncekilerle uyumlu olacak şekilde yazılmıştır. Bu programlama dilinin en son sürümü bile küçük ayarlamalarla ilk sürümle çalışır.

    Ve sonra Microsoft çağı geldi. 90'ların başı: Windows işletim sistemi neredeyse tüm yazılım pazarını ele geçirdi, programcılar dışında herkes onu görmekten mutluydu. Hayatları cehenneme döndü. En sıradan, basit pencereleri oluşturmak için, bir kod sayfası denizi yazmak, yazı tiplerini değiştirmek ve son olarak yeni düğmeler "çizmek" gerekiyordu. Ancak dezavantajlarından çok avantajları olduğu kabul edilmelidir ve sonunda işletim sisteminin üçüncü sürümü PC için dünya standardı haline geldi.

    BASIC'i değiştirmeye ihtiyaç vardı. Böylece BASIC programlama dili Microsoft Visual Basic olarak bilinir hale geldi. Şirketin kapsamlı planları hakkında henüz hiçbir şey bilinmiyordu ve geliştiriciler yeni programlama dilini öncelikle profesyonel olmayanlara odakladılar. Visual Basic'te uygulanan programlama sistemi, pencerelerin ağır yapısından uzaklaşmayı ve en büyük bilgi birikimine sahip olmayan iyi düzeyde programlar oluşturmayı mümkün kıldı. Fortran ve Pascal gibi diğer oldukça iyi programlama dillerini fiilen gömen tabuttaki son çivi, uygulamalar için bir tür BASIC'in geliştirilmesiydi.

    Şu anda BASIC programlama dili o kadar popüler ki, kendine saygısı olan hemen hemen her programcı onu biliyor ve kullanıyor. Microsoft office ve internet explorer gibi uygulamalarda kullanıldığını belirtmek isterim. Ancak, belki de en önemli uygulama alanlarından biri olan BASIC programlama dili, .NET ortamında uygulamalar geliştirirken ve yapılandırırken alındı. Buna ek olarak, Bill Gates'in en son geliştirmesi olan Microsoft C++, Dartmouth College'dan iki profesör sayesinde, kullanıcılara çok çeşitli olanaklar sunuyor.

    Bölümün kullanımı oldukça kolaydır. Önerilen alana, sadece istediğiniz kelimeyi girin, size anlamlarının bir listesini vereceğiz. Sitemizin çeşitli kaynaklardan - ansiklopedik, açıklayıcı, kelime oluşturma sözlükleri - veri sağladığını belirtmek isterim. Burada, girdiğiniz kelimenin kullanım örnekleriyle de tanışabilirsiniz.

    temel kelimesinin anlamları

    Bulmaca sözlüğünde BASIC

    TEMEL

    Ansiklopedik Sözlük, 1998

    TEMEL

    BASIC (BASIC; İngilizce Beginners kelimelerinin baş harflerinden - yeni başlayanlar için, Çok amaçlı - evrensel, Sembolik - sembolik, Öğretim - eğitim, Kod - kod) programlamanın temellerini öğretmeye odaklanmış bir programlama dilidir. Esas olarak kişisel bilgisayarlarda programlamada kullanılır.

    Vikipedi

    TEMEL

    TEMEL(itibaren TEMEL, kısaltması - yeni başlayanlar için evrensel sembolik talimat kodu) - üst düzey programlama dilleri ailesi.

    1964 yılında Dartmouth College profesörleri Thomas Kurtz ve John Kemeny tarafından geliştirilmiştir.

    Dil, programlama yapmayan öğrencilerin sorunlarını çözmek için bağımsız olarak bilgisayar programları oluşturabilecekleri bir araç olarak yaratılmıştır. Başta ev bilgisayarları dili olmak üzere çeşitli lehçeler şeklinde yaygınlaşmıştır. Bugüne kadar, ilk sürümlerin basitlik özelliğinden önemli ölçüde uzaklaşan, ilkelciliği sınırlayan ve tipik bir dizi özelliğe sahip oldukça sıradan bir üst düzey dile dönüşen önemli değişiklikler geçirdi. Temel olarak çeşitli Windows işletim sistemi sürümleri altında çalışan uygulama programlarının geliştirilmesi için bağımsız bir dil olarak kullanılır. Ayrıca, çeşitli amaçlar için uygulama yazılım sistemleri için yerleşik bir dil olarak ve programlanabilir hesap makineleri için bir dil olarak yaygın şekilde kullanılır.

    TEMEL (belirsizliği giderme)

    TEMEL, Temel:

    • Temel İngilizce, İngilizceye dayalı uluslararası yapay bir dildir.
    • BASIC, üst düzey bir programlama dilidir.
    • BASIC - 1990'ların başındaki Sovyet tüketici bilgisayarı, ZX Spectrum'un klonu.
    • BASIC Vilnius - PDP-11 mimari işlemcilere sahip 16 bit bilgisayarlar için BASIC programlama dilinin uygulanması.

    Literatürde temel kelimesinin kullanım örnekleri.

    Dizedeki boşluklar yalnızca programcının rahatlığı için dahil edilmiştir - TEMEL onları görmezden gelir.

    Dikkat TEMEL geçerli imleç konumunu saklayan kendi değişkenine sahiptir.

    İmlecin konumunu değiştiren bir derleyici alt yordamı eklerseniz, o zaman TEMEL kontrol ona geri döndüğünde yeni imleç konumunu yok sayacaktır.

    Dikkat TEMEL normalde program çalışmaya başladığında imleci kapatır.

    Çünkü TEMEL ikili sayıların kullanımına izin vermez, nitelikleri belirlemek için bazı işlemler gerekir.

    Ne zaman TEMEL bir karakteri 16. forma dönüştürür, ardından ilki sıfırsa yalnızca bir basamak döndürür, bu nedenle bu yöntemin doğru çalışması için kaldırılan sıfırın kurtarılması gerekir.

    Kapk gibi üst düzey diller TEMEL, bu bölgeleri otomatik olarak oluşturun.

    Varsayılan TEMEL arabellek sayısını 8 olarak ayarlar, ancak bu sayıyı 4 ile 15 arasında değiştirebilirsiniz.

    TEMEL, dosya işlemleri için hazırlık çalışmalarını otomatik olarak gerçekleştirin.

    gibi üst düzey diller TEMEL, bu sembolleri otomatik olarak eklerken, montaj programlarının her değişken dosyaya yazıldıktan sonra bu sembolleri eklemeye özen göstermesi gerekir.

    Her ne kadar bazı durumlarda TEMEL kapatılmamış dosyaları affeder, ancak durum böyle değildir.

    Doğrudan erişim dosyalarında TEMEL tüm değişkenleri - sayısal olanlar dahil - dizge olarak ele alır.

    Ancak, önemli bir hata oluştuğunda hata işlemeyi ayarlayabilirsiniz. TEMEL otomatik olarak oluşturduğunuz yük devretme prosedürüne atlar.

    Bu prosedürü gerçekleştirirken TEMEL kontrolü, programı oluşturan komutlar dizisinden şuraya aktarır: TEMEL Diğer bir deyişle, bir montaj dili yönergeleri dizisi halinde kodu çözülebilen yönergelerin depolandığı bir yere.

    Bu sorunun olağan çözümü, yordamı bu bellek adreslerine yerleştirmektir. TEMEL erişilemiyor.

    Ve onların rehberliğinde, üniversite öğrencilerinden oluşan bir ekip tarafından uygulandı. Zamanla, diğer lehçeler ortaya çıkmaya başlayınca, orijinal uygulama çağrılmaya başlandı. Dartmouth TEMEL.

    BASIC, öğrencilerin zaman paylaşımlı terminalleri kullanarak kolayca program yazabilmeleri için tasarlanmıştır. Daha "basit" kullanıcılara yönelikti, programın yürütme hızıyla pek ilgilenmiyordu, ancak yalnızca özel bir eğitim almadan sorunlarını çözmek için bir bilgisayar kullanma becerisiyle ilgileniyordu.

    Dilin tasarımında aşağıdaki sekiz ilke kullanılmıştır. Yeni dil şuydu:

    1. kullanımı kolay yeni başlayanlar için;
    2. programlama dili olmak genel amaçlı;
    3. bir fırsat sağlamak işlevsellik uzantıları deneyimli programcılar için kullanılabilir;
    4. olmak etkileşimli;
    5. net hata mesajları sağlayın;
    6. küçük programlarda hızlı çalışın;
    7. donanımın çalışmasının anlaşılmasını gerektirmez;
    8. kullanıcıyı işletim sisteminden korur.

    Dil, kısmen Fortran II'ye ve kısmen Algol 60'a dayanıyordu, zaman paylaşımına ve daha sonra metin işlemeye ve matris aritmetiğine uygun hale getirmek için eklemeler yapıldı. BASIC başlangıçta birden fazla terminal desteğiyle GE-265 ana bilgisayarında uygulandı. Popüler inanışın aksine, kurulduğu sırada derlenmiş bir dildi.

    Yükseklik

    Dil zaten birkaç mini bilgisayarda kullanılıyor olsa da, asıl yayılması Altair 8800 mikro bilgisayarında ortaya çıkmasıyla başladı. Birçok programlama dili, bu tür makinelerin kullanıcılarının karşılayabileceği küçük belleğe sığamayacak kadar büyüktü. Kağıt bant (daha sonra ses kaseti) gibi yavaş ortama sahip ve uygun bir metin düzenleyicisi olmayan makineler için BASIC gibi küçük bir dil bir nimetti.

    Olgunluk

    Orijinal BASIC'in en büyük refah ve gelişme dönemi, 1970'lerin sonu - 1980'lerin ilk yarısı olarak kabul edilebilir. Bu dönemde, neredeyse tüm kişisel bilgisayarların kendi BASIC tercümanları vardı ve bunlar genellikle ROM'a dikilmişti ve bu, en basit bilgisayarlarda genellikle bir işletim sisteminin işlevlerini de yerine getiriyordu. Hemen hemen tüm daha güçlü bilgisayarlarda etkileşimli BASIC sistemleri de vardı. Karakteristik olarak, neredeyse hiç yoktu. derleyiciler BASIC, uygulamaların büyük çoğunluğu bir satır düzenleyici ve bir tercümandan oluşan standart bir melezdi. Orijinal BASIC'in ilkelliğinden duyulan memnuniyetsizlik, dilin temel araçlarını geliştirme girişimlerine yol açtı, bu da karmaşık dallanma operatörlerinin, ek döngü türlerinin, parametrelerle adlandırılmış prosedürlerin bazı uygulamalarında ortaya çıkmasına neden oldu.

    IBM PC platformu için BASIC'in birkaç yeni sürümü oluşturuldu. Microsoft, BASICA, GW-BASIC (IBM'den "ürün yazılımı" gerektirmeyen bir BASICA modifikasyonu) ve QuickBASIC dahil olmak üzere MS-DOS/PC DOS için BASIC'i sattı. İlk olarak ünlü Turbo Pascal'ı ile pazara giren Borland, 1985 yılında aynı yazılım ortamına dayalı bir Turbo Basic 1.0 sistemi piyasaya sürdü (ardılları daha sonra PowerBASIC adı altında başka bir şirket tarafından satıldı). Diğer bazı diller, tamamen farklı bir sistemin inşa edildiği temel olarak iyi bilinen BASIC sözdizimini kullandı (örneğin, GRASS'a bakın). BASIC programlarının performansını artırma arzusu, tam teşekküllü derleyicilerin (yukarıda belirtilen Turbo Basic gibi) ve ayrıca yorumlamayı ana program yürütme yöntemi olarak sürdürürken kısmi derlemenin yapıldığı "hibrit" sistemlerin ortaya çıkmasına yol açtı. "anında" uygulandı, örneğin kısa döngülerin derlenmesi. Ek olarak, en azından IBM platformunda, derleyici BASIC programını sözde koda (genellikle tersine çevrilebilir) çevirdiğinde ve yorumlayıcı nesne modülünden ve program metniyle kodlanmış modülden yürütülebilir bir program oluşturduğunda, BASIC programlarının sözde derlemesi yayıldı. . Böyle bir program, temelde yorumlanmış olarak kalmasına rağmen, normal bir derlenmiş nesne programı gibi çalışır ve çalışır.

    1980'lerin ortalarında BASIC, programlanabilir hesap makinelerinin karmaşık modellerinde ana dil haline geldi ve bu zamana kadar tam teşekküllü bir üst düzey dilin kullanımına izin verecek güce ulaştı. Pek çok üreticinin tek kelime etmeden hesap makinelerinin HLL'si için temel olarak BASIC'i seçmesi, bu dilin belirtilen zamanda yaygınlığı ve popülaritesi hakkında en iyi şekilde konuşur. Böylece BASIC, Sovyet elektroniği MK-85 hesap makinesine ve sonraki tüm modellerine yerleştirildi. BASIC'in programlanabilir hesap makinelerinin ana HLL'si olarak kullanımı bugüne kadar devam ediyor; şu anda, 1960-80'lerin orijinal versiyonuna en çok benzeyen "hesap makinesi" BASIC'tir, örneğin, CITIZEN hesap makineleri için uygulama yalnızca 14 anahtar kelime içerir (matematiksel işlevleri saymaz) ve yalnızca tek karakterli değişken adlarına izin verir .

    1980'lerin sonunda, kişisel bilgisayarlar çok daha güçlü hale geldi ve artık BASIC'te kullanımı o kadar uygun olmayan özellikler (grafik kullanıcı arayüzü gibi) sağladı. Ek olarak, uygun programlama ortamları ve kullanışlı kitaplıklar (örneğin, Borland Pascal) ile birlikte endüstriyel dillerin (öncelikle Pascal ve C) ucuz çevirmenlerinin "eğitim" ve "ev" sınıfındaki bilgisayarlardaki görünümü Turbo Vision kitaplığı ile) BASIC için güçlü bir rekabet yarattı. BASIC, çok sayıda versiyonunun hala kullanılmasına ve satılmasına rağmen zemin kaybetmeye başladı. Aynı zamanda, çalışır durumda kalan BASIC sistemlerinin görünümünde de hızlı bir değişim başladı. Tanınmış yapısal dillere doğru kademeli bir "sürüklenme" oldu: kelime dağarcığı ve dil yapıları kümesi genişledi, karmaşık dallar ortaya çıktı, alt programlar ve işlevler, uzun değişken adları olarak adlandırıldı. Ek olarak, kişisel bilgisayarların artan yetenekleri, bir metin terminalinde etkili etkileşimli çalışmayı sağlamak için tanıtılan BASIC'in karakteristik özelliklerinden vazgeçmeyi mümkün kıldı: her satır için sayısal işaretler ve satır satır düzenleme.

    Tanım

    Dilin sözdizimi Fortran'a benzer ve birçok unsur ondan açıkça ödünç alınmıştır. Dil öğrenmek için tasarlandı, bu yüzden tasarımları olabildiğince basit. Diğer programlama dillerinde olduğu gibi, anahtar kelimeler İngilizce dilinden alınmıştır. İki temel veri türü vardır: diziler ve sayılar. Visual Basic sürümünün ortaya çıkmasıyla ve çeşitli modifikasyonlarının (VBA gibi) yanı sıra, modern programlama dillerine özgü (nesne modeli gibi) birçok başka veri türü ve ekleme dilde ortaya çıktı. Değişkenleri bildirmek özel bir bölüm gerektirmez (Pascal'ın aksine). Bir değişken bildirmek, onun ilk kullanımıdır.

    BASIC'in ilk sürümleri (BAICA, GW-BASIC gibi) modern lehçelerden önemli ölçüde farklıdır ve günümüzde neredeyse hiç kullanılmamaktadır.

    Erken sürümler

    BASIC'in ilk sürümlerinde programların görünümü, büyük ölçüde, bir satır metin düzenleyicisine sahip bir programlama ortamı için tasarlanmış olması gerçeğiyle belirlendi. Böyle bir düzenleyicide, kullanıcı ekranda (pencerede) tüm metni görüntüleyemedi, klavye ve / veya fareyi kullanarak herhangi bir yönde hareket edemedi. Satır editörlerinde, bir metin satırını değiştirmek için, kullanıcının belirli bir sayı ile satırı değiştirme komutunu vermesi ve ardından belirtilen satırın yeni metnini girmesi gerekir. Yeni bir satır eklemek için yine sayıyı belirterek insert komutunu vermeniz gerekir. Giriş dizileri ekranda sırayla görüntülenir (sayılardan bağımsız olarak). Yapılan değişiklikleri görmek için, satırları doğru sırayla (artan sayılar) çıkaran output text komutu kullanılır.

    Bütün bunlar BASIC'e yansıtılır. Her satır bir sayı ile başlar. Editöre girildiğinde, programın kaynak kodunda numarasına karşılık gelen konumda satır belirdi. Yeni bir satır eklemek için, diğer iki satırın sayıları arasındaki aralıkta bir sayı içeren bir satır eklemek gerekiyordu. Bitişik sayılara sahip satırlar arasına yeni bir satır eklemek gerekirse, satırları "yaymak" imkansızdı, numaralandırmada bir boşluk sağlamak için bu satırları başka sayılarla yeniden girmeniz gerekiyordu (veya özel RENUM komutunu kullanın, önceden girilen tüm satırları sabit bir adımla yeniden numaralandıran, tüm atlama komutlarını eşzamanlı olarak değiştiren). Programın çevrimiçi düzenlemesini basitleştirmek için satırları 10'luk adımlarla numaralandırmak bir uygulama haline geldi - bu, hemen hemen tüm durumlarda daha önce girilen sayıları değiştirmeden yeni satırlar eklemeyi mümkün kıldı. Örneğin, 20. ve 30. satırlar arasına üçüncü bir satır eklemek için 25. satır yazarsınız. BASIC programından tipik bir satır şöyle görünür:

    10 BASKI "Merhaba Dünya!"

    Numaralar GOTO deyimi için etiket işlevi gördüğünden, zaten var olan satırların numaralarını manuel olarak değiştirmek güvenli değildi. Daha önce BASIC, bu operatör için yalnızca sayısal etiketlere izin veriyordu ve her satırda benzersiz bir sayının bulunması, bunlardan herhangi birine koşulsuz olarak atlamayı mümkün kılıyordu. BASIC programlamasında sayısal etiketler ve yoğun GOTO kullanımı kaçınılmazdı, bu da zayıf kod yapısına katkıda bulundu ve büyük projelerde yazarların kendilerinin kafasını karıştırdı. Şaka amaçlı "makarna programlama" (spagetti kodu) terimi bile icat edildi, çünkü sık GOTO geçişlerine sahip bir programın mantığı bir tabak spagetti'ye benziyor.

    Operatörün sonlandırıcısı hattın sonuydu. Birkaç ifadeyi bir satıra yerleştirmek için aralarına iki nokta üst üste koymanız gerekir (buna dilin tüm uygulamalarında izin verilmemiştir). Çoğu lehçedeki değişken adları yalnızca bir harften oluşabilir ve ardından bir rakam eklenebilir, bu da kodun anlaşılmasına katkıda bulunmadı. Dize tipi bir değişken oluşturmak için, adından sonra bir dolar işareti ($) koymanız gerekiyordu. Bu işarete sahip olmayan bir değişken, sayısal (kayan noktalı) bir değişkendir. Sayısal türle ilgili birkaç değiştirici daha vardı: yüzde işareti (%) - bir tamsayı türü, ünlem işareti (!) - normal kesinlik, oktotorp (#) - çift kesinlik (kayan noktalı veriler için, yani ondalık kesirler için) ). Bazı sürümlerde, sayısal değiştiriciler uygulanmamış veya tümü uygulanmamış olabilir. Programların büyük çoğunluğunda yalnızca temel sayısal tür kullanılmıştır.

    İfadeler, diğer prosedürel programlama dillerinin çoğuna benzer, ancak BASIC'in ilk sürümlerinde kümeleri oldukça zayıftı. En eski sürümlerde, anahtar sözcük sayısı 20'ye bile ulaşmamıştı. İşte 1970'lerin sonundaki hemen hemen her BASIC sisteminde uygulanan bir dizi temel program yapısı ve etkileşimli komut:

    • LİSTE - Programın metninin monitöre doğru satır dizisinde çıktısı. Uygulamaya bağlı olarak, komut desteklenen parametreler - çıktısını almak istediğiniz satır aralığı. Bazen LLIST varyantı destekleniyordu - bir yazdırma aygıtına çıktı.
    • ÇALIŞTIR - Geçerli programı en küçük sayıya sahip satırın ilk ifadesinden çalıştırın. Bir parametre desteklenebilir - yürütmenin başlatılması gereken satır numarası.
    • REM - Yorum yapın. Anahtar kelimeden sonra ve satırın sonundan önce gelen metin, programın yürütülmesini etkilemedi. Pek çok tercüman, bir yorumun başlangıcı olarak " tek alıntıyı da destekledi.
    • INPUT "Prompt: ", Değişken - "Prompt: " metnini görüntüleyin ve kullanıcının bir değer girmesini bekleyin ve Enter tuşuna basın. Bundan sonra girilen değer Değişkene yazılacaktır. En basit uygulamalarda, INPUT istemi desteklenmiyordu ve ayrı bir PRINT deyiminde verilmesi gerekiyordu (aşağıya bakın).
    • PRINT "Metin";Değişken;Değişken;"Metin" - Sıralı olarak listelenen nesnelerin (metin ve değişken değerleri) monitöre çıkışı. Uygulamaya bağlı olarak, ayırıcılar farklı algılandı: bazı durumlarda ayırıcı en az bir boşluk çıktısına yol açtı, diğerlerinde değerler arka arkaya gösterildi ve ayırıcıların manuel olarak eklenmesi gerekiyordu. Sınırlayıcı ";" ayrıca bir sonraki satıra çeviriyi bastırma işlevini de yerine getirdi.
    • CLS - Terminal ekranını temizleme. Terminalin uygulamasına, tasarımına ve çalışma moduna bağlı olarak, metin imleci sol üst veya sol alt köşeye aktarıldı.
    • LET - Atama ("LET Değişkeni = Değer" biçimi). Sürümlerin büyük çoğunluğunda LET operatörü destekleniyordu, ancak isteğe bağlıydı - değişkenlere atamalar LET olmadan yazıldı).
    • DIM - Dizinin açıklaması. Sıradan değişkenlerin aksine, diziler bir açıklama gerektiriyordu. Maksimum dizi boyutu sayısı yalnızca uygulama tarafından belirlendi
    • VERİ - Doğrudan program metnine yerleştirilen bir dizi veri (bir sabite veya bir dizi sabitine benzer).
    • READ - VERİ kümesinden okuma komutu.
    • GOTO Lbl - Lbl'yi etiketlemek için koşulsuz atlama komutu.
    • AÇIK… GOTO - Hesaplanan geçiş komutu - AÇIK'tan sonra hesaplanmış bir ifade veya değişken olmalı ve GOTO'dan sonra - virgülle ayrılmış bir dizi etiket olmalıdır. İfadenin değeri, gidilecek etiketin numarasını gösterir.
    • IF … THEN … - Her zamanki şube operatörü. IF'den sonra mantıksal bir koşul, THEN'den sonra bu koşul doğruysa yürütülmesi gereken bir ifade konur. Kaydı kısaltmak için, birçok uygulama kuralı destekledi - THEN'in ardından bir sayı geliyorsa, atlanacak etiket budur, yani "IF ... THEN 150" formu "IF ... THEN" ile eşdeğerdir GİT 150". "IF...GOTO..." formları da desteklenebilir.
    • FOR LoopVariable=StartValue TO EndValue ADIM Adım - Adımlı döngü başlığı. Değişkenin, Step'te StartValue'dan EndValue'ye kadar bir dizi değerden sırayla geçtiği bir döngü başlatır. Döngü gövdesi, başlık ve NEXT anahtar sözcüğü ile sınırlandırılmıştır. ADIM kısmı atlanabilir - bu durumda adım bire eşitti. LoopVariable belirtilen sınırların dışına çıktığında uygun NEXT ifadesine atlar.
    • SONRAKİ - Döngü gövdesinin bir adımla tamamlanması. Açıklama, o anda yürütülen FOR döngüsünün başına atlamak ve çalışmaya devam etmek gerektiğini belirtir. Daha gelişmiş uygulamalarda NEXT, döngü değişkenlerinin virgülle ayrılmış bir listesini içerebilir - bu, programda belirli bir noktada, bir değil, birkaç döngü gövdesinin sona erdiği anlamına gelir. NEXT'in bir değişkenle kullanılması, program mantığının ihlaline karşı da sigortalanmıştır, çünkü bu komutu yürütürken, adı belirtilen değişkende değil de döngünün etkin olduğu ortaya çıkarsa, bir çalışma zamanı hatasına neden olur.
    • WHILE Koşul - Önkoşullu döngü başlığı. Koşul yanlışsa döngü sona erer. Bu durumda, başlığa karşılık gelen WEND ifadesinin ötesinde bir geçiş vardı.
    • WEND - WHILE döngüsünün gövdesinin sonu. NEXT'e benzer, ancak önkoşullu bir döngü içindir.
    • GOSUB Etiketi - Etiket ile başlayan alt programa atla. RETURN ifadesine ulaşıldığında dönüş gerçekleşir. Yinelemeli prosedür çağrıları genellikle yasaktı ve çalışma zamanı hatasıyla sonuçlandı.
    • RETURN - Bir alt programdan dönüş ifadesi. Alt programa atlayan GOSUB komutunun ardından ifadeye koşulsuz bir sıçrama yapılır.
    • END - Program yürütmenin sonu. Sistem tercümana girer ve kullanıcıdan komutları girmesi istenir.
    • ZİNCİR - Harici ortamdan bir dizi program satırı yükleme.
    • OPEN - Harici ortamda bir veri dosyasının açılması.
    • KAPAT - Harici ortamdaki veri dosyasının kapatılması.
    • GET - Belirtilen değişkenlerin değerlerinin dosyadan sıralı okunması, dosya işaretçisinin son okunan karakterin ötesine taşınması.
    • PUT - Dosya işaretçisini son yazılan karakterin ötesine taşıyarak, belirtilen değişkenlerin değerlerinin bir dosyaya sıralı olarak yazılması.
    • DELETE - Etkileşimli komut - belirtilen numaraya sahip satırı silin.
    • KAYDET - Etkileşimli mod komutu - geçerli programı harici ortamdaki bir dosyaya kaydetme.
    • LOAD - Etkileşimli mod komutu - harici ortamdaki bir dosyadan belleğe bir program yükleme. Kural olarak, varsayılan olarak, daha önce indirilen program ve verilerin yok olmasına yol açtı.
    • RENUM - Etkileşimli mod komutu - belirli bir sayıdan başlayarak belirli bir adımla program satırlarının tümünü veya belirli bir aralığını yeniden numaralandırma. Varsayılan olarak - programın tüm satırları 10'luk bir adımla yeniden numaralandırılır.

    Koşullu operatörün (IF..THEN) başlangıçta yalnızca bir dalı vardı - ELSE dalı içinde yoktu ve koşulsuz bir sıçrama kullanılarak modellenmişti. Böylece, aşağıdaki programda, temel bir işlem gerçekleştirilir - bir sayı girme ve değerine bağlı olarak "Negatif sayı" veya "Pozitif sayı veya sıfır" mesajını görüntüleme:

    10 INPUT I 20 IF >= 0 SONRA PRINT "Pozitif sayı veya boş" : GOTO 40 30 PRINT "Negatif sayı" 40 END

    Bir ON..GOTO hesaplanmış etiket atlama operatörü vardı (benzer bir Fortran yapısından miras alındı) - ON'dan sonra sayısal bir ifade ve GOTO'dan sonra bir satır numaraları listesi belirtildi. Geçiş, listedeki sayısı ifadenin değerine karşılık gelen satırda gerçekleşti. Ayrıca döngüler de vardır (FOR sayacı olan bir döngü ve WHILE ön koşulu olan bir döngü).

    Kullanıcı tanımlı işlevlerin (kod bölümleri, yeniden kullanılabilir) kullanımı iki şekilde mümkündü: tanımlı işlevler ve alt programlar.

    Altyordamlar, adları olmadığı ve parametre kabul edip/veya döndüremedikleri için C veya Pascal gibi dillerin işlevlerine benzemiyordu. Parametreler ve sonuçlar genel değişkenlerden geçirildi (BASIC'in ilk sürümlerindeki tüm değişkenler geneldi). Alt programlar genellikle modülün sonuna yazılır ve numaralandırma, planlanan satır sayısından açıkça daha fazladır (örneğin, program birkaç yüz satıra sahip olsa bile, bir alt program bloğunun numaralandırması 5000'den başlayabilir). Alt programların başlıkları veya adları yoktu ve diğer kod parçalarından hiçbir farkları yoktu. Alt program, GOSUB anahtar kelimesi kullanılarak çağrıldı.<метка>. Bu pratik olarak GOTO'nun bir klonudur, tek bir şey dışında: çağrı noktasına dönüş, alt programda RETURN anahtar sözcüğüne ulaşıldığında otomatik olarak gerçekleşti. GOSUB , GOTO gibi, çok sayıda koşulsuz atlama ve alt yordam içeren bir programın yürütülmesini izlemek zor olduğundan, yalnızca zayıf kod yapısına katkıda bulundu. Tekrara izin verilmedi.

    Alt programların adlandırılamaması (ve üzerlerindeki kontrolün transfer edilememesi), parametrelerin geçilememesi, yerel değişkenlerin olmaması, büyük projelerde sadece sayısal etiketlerin kullanılması kodda karışıklığa neden oldu ve hata ayıklamayı çok zorlaştırdı.

    Bazı BASIC lehçelerinde, CHAIN ​​​​deyimi kullanılarak doğrudan program yürütme sırasında (mevcut dosya boşaltıldı) kod içeren bir dosya yüklemek mümkündü. Bu, büyük bir projeyi ihtiyaç sırasına göre çağırarak modüllere ayırmanıza izin verdiği için dilin en kullanışlı özelliklerinden biriydi.

    eleştiri

    En parlak döneminde (1970-1980), BASIC ağır bir şekilde eleştirildi. BASIC, erken sürümlerin sözdizimsel yoksulluğu ve birçok tanınmış ve uygun yapı ve mekanizmanın yokluğu ile ilişkili dilin bariz eksikliklerini belirtmenin yanı sıra, basitliği ve yapısal olmayışının kısır geliştirme uygulamalarının kullanımını teşvik ettiği için eleştirildi. mevcut ihtiyaçlar için küçük programların hızlı bir şekilde oluşturulması için bazen uygun olabilecek, ancak büyük projelerin çökmesine yol açabilecek tehlikeli programlama alışkanlıklarının geliştirilmesine katkıda bulunur.

    Her yerde bulunan BASIC tabanlı başlangıç ​​programlama eğitimi sert bir şekilde eleştirildi. Edsger Dijkstra'nın "arama kartlarından" biri şu ifadeydi:

    Daha önce BASIC eğitimi almış öğrencilere iyi programlama öğretmek neredeyse imkansızdır. Müstakbel programcılar olarak, iyileşme ümidi olmadan zihinsel olarak sakatlar.

    orjinal metin(İngilizce)

    Daha önce BASIC ile karşılaşan öğrencilere iyi programlama öğretmek neredeyse imkansızdır: potansiyel programcılar olarak, yenilenme umudunun ötesinde zihinsel olarak sakatlanmışlardır.

    Eleştiriye yanıt olarak, BASIC taraftarları, eleştirmenlerin dile, kötüye kullanımına atfedilmesi gereken olumsuz yönleri atfettiklerine dikkat çekiyor. BASIC'in dezavantajları (ilk lehçeleri aklımızda tutarsak), üzerinde profesyonel olarak karmaşık ve büyük programlar geliştirmeye çalışırken ve onu programcılara öğretmek için temel dil olarak kullanırken ortaya çıkıyor, ancak bu dil bu uygulamaların hiçbiri için tasarlanmamıştı; ana görevi öğrencilere sağlamaktı- programcı olmayanlar sonra fırsat minimum kendi kendine yazmayı öğrenmek protozoa programlar kendi ihtiyaçları için bu iş için uzmanların dikkatini dağıtmamak için. Dil bu görev için oldukça uygundur.

    BASIC'in modern lehçeleri ve uygulamalarından bahsedersek, o zaman dilin orijinal biçiminden o kadar uzağa gittiler ki, yukarıdakilerin hepsinin onlarla ilgili olduğu düşünülemez. BASIC'in modern lehçeleri oldukça yapılandırılmış dillerdir, yetenekler açısından C, Pascal vb.

    Üreticiler

    Farklı zamanlarda, çeşitli kuruluşlar, şirketler, firmalar tarafından BASIC tercümanları üretildi:

    Sovyet:

    • Vilnius Üniversitesi - Vilnius
    • SSCB Bilimler Akademisi Sibirya Şubesi Bilgi İşlem Merkezi - Novosibirsk
    • Nizhny Novgorod Devlet Üniversitesi N. I. Lobachevsky'nin adını aldı - Nizhny Novgorod

    Uygulamalar

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

    "Temel" makalesi hakkında bir inceleme yazın

    notlar

    Edebiyat

    • Dyakonov V., Munerman V., Samoylova T., Yemelchenkov Ye. QBASIC için Devrimci Kılavuz. - Birmingham: Wrox Press Ltd, 1996. - 578 s.
    • Dyakonov V.P. Kişisel bilgisayarlar için BASIC'te algoritmalar ve programlar hakkında referans kitabı. - M.: Nauka, Fizmatlit, 1987. - 240 s.
    • Dyakonov V.P. Kişisel bilgisayarların kullanımı ve BASIC'te programlama. - M .: Radyo ve iletişim, 1989. - 288 s.
    • Dyakonov V.P. Modern yabancı hesap makineleri. - M .: SOLON-R, 2002. - 400 s.
    standartlar
    • ANSI X3.60-1978 "MİNİMUM TEMEL İÇİN"
    • ISO/IEC 6373:1984 "VERİ İŞLEME - PROGRAMLAMA DİLLERİ - MİNİMAL TEMEL"
    • ANSI X3.113-1987 "PROGRAMLAMA DİLLERİ TAM TEMEL"
    • GOST 27787-88 BASIC programlama dili (ISO 6373:1984'ü içerir)
    • ANSI X3.113 YORUMLAR-1992 "TEMEL TEKNİK BİLGİ BÜLTENİ # 1 ANSI 03.113-1987 YORUMLARI"

    Bağlantılar

    • Andrey Kolesov. Yazarın versiyonu. "Science and Life" dergisinde küçük edebi düzenleme ile No. 10/2000, s. 18-20.
    • Dartmouth College Ön Baskı, 1 Ekim 1964.
    • Thomas E. Kurtz. , 1977.
    • (İngilizce)

    BASIC'i karakterize eden bir alıntı

    Bu uysal, nazik, samimi ses birdenbire Natasha'ya çok tuhaf göründü.
    - Konuşmayalım dostum, ona her şeyi anlatacağım; ama sana bir şey soruyorum - beni arkadaşın olarak gör ve yardıma, tavsiyeye ihtiyacın olursa, sadece ruhunu birine dökmen gerekiyor - şimdi değil, ama ruhunda netleştiğinde - beni hatırla. Elini aldı ve öptü. "Yapabilirsem mutlu olacağım ..." Pierre utandı.
    Benimle böyle konuşma, buna değmezim! Natasha çığlık attı ve odadan çıkmak istedi ama Pierre onu elinden tuttu. Ona söyleyecek başka bir şeye ihtiyacı olduğunu biliyordu. Ama bunu söyleyince kendi sözlerine şaşırdı.
    "Dur, dur, tüm hayatın önünde," dedi ona.
    - Benim için? HAYIR! Benim için her şey gitti," dedi utanç ve kendini aşağılayarak.
    - Her şey kayıp mı? o tekrarladı. - Ben olmasaydım, ama dünyanın en güzel, en zeki ve en iyi insanı olsaydım ve özgür olsaydım, şu anda dizlerimin üzerinde elini ve sevgini isterdim.
    Natasha, günler sonra ilk kez minnettarlık ve şefkat gözyaşlarıyla ağladı ve Pierre'e bakarak odadan çıktı.
    Pierre de onun peşinden neredeyse bekleme odasına koştu, boğazını ezen duygu ve mutluluk gözyaşlarını tuttu, kollarının içine düşmeden bir kürk manto giydi ve kızağa bindi.
    "Şimdi nereye gidiyorsun?" diye sordu arabacı.
    "Nerede? Pierre kendi kendine sordu. Şimdi nereye gidebilirsin? Gerçekten bir kulüpte mi yoksa misafirlerde mi? Tüm insanlar, yaşadığı şefkat ve sevgi duygusuyla karşılaştırıldığında çok acınası, çok fakir görünüyordu; En son ona gözyaşları içinde baktığı o yumuşacık, minnettar bakışla karşılaştırıldığında.
    "Eve," dedi Pierre, on derece dona rağmen, geniş, neşeyle nefes alan göğsünde ayı postu bir palto açarak.
    Soğuk ve açıktı. Kirli, yarı karanlık sokakların üzerinde, siyah çatıların üzerinde karanlık, yıldızlı bir gökyüzü vardı. Sadece gökyüzüne bakan Pierre, ruhunun bulunduğu yüksekliğe kıyasla dünyevi her şeyin aşağılayıcı alçaklığını hissetmedi. Arbat Meydanı'nın girişinde, Pierre'in gözlerine kocaman, yıldızlı, karanlık bir gökyüzü açıldı. Prechistensky Bulvarı'nın yukarısındaki bu gökyüzünün neredeyse ortasında, çevrili, her tarafa yıldızlarla serpiştirilmiş, ancak dünyaya yakın olan her şeyden farklı, beyaz ışık ve yukarı kaldırılmış uzun bir kuyruk, 1812'den kalma devasa parlak bir kuyruklu yıldız duruyordu. Dedikleri gibi, her türlü dehşeti ve dünyanın sonunu haber veren kuyruklu yıldız. Ancak Pierre'de uzun parlak kuyruğu olan bu parlak yıldız korkunç bir duygu uyandırmadı. Karşısında, Pierre, gözleri yaşlarla ıslanmış, neşeyle, sanki parabolik bir çizgi boyunca ölçülemez boşluklarda tarif edilemez bir hızla uçmuş gibi, birdenbire yeri delen bir ok gibi, burada olduğu tek yere çarpan bu parlak yıldıza neşeyle baktı. siyah gökyüzünde seçildi ve durdu, kuyruğunu şiddetle yukarı kaldırdı, parıldayan diğer sayısız yıldız arasında beyaz ışığıyla parladı ve oynadı. Pierre'e, bu yıldızın yeni bir hayata doğru çiçek açmasında olana tamamen karşılık geldiği, ruhu yumuşattığı ve cesaretlendirdiği görüldü.

    1811'in sonundan itibaren, Batı Avrupa'da artan silahlanma ve kuvvetlerin yoğunlaşması başladı ve 1812'de bu kuvvetler - milyonlarca insan (orduyu taşıyan ve besleyenler dahil) Batı'dan Doğu'ya, Rusya sınırlarına taşındı. 1811'den beri aynı şekilde Rusya'nın güçleri bir araya getirildi. 12 Haziran'da Batı Avrupa güçleri Rusya sınırlarını aştı ve savaş başladı, yani insan aklına ve tüm insan doğasına aykırı bir olay gerçekleşti. Milyonlarca insan birbirine karşı öyle sayısız vahşet, aldatma, vatana ihanet, hırsızlık, sahtecilik, sahte banknot basımı, soygun, kundaklama ve cinayetler işledi ki, bunlar yüzyıllar boyunca tüm dünya mahkemelerinin kronolojisi tarafından toplanamayacak ve , bu dönemde insanlar onları işleyenlere suç olarak bakmıyordu.
    Bu olağanüstü olayı yaratan neydi? Bunun sebepleri nelerdi? Tarihçiler saf bir kesinlikle, bu olayın nedenlerinin Oldenburg Düküne yapılan hakaret, kıta sistemine uymama, Napolyon'un iktidar arzusu, İskender'in sertliği, diplomatların hataları vb.
    Bu nedenle, çıkış ile resepsiyon arasında Metternich, Rumyantsev veya Talleyrand'ın daha ustaca bir kağıt parçası yazması veya İskender'e Napolyon'a yazması yeterliydi: Mösyö mon frere, je consens a rendre le duche au duc d "Oldenbourg, [Lord kardeşim, dükalığı Oldenburg Düküne iade etmeyi kabul ediyorum.] - ve savaş olmazdı.
    Çağdaşlar için durumun böyle olduğu açıktır. Napolyon'a savaşın nedeninin İngiltere'nin entrikaları olduğu gibi göründüğü açıktır (bunu St. Helena adasında söylediği gibi); İngiliz Meclisi üyelerine, savaşın nedeninin Napolyon'un güç hırsı olduğunu düşünmesi anlaşılır bir durumdur; Oldenburg Prensi'ne savaşın nedeninin kendisine karşı işlenen şiddet olduğunu düşündüğü; tüccarlara savaşın nedeninin Avrupa'yı mahveden kıta sistemi olduğunu, eski askerlere ve generallere asıl nedenin onları çalıştırma ihtiyacı olduğunu düşündüklerini; zamanın meşruiyetçilerine les bons principes'i [iyi ilkeleri] geri getirmenin gerekli olduğunu ve zamanın diplomatlarına her şeyin Rusya'nın 1809'da Avusturya ile ittifakının zekice Napolyon'dan saklanmaması ve bir muhtıra düzenlenmesi nedeniyle gerçekleştiğini söyledi. 178 numara için beceriksizce yazılmış. Sayısız bakış açısının sayısız farklılığına bağlı olan bu ve sayısız, sonsuz sayıda nedenin çağdaşlara göründüğü açıktır; ama yaşanan olayın büyüklüğünü tüm hacmiyle düşünen, basit ve korkunç anlamını araştıran biz torunlar için bu nedenler yetersiz görünüyor. Napolyon güce aç, İskender katı, İngiltere'nin politikası kurnaz ve Oldenburg Dükü gücendiği için milyonlarca Hristiyan'ın birbirini öldürmesi ve işkence etmesi bizim için anlaşılmaz. Bu koşulların cinayet ve şiddet olgusuyla nasıl bir bağlantısı olduğunu anlamak mümkün değil; neden dükün gücenmesi nedeniyle Avrupa'nın diğer ucundan binlerce insan Smolensk ve Moskova vilayetlerinde halkı öldürüp mahvetti ve onlar tarafından öldürüldü.
    Tarihçi olmayan, araştırma sürecine kapılmayan ve bu nedenle olayı açık bir sağduyu ile düşünen biz torunlar için, nedenleri sayısız sayıda görünür. Sebepleri ne kadar araştırırsak, o kadar çok açığa çıkarlar ve herhangi bir tek sebep veya bir sebepler dizisi bize kendi içinde eşit derecede adil ve olayın korkunçluğuna kıyasla önemsizliği açısından eşit derecede yanlış görünür. ve tamamlanmış bir olay meydana getirmek için (diğer tüm tesadüfi nedenlerin katılımı olmadan) geçersizliği açısından eşit derecede yanlıştır. Napolyon'un birliklerini Vistula'nın ötesine çekmeyi ve Oldenburg Dükalığı'nı geri vermeyi reddetmesiyle aynı neden, bize ilk Fransız onbaşının ikincil hizmete girme arzusu veya isteksizliği gibi görünüyor: çünkü hizmete gitmek istemiyorsa ve Napolyon'un ordusunda çok daha az insan olması bir yana, başka bir, üçüncü ve bininci onbaşı ve asker istemezdi ve savaş olamazdı.
    Napolyon, Vistül'ün ötesine çekilme talebine gücenmeseydi ve birliklere ilerleme emri vermeseydi, savaş olmazdı; ancak tüm çavuşlar ikincil hizmete girmek istemezse, savaş da olamazdı. İngiltere'nin entrikaları olmasaydı savaş da olmazdı ve Oldenburg Prensi olmazdı ve İskender'de bir hakaret duygusu olmazdı ve Rusya'da otokratik güç olmazdı ve Fransız devrimi olmazdı ve ardından gelenler diktatörlük ve imparatorluk ve Fransız Devrimi'ni yaratan her şey vb. Bu sebeplerden biri olmadan hiçbir şey olamazdı. Dolayısıyla tüm bu nedenler - milyarlarca neden - olanı üretmek için çakıştı. Ve bu nedenle, olayın münhasır nedeni hiçbir şey değildi ve olay sadece olması gerektiği için olması gerekiyordu. Milyonlarca insan, insani duygularından ve akıllarından vazgeçerek, Batı'dan Doğu'ya gitmek ve kendi türlerini öldürmek zorunda kaldılar, tıpkı birkaç yüzyıl önce insan kalabalığının Doğu'dan Batı'ya gidip kendi türlerini öldürmesi gibi.
    Sözlerine göre olayın gerçekleşip gerçekleşmediği anlaşılan Napolyon ve İskender'in eylemleri, kurayla veya askere alma yoluyla sefere çıkan her askerin eylemi kadar keyfi değildi. Aksi olamazdı, çünkü Napolyon ve İskender'in (olayın bağlı göründüğü insanlar) iradesinin yerine getirilmesi için, biri olmadan olayın gerçekleşemeyeceği sayısız koşulun tesadüfü gerekliydi. . Gerçek güç ellerinde olan milyonlarca insanın, ateş eden, erzak ve silah taşıyan askerlerin, bireysel ve zayıf insanların bu iradesini yerine getirmeyi kabul etmeleri gerekiyordu ve buna sayısız karmaşık, çeşitli nedenler yol açtı.
    Tarihte kadercilik, mantıksız fenomenleri (yani rasyonelliğini anlamadığımız olayları) açıklamak için kaçınılmazdır. Tarihteki bu olguları rasyonel bir şekilde açıklamaya çalıştıkça bizim için daha mantıksız ve anlaşılmaz hale geliyorlar.
    Her insan kendisi için yaşar, kişisel hedeflerine ulaşma özgürlüğünün tadını çıkarır ve artık şu veya bu eylemi yapıp yapamayacağını tüm varlığıyla hisseder; ama bunu yapar yapmaz, zamanın belirli bir anında yapılan bu eylem geri alınamaz hale gelir ve özgür değil, önceden belirlenmiş bir anlama sahip olduğu tarihin mülkiyeti haline gelir.
    Her insanda yaşamın iki yönü vardır: çıkarları ne kadar soyutsa o kadar özgür olan kişisel yaşam ve bir kişinin kendisine verilen yasaları kaçınılmaz olarak yerine getirdiği kendiliğinden, sürü yaşamı.
    Kişi bilinçli olarak kendisi için yaşar, ancak tarihsel, evrensel hedeflere ulaşmak için bilinçsiz bir araç görevi görür. Mükemmel bir eylem geri alınamaz ve diğer insanların milyonlarca eylemiyle aynı zamana denk gelen eylemi tarihsel bir önem kazanır. Bir kişi sosyal merdivende ne kadar yüksekte durursa, büyük insanlarla o kadar çok bağlantılıdır, diğer insanlar üzerinde o kadar fazla güce sahiptir, her eyleminin kaderi ve kaçınılmazlığı o kadar belirgindir.
    "Kralın kalbi Tanrı'nın elindedir."
    Kral, tarihin kölesidir.
    Tarih, yani insanlığın bilinçsiz, genel, kaynaşan yaşamı, kralların yaşamının her dakikasını kendi amaçları için bir araç olarak kullanır.
    Napolyon, şimdi, 1812'de, ona her zamankinden daha fazla, ayeter le sang de ses peuples'in [halklarının kanını dökmek ya da dökmemek] kendisine bağlı gibi görünmesine rağmen (aynı zamanda Napolyon'da olduğu gibi) Alexander'a yazdığı son mektup), onu (kendi keyfine göre, kendisine göründüğü gibi, kendisiyle ilgili olarak hareket ederek) ortak dava için, tarih aşkına, ne yapılması gerekiyordu.
    Batılılar birbirlerini öldürmek için Doğu'ya yöneldiler. Ve nedenlerin çakışması yasasına göre, bu hareketin ve savaşın binlerce küçük nedeni bu olayla çakıştı: kıta sistemine ve Oldenburg Düküne uyulmaması için suçlamalar ve birliklerin Prusya'ya hareketi , (Napolyon'a göründüğü gibi) yalnızca silahlı bir barışı ve Fransız imparatorunun halkının mizacıyla örtüşen savaş sevgisi ve alışkanlığını, hazırlıkların ihtişamına olan hayranlığını ve masraflarının elde edilmesini sağlamak için üstlenildi. hazırlık ve bu maliyetleri karşılayacak faydalar elde etme ihtiyacı ve Dresden'de sarhoş edici onurlar ve çağdaşların görüşüne göre barışı sağlamak için samimi bir arzuyla yürütülen ve yalnızca kibrine zarar veren diplomatik müzakereler. her iki taraf da, olmak üzere olan bir olaymış gibi uydurulan milyonlarca ve milyonlarca başka neden de buna denk geldi.
    Bir elma olgunlaşıp düştüğünde neden düşer? Yere doğru çekildiği için mi, çubuk kuruduğu için mi, güneşte kuruduğu için mi, ağırlaştığı için mi, rüzgar onu salladığı için mi, aşağıda duran çocuk onu yemek istediği için mi?
    Nedeni hiçbir şey değil. Bütün bunlar, her hayati, organik, kendiliğinden olayın meydana geldiği koşulların yalnızca bir tesadüfüdür. Ve selüloz ayrıştığı için elmanın düştüğünü bulan botanikçi, elmanın yemek istediği için düştüğünü ve kendisi için dua ettiğini söyleyen aşağıda duran çocuk kadar haklı ve haksız olacaktır. BT. Napolyon'un Moskova'ya onu istediği için gittiğini ve İskender onun ölmesini istediği için öldüğünü söyleyenin ne kadar haklı ne kadar haksız olacağı gibi: Kazılan bir milyon poundun içine düştüğünü söyleyen ne kadar haklı ve haksız olacaktır. Son işçi kazmayla altına son kez vurduğu için dağ devrildi. Tarihsel olaylarda sözde büyük adamlar, tıpkı etiketler gibi olayın kendisiyle en az bağlantısı olan, olaya isim veren etiketlerdir.
    Kendilerine keyfi görünen eylemlerinin her biri, tarihsel anlamda irade dışıdır, ancak tarihin tüm akışıyla bağlantılıdır ve ezelden beri belirlenir.

    29 Mayıs'ta Napolyon, prensler, dükler, krallar ve hatta bir imparatordan oluşan bir sarayla çevrili olarak üç hafta kaldığı Dresden'den ayrıldı. Ayrılmadan önce Napolyon, prenslere, krallara ve bunu hak eden imparatora nazik davrandı, tamamen tatmin olmadığı kralları ve prensleri azarladı, kendisininkini, yani diğer krallardan alınan incileri ve elmasları Avusturya İmparatoriçesi'ne sundu. ve tarihçisinin dediği gibi İmparatoriçe Marie Louise'i şefkatle kucaklayarak, onu - başka bir eşin Paris'te kalmasına rağmen karısı olarak kabul edilen bu Marie Louise - dayanamayacak gibi göründüğü acı bir ayrılıkla terk etti. Diplomatların hala barış olasılığına kesin olarak inanmalarına ve bu amaç için gayretle çalışmalarına rağmen, İmparator Napolyon'un bizzat İmparator İskender'e bir mektup yazmasına, ona Mösyö mon frere [Egemen kardeş] adını vermesine ve içtenlikle bunu yapmadığına dair güvence vermesine rağmen. savaş istediğini ve onu her zaman seveceğini ve saygı duyacağını - orduya gitti ve ordunun batıdan doğuya hareketini hızlandırmayı amaçlayan her istasyonda yeni emirler verdi. Posen, Thorn, Danzig ve Koenigsberg yolu boyunca sayfalar, emir subayları ve bir eskortla çevrili altı tarafından çekilen bir karayolu vagonuna bindi. Bu şehirlerin her birinde binlerce insan onu hayranlık ve sevinçle karşıladı.
    Ordu batıdan doğuya hareket etti ve değişken dişliler onu oraya taşıdı. 10 Haziran'da orduya yetişti ve geceyi Vilkovis ormanında, kendisi için hazırlanan bir apartman dairesinde, Polonyalı bir kontun arazisinde geçirdi.
    Ertesi gün, orduyu ele geçiren Napolyon, bir vagonda Neman'a gitti ve geçiş alanını incelemek için bir Polonya üniforması giyip karaya çıktı.
    Öbür tarafta Kazakları (les Cosaques) ve ortasında Moscou la ville sainte [kutsal şehir Moskova] bulunan, İskitlere benzer başkenti [Moskova,] olan yayılan bozkırları (les Steppes) görünce, devlet , Büyük İskender'in gittiği yer - Napolyon, herkes için beklenmedik bir şekilde ve hem stratejik hem de diplomatik hususların aksine, bir saldırı emri verdi ve ertesi gün birlikleri Neman'ı geçmeye başladı.
    Ayın 12'sinde, sabah erkenden, Neman'ın dik sol kıyısında o gün kurulmuş olan çadırdan ayrıldı ve teleskopla Vilkovis ormanından çıkan ve inşa edilmiş üç köprünün üzerine dökülen birliklerine baktı. Neman'da. Askerler imparatorun varlığını biliyorlardı, gözleriyle onu aradılar ve dağda çadırın önünde maiyetten ayrılmış frak ve şapkalı bir figür bulduklarında şapkalarını havaya fırlattılar, bağırdılar: "Yaşasın l" Empereur! [Yaşasın imparator!] - ve diğerleri için yalnız, tükenmeden dışarı aktı, hepsi onları şimdiye kadar saklayan devasa ormandan dışarı aktı ve üzgün, üç köprüden diğerine geçti taraf.
    - Fera du chemin cette fois ci üzerinde. Ah! quand il s "en mele lui meme ca chauffe… Nom de Dieu… Le voila!.. Vive l" Empereur! Les voila donc les Steppes de l "Asie! Vilain pays tout de mem. Au revoir, Beauche; je te Reserve le plus beau palais de Moscou. Au revoir! İyi şanslar… L" olarak tu vu, l "Empereur? Vive l" İmparator!.. Preur! Bana Indes valisi oldu, Gerard, je te fais bakanı du Cachemire, c "est arrete. Vive l" Empereur! yaşa! yaşa! yaşa! Les gredins de Cosaques, çok güzel. Yaşasın "İmparator! Le voila! Le vois tu? Je l" ai vu deux fois come jete vois. Le petit caporal ... Je l "ai vu donner la croix a l" un des vieux ... Vive l "Empereur! işte buradalar, Asya bozkırları... Ama kötü bir ülke. Hoşçakal Boche. Seni bırakacağım Moskova'nın en iyi sarayı. Hoşçakalın, başarılar dilerim. İmparatoru gördünüz mü? Yaşasın! Beni Hindistan'da vali yaparlarsa, sizi Keşmir'in bakanı yaparım... Yaşasın! İmparator işte! Gördünüz mü? Ben onu senin gibi iki kez gördüm Küçük onbaşı... Yaşlı adamlardan birine nasıl haç astığını gördüm... Yaşasın imparator!] - dedi yaşlı ve genç insanların sesleri, çok çeşitli karakter ve konumlardan Bu insanların tüm yüzlerinde, uzun zamandır beklenen kampanyanın başlangıcındaki ortak bir sevinç ve dağda duran gri redingotlu adama duyulan sevinç ve bağlılık ifadesi vardı.
    13 Haziran'da Napolyon'a küçük bir safkan Arap atı verildi ve oturdu ve Neman'ın karşısındaki köprülerden birine dörtnala koştu, coşkulu çığlıklarla sürekli sağır oldu, açıkça katlandığı, çünkü aşklarını ifade etmelerini yasaklamak imkansızdı. onun için bu haykırışlarla; ama her yerde ona eşlik eden bu çığlıklar, onu ağırlaştırdı ve orduya katıldığı andan itibaren onu ele geçiren askeri bakımdan dikkatini dağıttı. Köprülerden birini diğer tarafa sallanan teknelerle geçti, keskin bir şekilde sola döndü ve dörtnala Kovno'ya koştu, önünde mutluluktan ölmek üzere olan coşkulu muhafızlar, önünde dörtnala koşan birliklerin yolunu açtı. Geniş Viliya nehrine yaklaştıktan sonra, kıyıda duran Polonyalı uhlan alayının yakınında durdu.
    - Vivat! - Polonyalılar coşkuyla bağırdılar, cepheyi üzdüler ve onu görmek için birbirlerini ezdiler. Napolyon nehri inceledi, atından indi ve kıyıda yatan bir kütüğün üzerine oturdu. Sözsüz bir işaretle ona bir trompet verdiler, onu koşarak gelen mutlu bir sayfanın arkasına koydu ve diğer tarafa bakmaya başladı. Sonra kütüklerin arasına yayılmış harita sayfasını incelemeye daldı. Başını kaldırmadan bir şeyler söyledi ve iki yaveri Polonyalı uhlanlara dörtnala koştu.
    - Ne? Ne dedi? - Polonyalı mızraklı mızraklıların saflarında, bir emir subayı onlara dörtnala geldiğinde duyuldu.
    Bir geçit bulduktan sonra diğer tarafa gitmesi emredildi. Polonyalı bir mızraklı albay, yakışıklı bir yaşlı adam, heyecandan kıpkırmızı kesilmiş ve kafası karışmış halde, emir subayına, bir geçit bulamadan mızraklı mızraklarıyla nehri geçmesine izin verilip verilmeyeceğini sordu. Ata binmek için izin isteyen bir çocuk gibi reddedilme korkusuyla, imparatorun gözünde nehri yüzerek geçmesine izin verilmesini istedi. Emir subayı, muhtemelen imparatorun bu aşırı gayretten memnun kalmayacağını söyledi.
    Emir subayı bunu söyler söylemez, mutlu yüzlü ve ışıltılı gözleri olan bıyıklı yaşlı bir subay kılıcını kaldırarak bağırdı: “Vivat! - ve mızraklılara onu takip etmelerini emrettikten sonra ata mahmuzlar verdi ve dörtnala nehre doğru koştu. Altında tereddüt eden atı acımasızca itti ve güm güm atarak akıntının daha derinlerine doğru ilerledi. Yüzlerce mızraklı onun peşinden dörtnala koştu. Ortada ve akıntının hızlı olduğu yerlerde hava soğuk ve ürkütücüydü. Mızraklılar birbirine yapıştı, atlarından düştü, bazı atlar boğuldu, insanlar boğuldu, geri kalanlar yüzmeye çalıştı, bazıları eyerde, bazıları yelesine tutundu. Diğer tarafa doğru yüzmeye çalıştılar ve yarım verst ötede bir geçit olmasına rağmen, bir kütüğün üzerinde oturan ve bakmayan bir adamın bakışları altında bu nehirde yüzdükleri ve boğuldukları için gurur duyuyorlardı. ne yaptıklarında. Uygun bir an seçen geri dönen emir subayı, imparatorun dikkatini Polonyalıların şahsına olan bağlılığına çekmesine izin verdiğinde, gri fraklı küçük bir adam ayağa kalktı ve Berthier'i ona çağırarak yürümeye başladı ve onunla kıyıya iniyor, ona emirler veriyor ve ara sıra dikkatini çeken boğulmakta olan mızraklılara hoşnutsuzlukla bakıyor.
    Onun için, Afrika'dan Muscovy bozkırlarına kadar dünyanın her yerindeki varlığının insanları aynı derecede şaşırttığı ve kendini unutma çılgınlığına sürüklediği inancı yeni değildi. Kendisine bir at getirilmesini emretti ve kampına gitti.
    Yardıma gönderilen teknelere rağmen yaklaşık kırk mızraklı mızraklı nehirde boğuldu. Çoğu bu kıyıya geri döndü. Albay ve birkaç adam nehri yüzerek geçtiler ve zorlukla diğer tarafa tırmandılar. Ama üzerlerine tokatlanmış, derelerde akan ıslak bir elbiseyle dışarı çıkar çıkmaz bağırdılar: "Vivat!" mutlu.
    Akşam Napolyon, iki emir arasında - biri hazırlanan sahte Rus banknotlarını mümkün olan en kısa sürede Rusya'ya ithal edilmek üzere teslim etmek, diğeri ise ele geçirilen mektubunda Fransız ordusuna verilen emirlerle ilgili bilgiler bulunan bir Sakson'u vurmak için - yaptı. üçüncü bir emir - Napolyon'un başı olduğu onur kohortuna (Legion d "honneur) kendini gereksiz yere nehre atan Polonyalı albayın hesabı hakkında.
    Qnos vult perdere - dementat. [Kimi yok etmek istiyor - akıldan yoksun bırakmak (lat.)]

    Bu arada, Rus imparatoru zaten bir aydan fazla bir süredir Vilna'da yaşıyor, incelemeler ve manevralar yapıyordu. Herkesin beklediği ve hazırlık aşamasında olan ve imparatorun Petersburg'dan geldiği savaşa hiçbir şey hazır değildi. Genel bir eylem planı yoktu. Önerilenlerin hangi planının benimsenmesi gerektiği konusundaki tereddütler, imparatorun ana dairede bir ay kalmasından sonra daha da arttı. Üç orduda da ayrı birer başkomutan vardı ama bütün orduların üzerinde ortak bir komutan yoktu ve imparator bu unvanı almıyordu.
    İmparator Vilna'da ne kadar uzun yaşarsa, savaşa o kadar az hazırlanır, onu beklemekten yorulur. Görünüşe göre hükümdarı çevreleyen insanların tüm özlemleri, sadece hükümdarı iyi vakit geçirirken yaklaşan savaşı unutturmayı amaçlıyordu.
    Polonyalı kodamanlarla, saray mensuplarıyla ve hükümdarın kendisiyle birçok balo ve tatilden sonra, Haziran ayında, hükümdarın Polonyalı emir subaylarından biri, hükümdar adına hükümdara akşam yemeği ve bir balo verme fikrine sahipti. emir subayı generaller. Bu fikir herkes tarafından memnuniyetle karşılandı. İmparator kabul etti. Komutan general, abonelik yoluyla para topladı. Hükümdarı en çok memnun edebilecek kişi, baloya hostes olarak davet edildi. Vilna vilayetinde bir toprak sahibi olan Kont Benigsen, bu tatil için kır evini teklif etti ve 13 Haziran'da Kont Benigsen'in kır evi olan Zakret'te bir akşam yemeği, bir balo, tekne gezintisi ve havai fişekler planlandı.
    Napolyon'un Neman'ı ve ileri birliklerini Kazakları geri püskürterek geçme emrini verdiği gün, İskender akşamı Benigsen'in kulübesinde - generalin yardımcıları tarafından verilen bir baloda geçirdi.
    Neşeli, parlak bir tatildi; işin uzmanları, bu kadar güzelin nadiren bir yerde toplandığını söyledi. Petersburg'dan Vilna'ya hükümdar için gelen diğer Rus hanımlarının yanı sıra Kontes Bezukhova da bu balodaydı ve ağır, sözde Rus güzelliğiyle sofistike Polonyalı hanımları gölgeliyordu. Fark edildi ve hükümdar onu bir dansla onurlandırdı.
    Boris Drubetskoy, en garcon (bekar), karısını Moskova'da bıraktığını söylediği gibi, bu balodaydı ve bir emir subayı olmasa da, balo aboneliğine büyük bir katılımcıydı. Boris artık zengin bir adamdı, itibarı çok yüksekti, artık koruma aramıyordu, akranlarının en büyüğüyle eşit düzeyde duruyordu.
    Sabahın on ikisinde hala dans ediyorlardı. Değerli bir beyefendisi olmayan Helen, mazurka'yı Boris'e kendisi teklif etti. Üçüncü çiftte oturdular. Helen'in altınla koyu renkli bir tül elbiseden çıkıntı yapan parlak çıplak omuzlarına soğukkanlı bir şekilde bakan Boris, eski tanıdıklardan bahsetti ve aynı zamanda fark edilmeden kendisine ve başkalarına, aynı durumda olan hükümdarı izlemeyi bir an bile bırakmadı. salon. Hükümdar dans etmedi; kapıda durdu ve nasıl söyleneceğini yalnızca kendisinin bildiği o nazik sözlerle birini veya diğerini durdurdu.
    Mazurka'nın başında Boris, hükümdara en yakın kişilerden biri olan Adjutant General Balashev'in kendisine yaklaştığını ve Polonyalı bir bayanla konuşan hükümdarın yanında kibarca durduğunu gördü. Bayanla konuştuktan sonra, imparator merakla baktı ve görünüşe göre Balashev'in bunu yalnızca bunun için önemli nedenler olduğu için yaptığını anlayarak, bayana hafifçe başını salladı ve Balashev'e döndü. Hükümdarın yüzünde şaşkınlık ifade edildiğinde Balashev daha yeni konuşmaya başlamıştı. Balashev'in koluna girdi ve onunla birlikte koridorda yürüdü, bilinçsizce sazhenlerin her iki yanında önünde duran üç geniş yol için temizlik yaptı. Egemen Balashev ile giderken Boris, Arakcheev'in heyecanlı yüzünü fark etti. Hükümdara kaşlarını çatarak bakan ve kırmızı burnunu koklayan Arakcheev, sanki hükümdarın kendisine dönmesini bekliyormuş gibi kalabalığın arasından çıktı. (Boris, Arakcheev'in Balashev'i kıskandığını fark etti ve açıkça önemli olan bazı haberlerin onun aracılığıyla hükümdara iletilmemesinden memnun değildi.)
    Ancak hükümdar ve Balashev, Arakcheev'i fark etmeden çıkış kapısından ışıklı bahçeye geçti. Kılıcını tutan ve öfkeyle etrafına bakan Arakcheev, onların yirmi adım gerisinde yürüdü.
    Boris, mazurka figürlerini yapmaya devam ettiği sürece, Balashev'in ne tür haberler getirdiği ve diğerlerinden önce nasıl öğreneceği düşüncesiyle eziyet etmekten asla vazgeçmedi.
    Hanımları seçmesi gereken figürde, Helen'e balkona çıktığı anlaşılan Kontes Pototskaya'yı almak istediğini fısıldayarak, ayaklarını parke üzerinde kaydırarak çıkış kapısından bahçeye koştu. ve hükümdarın Balashev ile terasa girdiğini görünce durakladı. İmparator ve Balashev kapıya doğru ilerliyorlardı. Boris aceleyle, sanki uzaklaşmaya vakti yokmuş gibi, saygıyla lentoya yaslandı ve başını eğdi.
    Hükümdar, kişisel olarak gücenmiş bir kişinin heyecanıyla şu sözleri tamamladı:
    - Savaş ilan etmeden Rusya'ya girin. Ancak topraklarımda tek bir silahlı düşman kalmadığında barışırım” dedi. Boris'e göründüğü gibi, hükümdarın bu sözleri ifade etmesi hoştu: Düşüncelerinin ifade biçiminden memnundu, ancak Boris'in onları duymasından memnun değildi.
    - kimse bir şey bilmesin diye! diye ekledi hükümdar kaşlarını çatarak. Boris bunun kendisine atıfta bulunduğunu anladı ve gözlerini kapatarak başını hafifçe eğdi. İmparator tekrar salona girdi ve yaklaşık yarım saat baloda kaldı.
    Neman'ın Fransız birlikleri tarafından geçildiği haberini ilk öğrenen Boris oldu ve bu sayede bazı önemli insanlara diğerlerinden gizli çok şey bildiğini gösterme fırsatı buldu ve bu sayede bu kişilerin gözünde yükselme fırsatı.

    Fransızların Neman'ı geçtiğine dair beklenmedik haber, özellikle bir aylık karşılanmayan beklentilerin ardından ve baloda beklenmeyen bir haberdi! İmparator, haberi alır almaz öfke ve hakaretin de etkisiyle, sonradan ünlenen bu sözü kendisinin de beğendiğini ve duygularını tam olarak ifade ettiğini bulmuş. Sabahın ikisinde balodan eve dönen hükümdar, Sekreter Shishkov'u gönderdi ve ona birliklere bir emir ve Mareşal Prens Saltykov'a kesinlikle sözlerin yerleştirilmesini talep ettiği bir yazı yazmasını emretti. en az bir silahlı Fransız Rus topraklarında kalana kadar uzlaşma.
    Ertesi gün Napolyon'a aşağıdaki mektup yazıldı.
    Monsieur mon frere. J "ai hier que malgre la loyaute avec laquelle j" ai maintenu me angajmanları Votre Majeste, ses grupları ont franchis les frontières de la Russie, ve je recois a l "instant de Petersbourg une note par laquelle le comte Lauriston, pour neden de Bu tür saldırganlık, majestelerinin "en büyük savaş anını veya prens Kourakine'yi pasaport talep etmediğini düşündüğünü" duyurur. Bassano duc duc de les lesquels le duc de lui teslim ediciyi reddediyor, n "sahte jamais pu me faire varsayar que cette demarche servirait jamais de pretexteal l" saldırganlığı. En etkin cet büyükelçi n "jamais ete autorise ill l" a lui mem, and aussitot que j "en fus informe, je lui ai fait connaitre combien je le desapprouvais en lui donnant l" ordre de rester de poste. Si Votre Majeste n "est pas niyetinee de ayeter le sang de ce uples to un malentendu de ce ce tür ve qu" elle retirer ses troupes du territoire russe, je réspecterai ce qui s "est passe comme come non avenu, and un konaklama entre ancak mümkün. Majesteleri Oylamalarının encore'u "insancıl felaketler" ve "yeni bir savaş"ın "eviter a l"ine bağlıdır.
    Je suis, vb.
    (imza) Alexandre.
    [“Efendim kardeşim! Dün, İmparatorluk Majesteleri ile ilgili yükümlülüklerimi dürüstçe yerine getirmeme rağmen, birliklerinizin Rusya sınırlarını geçtiği ve Kont Lauriston'un bu işgal hakkında bana bildirdiği Petersburg'dan ancak şimdi bir not aldığımı anladım. Majesteleri, Prens Kurakin pasaportlarını istediğinden beri benimle düşmanca ilişkiler içinde olduğunu düşünüyor. Bassano Dükü'nün bu pasaportları vermeyi reddetmesinin dayandığı nedenler, beni asla büyükelçimin eyleminin saldırı nedeni olduğunu düşünmeme yol açmadı. Ve aslında, kendisinin de açıkladığı gibi, benden böyle bir emri yoktu; ve bunu öğrenir öğrenmez Prens Kurakin'e memnuniyetsizliğimi hemen dile getirerek kendisine verilen görevleri eskisi gibi yerine getirmesini emrettim. Majesteleri böyle bir yanlış anlaşılma nedeniyle tebaamızın kanını dökmek istemiyorsa ve birliklerinizi Rus topraklarından çekmeyi kabul ederseniz, o zaman olan her şeyi görmezden geleceğim ve aramızda bir anlaşma mümkün olacak. Aksi takdirde, benim tarafımdan başlatılmamış bir saldırıyı püskürtmek zorunda kalacağım. Majesteleri, insanlığı yeni bir savaşın belasından kurtarmak için hala fırsatınız var.
    (imzalı) İskender. ]

    13 Haziran sabahı saat ikide, Balashev'i yanına çağıran ve Napolyon'a yazdığı mektubu ona okuyan hükümdar, bu mektubu almasını ve şahsen Fransız imparatoruna teslim etmesini emretti. Balashev'i gönderen hükümdar, Rus topraklarında en az bir silahlı düşman kalana kadar uzlaşmayacağı sözlerini ona tekrar tekrarladı ve bu sözlerin mutlaka Napolyon'a iletilmesini emretti. Hükümdar bu sözleri mektuba yazmadı, çünkü inceliğiyle, son uzlaşma girişiminin yapıldığı anda bu sözlerin iletilmesinin sakıncalı olduğunu hissetti; ama kesinlikle Balashev'e onları şahsen Napolyon'a teslim etmesini emretti.
    13-14 Haziran gecesi yola çıkan Balashev, bir trompetçi ve iki Kazak eşliğinde, şafak vakti Neman'ın bu tarafındaki Fransız ileri karakollarındaki Rykonty köyüne geldi. Fransız süvari nöbetçileri tarafından durduruldu.
    Kızıl üniformalı ve tüylü şapkalı bir Fransız hafif süvari astsubayı, yaklaşan Balashev'e bağırarak durmasını emretti. Balashev hemen durmadı, ancak yol boyunca hızla ilerlemeye devam etti.
    Astsubay, kaşlarını çatarak ve bir tür küfür mırıldanarak, atının göğsüyle Balashev'e doğru ilerledi, kılıcını aldı ve Rus generaline kaba bir şekilde bağırdı ve ona ne dediklerini duymuyorsa sağır mı diye sordu. . Balashev adını verdi. Astsubay, subaya bir asker gönderdi.
    Balashev'e aldırış etmeyen astsubay, yoldaşlarıyla alay işleri hakkında konuşmaya başladı ve Rus generaline bakmadı.
    Balashev için, en yüksek güce ve kudrete yakın olduktan sonra, üç saat önce hükümdarla yaptığı görüşmeden sonra ve genellikle onun hizmetinde onurlara alışkın, burada, Rus topraklarında bu düşmanca ve en önemlisi, kaba kuvvetin kendisine karşı saygısız tavrı.
    Güneş bulutların arkasından yeni yükselmeye başlıyordu; hava taze ve nemliydi. Yolda sürü köyden sürüldü. Tarlalarda, tarlakuşları sudaki kabarcıklar gibi birer birer kıkırdayarak patladı.
    Balashev, köyden bir subayın gelmesini bekleyerek etrafına bakındı. Rus Kazakları, trompetçi ve Fransız süvarileri zaman zaman sessizce birbirlerine baktılar.
    Görünüşe göre yataktan yeni kalkmış bir Fransız hafif süvari albayı, iki hafif süvari süvarisi eşliğinde güzel, iyi beslenmiş gri bir ata binerek köyden çıktı. Subayda, askerlerde ve atlarında bir memnuniyet ve gösteriş ifadesi vardı.
    Bu seferin ilk seferiydi, birlikler hala iyi durumdayken, neredeyse bir gözcülük, barışçıl faaliyete eşitken, sadece zarif bir militanlık dokunuşuyla ve her zaman eşlik eden o eğlence ve girişimin ahlaki bir dokunuşuyla. kampanyaların başlangıcı.
    Fransız albay güçlükle esnedi, ama kibardı ve görünüşe göre Balashev'in tüm önemini anlamıştı. Onu zincirden askerlerinin yanından geçirdi ve imparatorluk dairesi bildiği kadarıyla çok uzakta olmadığı için imparatora sunulma arzusunun muhtemelen hemen yerine getirileceğini bildirdi.
    Rykonty köyünü geçtiler, Fransız hafif süvari karakollarını, nöbetçileri ve albaylarını selamlayan ve Rus üniformasını merakla inceleyen askerleri geçerek köyün diğer tarafına gittiler. Albaya göre, Balashev'i alacak ve ona gideceği yere kadar eşlik edecek olan tümen başkanı iki kilometre uzaktaydı.
    Güneş çoktan doğmuştu ve parlak yeşillikler üzerinde neşeyle parlıyordu.
    Dağdaki meyhaneden yeni ayrılmışlardı ki, dağın altından bir grup atlı onları karşılamak için göründüler; önlerinde, güneşte parlayan koşum takımı olan siyah bir atın üzerinde, şapkalı uzun boylu bir adam biniyordu. Fransız ata binerken tüyler ve siyah saçlar omuzlara kıvrılmış, kırmızı bir manto giymiş ve uzun bacakları öne doğru çıkmış. Bu adam, tüyleri, taşları ve altın galonlarıyla parlak Haziran güneşinde parıldayarak ve dalgalanarak Balashev'e doğru dörtnala koştu.
    Balashev, bir Fransız albay olan Yulner saygıyla fısıldadığında, bilezikler, tüyler, kolyeler ve altınla ciddi teatral bir yüzle dörtnala ona doğru koşan biniciden iki at uzaktaydı: "Le roi de Naples." [Napoli Kralı.] Gerçekten de, artık Napoliten kralı olarak anılan Murat'tı. Neden bir Napoliten kralı olduğu tamamen anlaşılmaz olsa da ona böyle deniyordu ve kendisi de buna ikna olmuştu ve bu nedenle eskisinden daha ciddi ve önemli bir havası vardı. Gerçekten Napoli kralı olduğundan o kadar emindi ki, Napoli'den ayrılışının arifesinde, karısıyla birlikte Napoli sokaklarında yürürken, birkaç İtalyan ona "Viva il re!", [Yaşasın" diye bağırdı. Kral! (İtalyanca)] hüzünlü bir gülümsemeyle karısına döndü ve şöyle dedi: “Les malheureux, ils ne savent pas que je les Quitte Demain! [Maalesef yarın onları terk edeceğimi bilmiyorlar!]
    Ancak kendisinin bir Napoliten kralı olduğuna kesin olarak inanmasına ve son zamanlarda yeniden hizmete girmesi emredildikten sonra ve özellikle Napolyon ile yaptığı görüşmeden sonra kendisini terk eden tebaasının üzüntüsünden pişmanlık duymasına rağmen. Danzig'de, ağustoslu kayınbiraderi ona şöyle dediğinde: "Je vous ai fait Roi pour regner a maniere, mais pas a la votre", [Seni kral yaptım, benimkine göre değil, ama bana göre hüküm sür diye. benimkine.] - tanıdık bir işe neşeyle başladı ve kızartılmış ama şişman olmayan, hizmete uygun, kendini bir koşum takımı içinde hisseden, şaftlarda oynayan ve olabildiğince renkli ve pahalı bir şekilde taburcu edilen bir at gibi , neşeli ve memnun, dörtnala, nerede ve neden olduğunu bilmeden, Polonya yollarında.
    Rus generali görünce, asil bir şekilde, ciddiyetle, omuzlarına kıvrılmış saçları ile başını geriye attı ve sorgulayan bir şekilde Fransız albayına baktı. Albay, adını telaffuz edemediği Balashev'in anlamını Majestelerine saygıyla iletti.

    TEMEL programlama dili -üst düzey programlama dilleri ailesidir. Başlangıçta bir öğretim yardımı olarak geliştirildi, 1980'lerde ev mikro bilgisayarlarında yaygınlaştı ve bugüne kadar yoğun bir şekilde değiştirilmiş bir lehçede popüler olmaya devam ediyor. Yeni başlayanlar için programlama.
    BASIC programlama dilinin adı, bilgisayar biliminin klasik geleneklerinde türetilmiştir, bu da adın iyi bir şekilde kısaltılmasına yol açmıştır: Acemiler için Çok Amaçlı Sembolik Talimat Kodu (Yeni başlayanlar için çok amaçlı sembolik talimat kodu). Bu, dilin mucidi Thomas Kurtz'un yayınlanmamış bir çalışmasının adıdır.Bazı eleştirmenler bunu şakacı bir şekilde, Microsoft'un ilk IBM uyumlu PC'lerin tüm gönderilerinde bulunan BASIC yorumlayıcı politikasına yanıt olarak endüstrinin kontrolünü ele geçirmeye yönelik Bill'in Dili Girişimi olarak adlandırıyor. Aptallar için Programlama.

    Hikaye

    gelişinden önce
    1960'ların ortalarına kadar bilgisayarlar, sadece özel amaçlı işler için kullanılan, o zamanlar sadece bir "iş" yapabilen çok pahalı araçlardı. Ancak 1960'ların ortalarından itibaren bilgisayarların fiyatları, küçük şirketlerin bile karşılayabileceği noktaya kadar düşmeye başladı ve talimat yürütme hızları, yapacak yeterli iş olmadığı için bilgisayarların atıl kaldığı noktaya kadar yükseldi. daha sonra programlamanın temelleri bölümünde tartışıldı.
    O dönemin programlama dilleri genel olarak bilgisayarların yetenekleriyle ve formüllerin bilimsel olarak işlenmesi gibi belirli amaçlar için geliştirildi. Yalnızca bir "iş" yapabilen bilgisayarlar pahalıydı ve en önemli özelliği komutların yürütülme hızıydı. Genel olarak, kullanımları zordu ve hatta biraz "çirkin" denebilir.
    İşletim sistemi tarafından zaman paylaşımı kavramı bu sıralarda popüler olmaya başladı. Böyle bir sistemde, bilgisayar ana işlem süresini parçalara "keser" ve her kullanıcı belirli bir sırayla küçük bir süre alır. Makineler zaten o kadar hızlıydı ki, çoğu kullanıcı tüm bilgisayarı yalnızca kendilerinin kullandığını düşünerek yanılgıya düşmüştü. Zaman paylaşımı teorisinde, en azından teorik olarak yüzlerce kullanıcı tek bir bilgisayarda çalışabileceğinden, hesaplama süresinin azaltılması son derece önemlidir.

    Doğum ve ilk yıllar
    BASIC programlama dili, 1964 yılında Dartmouth College'da John George Kemeny (1926-93) ve Thomas Eugene Kurtz (1928-) tarafından icat edildi. Takip eden yıllarda, BASIC'in birçok varyasyonu ortaya çıktıktan sonra, Kemeny ve Kurtz'un orijinal BASIC açıklaması yayınlandı ve orijinal BASIC'e "Dartmouth Basic" adı verildi.
    BASIC programlama dili, öğrencilerin zaman paylaşımlı bir şekilde bilgisayar terminallerini kullanarak programlar yazabilmelerini sağlamak için tasarlanmıştır. BASIC, önceki nesil diller tarafından çözülen karmaşık sorunları çözmek için tasarlanmıştır. Zaman paylaşımını kullanma fikrini benimseyen yeni bir kullanıcı sınıfı için, yani hızdan çok bilgisayar kullanma kolaylığıyla ilgilenen "basit" kullanıcılar için özel olarak tasarlanmıştır. Dilin tasarımcıları ayrıca dilin kamu malı olmasını istediler, bu da yayılmasına yardımcı olacaktı.
    BASIC yapısının sekiz ilkesi:

    1. Yeni başlayanlar için kolay olun
    2. Genel bir dil ol
    3. Gelişmiş özelliklerin uzmanlar için kendi geliştirmelerinizi eklemesine izin verin (yeni başlayanlar için dili basit tutarken)
    4. Etkileşimli olun
    5. Açık ve anlaşılır hata mesajları geliştirin
    6. Küçük programlara hızla yanıt verin
    7. Bilgisayar donanımı bilgisi gerekmez
    8. Kullanıcıyı işletim sisteminden koruma

    Kısmen Fortran II'ye ve kısmen Algol 60'a dayanan, zaman paylaşımı ve matris aritmetiği için uygun hale getiren eklemelerle birlikte BASIC, ilk olarak çoklu terminalleri destekleyen GE-265 manframe'lerinde uygulandı. Popüler inanışın aksine, yaratıldığı sırada derlenmiş bir dildi. BASIC, piyasaya sürüldükten hemen sonra bilgisayar bilimcileri tarafından çok yavaş ve çok basit olmakla alay etmeye başladı. Dilin elitizmi bilgisayar endüstrisinde sürekli bir tema olduğundan.
    Ancak BASIC, çok sayıda makineye yayılıyor ve DEC PDP serisi ve Data General Nova gibi daha yeni mini bilgisayarlarda oldukça popüler hale geliyor. Bu durumlarda dil, ihtiyaca bağlı olarak derleyici yerine tercüman veya tam tersi hareket etme eğilimindedir.

    patlayıcı büyüme
    Bununla birlikte, BASIC yalnızca 1975'te Altair 8800 mikrobilgisayarının ortaya çıkmasıyla toplu dağıtımına başladı. Çoğu programlama dili, çoğu kullanıcının satın alabileceği küçük bilgisayar belleğine sığamayacak kadar büyüktü ve ayrıca okumanın yavaş kağıt banttan (veya ses kasetinin sonraki sürümlerinden) yapıldığını ve uygun olmadığını düşünüyorsanız metin editörleri, ardından BASIC dilinin küçük gereksinimleri bu gereksinimleri iyi bir şekilde karşıladı. Bu makinede ilk ortaya çıkanlardan biri, orijinal olarak Dr. Li-Wang Chen tarafından yazılan ve daha sonra Bob Albrecht'in (daha sonra Dr. Dobbs Journal'ı kuran kişi) isteği üzerine Dennis Ellison tarafından Altair'e taşınan BASIC'in basit bir uygulaması olan Tiny BASIC idi. -DDJ). Tiny BASIC tasarımı ve tam kaynak kodu 1976'da DDJ tarafından yayınlandı.
    1977'de Microsoft (o zamanlar sadece iki kişi vardı - Gates ve Allen) Altair BASIC'i piyasaya sürdü. Sürümler daha sonra diğer platformlarda lisans altında görünmeye başladı ve kısa sürede milyonlarca kopya ve varyant kullanıma girdi, Apple II'de standart dillerden biri haline geldi. 1979'a gelindiğinde Microsoft, bu bilgisayarlar için bir BASIC tercümanı lisanslamak üzere IBM de dahil olmak üzere birkaç mikro bilgisayar satıcısıyla görüşüyordu. Sürüm, ROM'daki IBM PC yongalarına fiziksel olarak bağlandı ve disksiz PC'ler için BASIC, güç açıldığında otomatik olarak önyüklenebilir hale geldi.
    Yeni şirketler ortaya çıktıkça, IMSAI, Polaris ve Apple gibi birçoğu Altair'in başarısını kopyalamaya çalıştı ve böylece BASIC'in zamanın ev bilgisayarlarında standart bir özellik haline gelmesiyle ev bilgisayarı devrimi başladı. Çoğu, ROM'da bir BASIC tercümanıyla geldi (ilk olarak 1977'de Commodore PET'te tanıtılan bir özellik). Yakında dünya çapında milyonlarca BASIC makinesi vardı, bu muhtemelen diğer tüm dillerin tüm kullanıcılarının toplam sayısından çok daha fazlaydı. Pek çok program, özellikle Apple II ve IBM PC'dekiler, Microsoft'un BASIC yorumlayıcısına bağımlı hale geldi ve onsuz çalışamazdı. Bu nedenle Microsoft, bilgisayar satıcılarıyla müzakerelerde avantaj elde etmek için BASIC derleyici telif hakkı lisansını kullandı.

    Olgunluk
    Bu süre zarfında BASIC'in yeni ve daha güçlü sürümleri oluşturuldu. Microsoft, BASIC'in MS-DOS/PCDOS için BASICA, GW-BASIC (IBM ROM gerektirmeyen BASICA uyumlu bir sürüm) ve Quick Basic dahil olmak üzere çeşitli sürümlerini sattı. Borland (Turbo Pascal'ın geliştiricisi) 1985'te Turbo Basic 1.0'ı yayınladı (bu sürümün halefi başka bir şirket tarafından hala PowerBASIC adı altında satılmaktadır). BASIC'in desteklediği ev bilgisayarı için grafikler, ses ve DOS komutları gibi çeşitli uzantıların yanı sıra yapılandırılmış programlama araçları vardı. Diğer programlama dilleri, iyi bilinen BASIC sözdizimini diğer işletim sistemlerine taşıma için temel olarak kullanmıştır, GRASS buna bir örnektir.
    Bununla birlikte, 1980'lerin ikinci yarısında, yeni bilgisayarlar çok daha karmaşıktı ve pek çok özelliğe (grafik kullanıcı arabirimleri gibi) sahipti, bu da BASIC'i programlama için giderek daha az uygun hale getiriyordu. Aynı zamanda bilgisayarlar amatörlerin aracından profesyonellerin aracına doğru ilerliyor. Kişisel bilgisayarlar, öncelikle başkaları tarafından yazılan uygulamaları çalıştırmak için kullanılmaya başlanıyor ve genel olarak programlama, hızla artan sayıda sıradan kullanıcı için daha az sorun haline geliyor. Çok sayıda sürüm mevcut olmasına rağmen BASIC kaybolmaya başladı.
    BASIC'in içinde bulunduğu kötü durum, Microsoft'un Visual Basic'inin gelişiyle değişir. Bu dilde klasik BASIC'i tanımak zaten oldukça zor olsa da (adında tanıdık BASIC kelimelerinin kullanılmasına rağmen) bu yeni dil, Windows platformunda en çok kullanılan dillerden biri haline geldi. Bu dilde yazılan programların tüm ticari uygulamaların yaklaşık %70 ila %80'ini oluşturduğunu da belirtmeyi unutmayalım. Visual Basic for Applications (VBA), 1993'te Microsoft Excel 5.0'a eklendi ve 1997'de tüm Microsoft Office ürün grubuna dahil edildi. Windows 98, VBScript çeviricisini tanıttı. Visual Basic'in en son sürümünün adı VB.NET'tir. OpenOffice Suite, MS eşdeğerinden daha az güçlü bir BASIC varyantı içerir.

    Sözdizimi
    Mantıksal satır sonlandırma işleci, satır devam karakteri kullanılarak bir sonrakine mantıksal satır aktarma işleciyle karşılaşılmadığı sürece yeni satırdır. Temel BASIC sözdizimi: LET, PRINT, IF ve GOTO komutları. Bu minimum sözdizimiyle bir program çalıştıran bir tercüman, bir yığına ihtiyaç duymaz çünkü bazı erken dönem mikrobilgisayar uygulamaları çok basitti. Bir yığın eklenirse döngüler ve GoSub komutları eklenebilir. BASIC yorumlayıcısının bu işlevlerle çalışması için bir satır numarası koduna sahip olması gerekir.
    Satır numaraları, ev bilgisayarı için klasik BASIC'in ayırt edici özelliğiydi. Ne yazık ki, satır numaralarının kullanılmasının büyük bir dezavantajı vardır, bu da programcının programda kaç satır olacağı konusunda bir fikir sahibi olmasını gerektirir, çünkü ana komutlar belirli bir satır numarasına atlamaktı. Ve programın sonraki sürümlerinde değişiklik veya eklemeler yapıldıysa, bu satırların sayıları değişmeye başladı ve bu da programın neredeyse tamamını değiştirme ihtiyacına yol açtı. Bu sorunu çözmek için, örneğin satırların bir kenar boşluğu ile numaralandırılması gerektiğini ve adımın +10 olduğunu söyleyen hileler kullanıldı. Ancak yine de, programda ciddi değişiklikler yapılması durumunda bu kurtarmadı. Erken BASIC tercümanlarıyla bu sorunu çözmek için, ileri düzey kullanıcılar kısa süre sonra program kaynak kodunun satırlarını yeniden numaralandırmak için kendi yardımcı programlarını yazdılar. Daha sonra gelen bazı BASIC tercümanları, satır numaralarını değiştirmek için yerleşik bir komuta sahipti ve böylece satır numaralarıyla ilgili en güncel sorunu ortadan kaldırdı.
    BASIC'in modern lehçeleri, satır numaralarını terk etmiştir ve çoğu uygulama, C veya Pascal gibi iyi bilinen dillerin yanı sıra C ve Pascal gibi diğer dillerde kullanılan yapısal kontrol ifadelerini desteklemektedir (ancak kalan sürümler vardır. yapısal kontrolü ve satır numaralandırmayı birleştirin):

    • do-döngüsü sırasında-çıkana kadar
    • x goto / gosub'da (anahtar ve kasa)

    Visual Basic gibi son değişkenler, nesne yönelimli programlama ve hatta en son sürümde kalıtım olasılığını ortaya koydu. En son uygulamadaki bellek yönetimi, genellikle bir çöp toplayıcının (belleği temizleyen ve gereksiz verileri kaldıran) dahil edilmesi nedeniyle diğer birçok prosedürel programlama dilinden çok daha kolaydır.
    Dil varyantlarının çeşitliliği, dilin "organik" bir karaktere sahip olduğunu ve bu dilin sabit bir sözdizimsel kurallar dizisi olarak değil, bilgisayar dünyasında bir alt kültür olarak kabul edilebileceğini göstermektedir. Aynısı COBOL ve FORTRAN gibi diğer "eski" programlama dilleri için de geçerlidir. BT endüstrisinde BASIC'i bilen çok sayıda profesyonel, çoğunluğun BASIC'in popüler olduğu yıllar olan 80'lerde programlama konusunda dişlerini bilemesiyle açıklanabilir.

    Prosedürler ve akış kontrolü
    Basic, C gibi diğer dillerin yaptığı gibi standart dış kitaplıklara sahip değildir. Bunun yerine, tercüman (veya derleyici), yerel prosedürlerden oluşan kapsamlı bir yerleşik kitaplık içerir. Bu prosedürler, bir programcının basit uygulamaları programlamayı ve yazmayı öğrenmesi gereken, matematiksel işlevler, dizi girişi ve konsola çıkış, grafikler ve dosya işleme gibi araçların çoğunu içerir.
    BASIC'in bazı lehçeleri, programcıların kendi yordamlarını yazmalarına izin vermez. Programcılar bunun yerine programlarını daha fazla GOTO dal deyimi ile yazmalıdır. Bu, genellikle spagetti kodu olarak adlandırılan çok kafa karıştırıcı kaynak koduna yol açabilir. GoSub, parametreler veya yerel değişkenler olmadan basit türde alt programlar bildirir. BASIC'in Microsoft QuickBASIC gibi çoğu modern sürümü, eksiksiz alt yordamlar ve işlevler için destek eklemiştir. Bu, bu dilin diğer birçok programlama dilinden farklı olduğu başka bir alandır. BASIC, Pascal gibi, değer döndürmeyen prosedürler (alt program olarak adlandırılır) ile değer döndüren prosedürler (işlev olarak adlandırılır) arasında ayrım yapar. Diğer birçok dil (özellikle C) hiçbir ayrım yapmaz ve her şeyi işlev olarak adlandırır (ancak bazı işlevler "boş" değerler döndürür ve alt program prosedürleridir).

    Veri tipleri
    BASIC, mükemmel satır işleme işlevselliği ile tanınır. Zaten ilk lehçelerde, basit dize işleme için birçok temel işlev (LEFT$, MID$, RIGHT$) vardı. Dizeler günlük uygulamalarda sıklıkla kullanıldığından, bu dilin tanıtıldığı dönemde diğer dillere göre önemli bir avantajdı.
    Orijinal Dartmouth BASIC yalnızca sayısal ve dize veri türlerini destekler. Dilin bir tamsayı veri türü yoktu, bunun yerine kayan nokta değişkenlerini (gerçek tür) kullanarak tüm sayıları tanımlaması gerekiyordu. Çizgiler dinamik uzunluktaydı. Diziler ve matrisler (iki boyutlu diziler) desteklendi.
    BASIC'in her modern lehçesinde en azından tamsayı ve dizi veri türleri bulunur. Veri türleri genellikle şu noktalarda farklılık gösterir: dize tanımlayıcıları $ ile biter, ancak tamsayılar bitmez. Bazı lehçelerde, değişkenler ilk kullanımdan önce bildirilmelidir, diğer lehçelerde buna gerek yoktur, ancak Option Explicit gibi yönergeleri kullanarak bu kurala uyup uymadığını kontrol etmek mümkündür. Birçok lehçe, 16 ve 32 bit tamsayılar ve kayan noktalı sayılar gibi ek türleri de destekler. Ek olarak bazıları, Pascal "kayıtları" veya C "yapıları" gibi özel veri türleri tanımlamanıza izin verir.
    Çoğu ana lehçe, tamsayı dizilerini veya diğer türleri de destekler. Bazılarında, diziler kullanılmadan önce önceden tanımlanmalıdır (bir DIM deyimiyle). İki ve çok boyutlu dizilerin yanı sıra tamsayı olmayan türlerdeki diziler için destek yaygındır.
    myIntArray (100) TAM SAYI OLARAK DIM
    STRING OLARAK myNameList (50) DIM
    BASIC lehçesine ve Seçenek Tabanının kullanımına bağlı olarak, değerler myIntArray (0) ile myIntArr (100), myIntArr (1) ile myIntArr (100) veya myIntArray (LowInteger) ile myIntArray (HighInteger) arasında değişebilir ), başka bir deyişle, sayı İlk eleman sıfırdan veya birden başlayabilir.

    İlişkisel ve mantıksal işleçler
    = eşit
    <= меньше или равно
    mantıksal olumsuzlama değil
    <>Eşit değil
    >= büyük veya eşit
    ve boole çarpma
    < Меньше
    veya mantıksal toplama
    > Daha Fazla
    (BASIC'te eşittir operatörü ile atama operatörü arasında sözcüksel bir fark olmadığına dikkat edin - bu "=" işaretidir)

    Kullanılabilirlik ve lehçe seçenekleri
    Basic, neredeyse tüm mikroişlemci platformları için kullanılabilir. Ücretsiz standartlara uygun bir dil yorumlayıcısı ve çapraz platform Bywater BASIC (bwBASIC) vardır. Tercüman C dilinde yazılmıştır ve GNU lisansı altındadır. Metin tabanlı bir program konsolu için tasarlanmıştır ve bu nedenle bir grafik kullanıcı arabirimi (GUI) oluşturmak için araçlar içermez. GUI Builder'ı içermeyen ücretsiz BASIC, Visual Basic'e benzer ve Windows ve Linux üzerinde çalışır - Phoenix Object Basic'tir.
    En iyi bilinen sürümler, Microsoft Quick BASIC'in derlenmiş sürümü ve bağımsız programlar oluşturmayan QBASIC sürümüdür. Visual Basic'in bazı sürümleri yerel koda da derlenebilir. Microsoft, Visual Basic'i önceki sürümlerle bile minimum düzeyde uyumlu tuttu.
    Diğer sürümler, BASIC için en son resmi standartlarla uyumlu olan PowerBASIC'ten PowerBASIC programlama dilini ve True BASIC'ten True BASIC'i içerir. True BASIC, Dartmouth BASIC'in kurucularından biri tarafından kuruldu.
    REALbasic, Microsoft Windows için yürütülebilir dosyalar da oluşturan Apple Macintosh'un bir çeşididir. PureBasic, basit bir sözdizimine sahip ancak Windows ve Linux için hızlı ve küçük yürütülebilir dosyalar üreten bir varyanttır. SmallBASIC, birçok platformda (Win32, DOS, Linux ve PalmOS) çalışan ve GNU GPL lisansı altında lisanslanan bir lehçedir.