close

Küçük TEMEL

Navigasyona git Aramaya git

Tiny BASIC , orijinal olarak Assembly'de programlanmış ve yalnızca 2 ila 3 KB belleğe sığan BASIC programlama dili için bir yorumlayıcının çok basit ve basitleştirilmiş bir sürümüdür . Bu küçük boyut, tipik RAM boyutunun 4 ila 8 KB olduğu 1970'lerin ortalarında, mikrobilgisayarların ilk günlerinde çok kullanışlıydı .

Tarih

İlk dil yalnızca, öncelikle Stanford Üniversitesi Bilgisayar Bilimleri fakültesinin bir üyesi olan Dennis Allison tarafından yazılan bir standartlar belgesinden oluşuyordu . Homebrew Computer Club'dan Bob Albrecht , onu standardı yaratmaya çağırdı. BASIC dilini mini bilgisayarlarda görmüştü ve MITS'nin Ocak 1975'te piyasaya sürülen Altair 8800'ü gibi yeni makineler için mükemmel bir uyum olacağına inanıyordu .

Bob ve Dennis, tasarım belgesini People's Computer Company bülteninde yayınladı . Aralık 1975'te Dick Whipple ve John Arnold , yalnızca 3K RAM gerektiren bir dil tercümanı yarattılar . Bob ve Dennis, bu versiyonu ve orijinal tasarım belgelerindeki düzeltmeleri " Dr. Dobb's Journal of Tiny BASIC Calisthenics and Orthodontia " olarak adlandırdıkları özel bir Tiny BASIC bülteninde yayınlamaya karar verdiler . Tiny BASIC'in tasarım açıklamaları ve tam kaynak kodu da dahil olmak üzere 1976 sürümlerinde çeşitli sürümleri yayınlandı .

Minik TEMEL dilbilgisi

Dilbilgisi, Backus-Naur notasyonunda aşağıda listelenmiştir . Listelemede, bir yıldız işareti ("*") solundaki nesnenin sıfır veya daha fazlasını belirtir - "terim" tanımındaki çarpma operatörü olan ilk yıldız işareti dışında; parantez grup nesneleri; ve bir epsilon ("ε") boş küme anlamına gelir. Programlama dili dilbilgisi notasyonunda yaygın olduğu gibi, dikey çubuk ("|") alternatifleri ayırt etmenin yanı sıra ayrı satırlarda listelenir. "CR" sembolü, bir satır başı anlamına gelir (genellikle klavyedeki "ENTER" tuşu tarafından oluşturulur).


   satır ::= sayı ifadesi CR | açıklama hazır yanıtı

   deyim ::= PRINT expr-list
                 IF ifadesi relop ifadesi THEN ifadesi
                 GOTO ifadesi
                 INPUT değişken listesi
                 LET var = ifade
                 GOSUB ifadesi
                 DÖNÜŞ
                 AÇIK
                 LİSTE
                 KOŞMAK
                 SON

   ifade listesi ::= (dize|ifade) (, (dize|ifade)* )

   var-list ::= var (, var)*

   ifade ::= (+|-|ε) terim ((+|-) terim)*

   terim ::= faktör ((*|/) faktör)*

   faktör ::= var | sayı | (ifade)

   var ::= A | B | Ç .... | VE | Z

   sayı ::= rakam rakam*

   basamak ::= 0 | 1 | 2 | 3 | ... | 8 | 9

   yeniden ::= < (>|=|ε) | > (<|=|ε) | =

   Konsoldan bir BREAK, programın yürütülmesini kesintiye uğratır

Kaynak: Dr. Dobb's Journal of Computer Calisthenics & Orthodontia , Cilt 1, Sayı 1, 1976, s.9.

Yorumlanan dilde uygulama

Uygulama için yorumlanmış bir dil (IL) kullanılır. IL ile yazılmış bir yorumlayıcı, Tiny BASIC kodunun bir satırını yorumlar ve onu yürütür. IL , IL kodunu yorumlayan soyut bir makinede çalışır . Yorumlanmış bir dil kullanma fikri Val Schorre ( META II ile , 1964) ve Glennie'den (Syntax Machine) gelmektedir. Ayrıca bkz. sanal makine , CLI .

Aşağıdaki tablo, Tiny BASIC yorumlayıcısının yazıldığı yorumlanan dil komutlarının kısmi bir listesini verir. Komple tercüman programının uzunluğu sadece 120 IL işlemidir. Böylece, yorumlayıcı bir yaklaşım seçeneği, BASIC programları biraz yavaş yürütülse de, bellek alanından ve uygulama çabasından tasarruf sağladı. Son satırdaki CRLF, satırbaşını (CR) ve ardından yeni satırı (LF) simgelemektedir.

TST lbl , dize Dize BASIC satırıyla eşleşirse , imleci dizenin üzerine getirin ve sonraki IL deyimini yürütün; test başarısız olursa, lbl etiketindeki IL ifadesini yürütün
CALL lbllbl'den başlayarak IL alt yordamını yürütün ; çağrıyı (CALL) takip eden IL adresini kontrol yığınına kaydeder
RTNKontrol yığınının en üstünde belirtilen IL konumuna geri dönün
BAĞIŞ YAPMAKBaştaki boşlukları sildikten sonra imleç bir satırbaşına basacak şekilde konumlanmadıysa sözdizimi hatası bildirin
JUMP lblBelirtilen etikette IL belirtimine devam eder
PRSTEMEL metin karakterlerini kapalı soru işaretine kadar yazdırın, ancak kapalı soru işareti dahil değil
PRNİfade yığınına POP yaparak elde edilen sayıyı yazdırır
SPCYazıcı kafasını bir sonraki bölgeye taşımak için boşluklar ekleyin
NLINEYazıcıya bir CRLF gönderin

Kaynak: Dr. Dobb's Journal , Cilt 1, Sayı 1, 1976, s.12.

Ayrıca

Dış bağlantılar