BASIC'in YAPISI ve TARİHİ

BASIC'in YAPISI ve TARİHİ

BASIC (Beginners' All purpose Symbolic Instruction Code) (Yeni Başlayanlar Için Çok Amaçli Sembolik Komut Kodu) programlama dili, 1964'de Hanover, New Hampshire, ABD'de Dartmouth Koleji'inde geliştirilmiştir. Hazirlanmasindaki amaç, FORTRAN'dan daha kolay kullanilan ve ayni zamanda ögrencileri daha sonra FORTRAN kullanimini ögrenmeye hazirlayacak bir dil istegiydi.

BASIC'in ilk kullanılışı eğitim amacıyla oldu. Fakat, insanlar BASIC'in yalnızca başka bir dili öğrenmeye hazırlamak için değil, aynı zamanda uygulama programları yazmak için kullanılabildiğini farkedince kullanım alanları hızla genişledi. BASIC kısa zamanda programcılara basit programların yazımında FORTRAN'ın sağladığı olanakları, daha kolay program geliştirme avantajı ve daha kullanıcı dostu bir ortamla birlikte sağlayan bir dil olarak görüldü. Aslında BASIC, FORTRAN'ın karşısında yalnızca FORTAN'ın daha gelişmiş özellerine ihtiyaç duyulduğu durumlarda zayıf kalır. Matematikçiler ve bazı bilim adamları için pek çok uygulama programı bu gelişmiş özelliklere ihtiyaç duyar. Fakat pek çok kullanıcı için, BASIC yeterlidir.

Piyasaya sürüldüğü ilk dönemlerde pek kullanılmadığı, ancak son zamanlarda yaygın olarak kullanılmaya başlandığı için BASIC'in tarihçesi ilginçtir. 1960 ve 1970'li yılların 'ciddi' uygulama programları BASIC ile yazılmamıştır. Yazılım üreticileri, o andaki uygulama için daha uygun olan daha büyük ve gelişmiş dilleri tercih etmişlerdir. Sonuç olarak, BASIC kullanıcılarının sayısı uzun bir süre için diğer dilleri kullananların sayısından daha az olmuştur.
Bilgisayarın yaygınlaşması, küçük sistem üreticilerinin yeni başlayanların kullanabilecekleri ve küçük sistemlere uyarlanması kolay olacak bir dil istemeleri, BASIC'in tercih edilmesine sebep olmuştur. Mikrobilgisayarların kullanımının artması genelde bilgisayar dillerinin, ve genellikle bilgisayarla birlikte kullanıcıya verildiği için, özellikle BASIC'in kullanımı artmıştır.

Bu noktada "Donanımları için üst düzey bir dil arayan üreticilere niçin BASIC çekici bir seçim olarak geldi ?" sorusunu sormak ilginç olacaktır.

1. BASIC yorumlamalı bir dildir.
BASIC dilinin hemen tüm sürümleri derleyici yerine bir yorumlayıcı kullaırlar. Dil öyle bir şekilde hazırlanmıştır ki, özellikle belleğin sınırlı olduğu ve derleyici yerine yorumlayıcı kullanımın uygun olacağı küçük bilgisayar sistemlerine uygun şekildedir.
Bunun sebebi gayet açıktır. Derlemeli bir dil kullanıldığında, tüm kaynak kod alınır ve çalışabilir nesne kodu haline geldikden sonra çalıştırılır. Diğer yanda ise, yorumlamalı bir dilde bir seferde kaynak kodun yalnızca bir satırı çevrilir ve bu yüzden yalnızca bir satırın kaynak ve çevrisini bellekde tutmak gerekir. Bu şekilde, bellekden tasarruf edilmektedir.

2. BASIC (TEMEL), pek çok kişiyi bilgisayar almaya sevkedebilecek, çekici bir isimdir.
Bilgisayar üreticilerinin elinde, gerekli olduğunda bir yorumlayıcı ile piyasaya sürebilecekleri çeşitli diller vardır. Fakat bilgisayar dilinin yeni başlayanlar için yazılmış olması ve basit oluşu, bilgisayarı için büyük pazarlar bulmayı amaçlayan üreticilere her zaman çekici gelmiştir.

3. BASIC yalnızca bir dil değil, aynı zamanda bir sistemdir.
Program yazmak isteyen bilgisayar kullanıcısı iki komut setini öğrenme zorundadır. Bilgisayarın işletim sistemi, donanım ile iletşim olanağı sağlar. Bir dosyayı belleğe yükleme, bellekdekileri diske kaydetme ve editörü çalıştırma işlemlerinin tümü işletim sistemi komutlarıdır. Bu işlemler, bilgisayara program çalışırken yapması gerekenleri bildiren dil komutlarından ayrıdır.
Pek çok bilgisayar dili kullanıcı için, sistemin komut satırından girilmesi gereken sistem komutları ile programlama dili komutları arasında kesin bir ayrım vardır. Bu yeni başlayanlar için oldukça sorun yaratır. Değişik zamanlarda değişik komut tipleri gerekir. Program yazarken işletim sistemi komutları kullanılamaz ve aynı şekilde programlama dili komutları da işletim sistemine verilemez.
BASIC dilini tasarlayanlar, BASIC ortamını yalnızca bir dil ortamı olarak değil aynı zamanda bir sistem olarak tasarlayarak bu sorunun üstesinden gelmeye çalışmışlardır. BASIC sistemi kendi editörüne ve işletim sistemi komutlarına sahiptir. Bu komutlar dilin bir parçasıdır ve istenirse programlarda kullanılabilirler. Bunun tersi olarak programlama dili komutlarıda program dışında hemen uygulanmak üzere verilebilir.
Bu yaklaşimin sonucu olarak BASIC programcisi işine BASIC ortamina girerek başlar (ki bu işlem özellikle küçük mikrobilgisayarlarda otomatik olabilir) ve BASIC işletim sistemi komutlari da dahil olmak üzere BASIC komutlarini vererek işini sürdürür
Küçük mikrobilgisayar tasarımcıları için BASIC'in kullanımı işletim sistemi komutlarını dil komutları ile aynı ortama yerleştirme kolaylığı sağlar. Bu tür sistemlerde ayrı ayrı işletim sistemi, editör ve çalışma ortamları gereksizdir. Bunlar birleştirilerek çalışma alanında tasarruf sağlanır ve pek çok durumda hem işletim sistemi hem de dil komutların tek bir ROM yongası ile kontrolu mümkün olur.


4. BASIC Esnektir.
a. Donanım Esnekliği
Bazı açılardan, "BASIC esnektir" ifadesi, BASIC standart dışıdır ifadesinin olumlu yönüdür. Donanımdaki değişikliklerden etkilenmeden uzun süre kullanılabilirliğini sürdüren eski bir dil olan BASIC'in en eski şeklinden bazı izler taşıdığını görmek şaşırtıcı olmaz. Ne yazık ki, benzer değişimlere maruz kalan diğer dillere göre, BASIC 'in kontrolsuz değişimine izin verilmiştir. Bu yüzden değişik BASIC sürümleri araında büyük farklılıklar vardır. Hemen tüm BASIC sürümlerinde ortak görülen bazı özellikler varsa da bunlar çok azdır.
BASIC'in standart olmayışının olumlu yönleri yanında olumsuz yönleri de vardır. Katı bir standart konulduğunda, yeni durumlara uyum sağlaması için standardın gözden geçirilmesi gereklidir ve bu da zaman alır. Üreticiler, BASIC kullanılırsa bu gibi standart eskimelerinden etkilenmezler ve bazı komutlar ekleyerek dili rahatlıkla duruma uydururlar. Doğal olarak, BASIC'in değişik sürümleriyle yazılmış programların (ve bunları kullanan programcıların!) bilgisayarlar arasındaki taşınırlığı bu standart eksikliği yüzünden tehlikededir. Fakat, BASIC'in değişik sürümleri arasında işletim sistemi komutlarının göreli standartlaşması durumunda biraz da olsa çözüm getirmektedir.
BASIC dilinin standartlaşmasi konusunda bazi girişimlerde bulunulmuş fakat pek çogu, tüm BASIC'lerin içermesi gereken komutlar listesi ile yetinmişlerdir. Bu durumda, taşinabilir bir program yazmak isteyen programcilar, bu sinirli sayida komutu kullanarak programlarini yazmalidirlar.
b. Yazılım Esnekliği
BASIC genel amaçlı bir dildir ve bu yüzden oldukça geniş bir uygulama alanı yelpazesi için program üretimine uygundur. Bir üreticinin, bir bilgisayar için belli bir dili uygun görebilmesi için, dilin kullanıcılar tarafından istenilen tüm uygulamaların geliştirilebilmesi için yeterince esnek olduğuna ikna olması gerekmektedir. Bu durumda, BASIC, esnek olduğu ve genelde uygulamalarda makine dili işlemlerine erişmeye hazır bir şekilde tasarlandığı için genelde iyi bir seçimdir.
Tüm bu avantajlarına rağmen, BASIC endüstride iyi bir dil olarak tanınmaz. Endüstriye girenlerin çoğu tarafından ilk dil olarak kullanılan BASIC'in içine düştüğü bu durumun sebeplerini araştırmak öğretici olabilir.

1. BASIC standart dışıdır.
Bu kişinin BASIC programlama üzerine bilgisi tamdir ifadesi anlamsizdir. BASIC uygulamalarinin sagladiklari olanaklar arasindaki fark birbirlerine göre birkaç kati buldugu için, tam bilgi ifadesi ile neyin kastedildigini anlamak imkansizdir.

2. BASIC genelde yapısal değildir.
BASIC, yapısal programlamanın kabul edilen yöntem olmasından çok önce tasarlanmıştır. Sonuç olarak, bazı yeni sürümler REPEAT... UNTIL veya WHILE gibi yapılara izin verseler de bu tüm sürümler için geçerli değildir. Dilin öğretilmesinde kullanılan pek çok kitap eski kötü yapılı yaklaşımı kullanmakta ve kullanıcıya, bugünkü piyasada başarılı olmasını engelleyen kötü alışkanlıklar kazandırmaktadır.

3. BASIC kendine özgüdür.
Bugün kullanılan dillerin hemen hemen tamamı bir derleyici kullanmaktadır.Bu yüzden bu dilleri kullananlar, bilgisayarın işletim sistemi komutlarına ve kaynak kod hazırlamak üzere editör komutlarına alışmaktadırlar. Diğer bir dile geçmek için gerekli adımlar, yeni dilin yazım kurallarını öğrenmekten başlamaktadır. Ne yazık ki bu noktadan bakıldığında, BASIC programcısı daha önce editör, derleyici ve işletim sistemi komutları ile ayrı ayrı uğraşmak zorunda kalmadığı için, derlemeli bir dil kullanmaya başladığında tamamen yeni teknikler öğrenmek zorunda kalacaktır. Aynı zamanda pek çok BASIC programcısının karşılaştığı bir diğer sorun, işletim sistemi ve dil komutları arasındaki farkı kavrayamamalarıdır. Yeni bir dil öğrenirken bu durum sorunlara yol açabilir.
Bir zorluk da çözülecek problemin büyüklüğüdür. Küçük problemler için BASIC kolay ve tatminkar bir çözüm yoludur. Fakat büyük ölçekde problemler BASIC ile kolay çözülemez. Bu yüzden, orta düzey programcılar için BASIC iyi bir seçim olmakla birlikte, ciddi programcılar için pek iyi bir seçim olmayabilir.
Bazı akademisyenler, Pascal gibi bir dilin programcılğa girişte BASIC'den daha iyi olduğunu bununla birlikte BASIC ile olduğu kadar Pascal ile de kötü program yazılabileceği görüşünde birleşmektedirler. Bunun tersi olarak, iyi yazılmış BASIC programları, pek çok Pascal programı ile karşılaştırılabilir. Asıl sorun, kullanılan olanaklardan çok, olanakların kullanılma şeklidir. BASIC programlarının büyük çoğunluğunun Pascal programlarından daha kötü yazıldığı doğrudur. Fakat doğru yöntem seçimi ve BASIC'in yeni, iyi yapılandırılmış bir uyarlaması kullanılarak iyi BASIC programları yazılabilir.








BASIC ile çalışan değişik programcı tipleri vardır.

1. Hobi Olarak Program Yazanlar
Şimdiye dek BASIC kullanan en büyük programci grubu, aldigi bilgisayarla birlikte bedava bir BASIC sistemi alan hobi programcilari oluşturur. Bu kullanicilar bazen diger dillerin varliginin fakinda degillerdir ya da BASIC ile işlerini rahatça görebildikleri için başka bir dil kullanmak için sebep görmezler.
Bu tip kullanıcılar tarafından ele alınan program projelerinin çeşitleri, kullanıcıların ilgi alanları kadar çeşitlidir ve bir dizi soru ile kullanıcıyla ilişki kuran basit programlardan büyük veritabanı paketlerine, ağırlıklı olarak grafiklerikullanan oyun programlarına kadar uzanabilmektedir. Piyasaya sürülen BASIC sürümlerinin çeşitliliği, bu kullanıcılar için dilin başarısının ölçüsüdür. Bu kullanıcılar değişik diller kullanmayı düşünmezler, çünkü kullandıkları BASIC ihtiyaç duydukları tüm işlem gücünü onlara sağlamaktadır. Makine diline kolay ulaşım da doğabilecek boşlukları kapatmaktadır.
Hobi olarak program yazan kullanıcıları çeken ve rakip dillerin çoğunun zayıf kaldığı bir özellik de grafiktir. Pek çok hobi programcısı güzel görünümlü programlar ve özellikle oyun programları yazmak ister. Daha sonra inceleyeceğimiz Pascal ve C gibi diller, kaçınılmaz bir şekilde makineye bağımlı olan grafik sistemlerini dikkate almayan bir standarda uymaya çalışırlar. Bu sebeple bu dillerin üreticileri için hem dil standartlarına uymak, hem de iyi grafik sağlamak zordur. BASIC uyarlayıcıları genelde piyasada yaygın olan grafik sistemlerinin tüm olanaklarını kullanır ve deneyimsiz programcılar için oyun yazmayı kolaylaştırırlar. Modern mikrobilgisayarlar, özellikle 16 bitlik makineler gelişmiş müzik yeteneklerine sahiptirler. Bu da aynı şekilde makineye bağlıdır ve BASIC bu tür
uygulamalar için son derece uygundur.

2. Ara Sıra Bilgisayar Kullananlar
Yalnızca arada sırada bilgisayar kullanan ve çok amaçlı bir dilin esnekliğini isteyenler için, BASIC ideal bir seçimdir. Dili öğrenmek için harcanan çaba rakiplerine göre çok daha azdır ve uygulama çok fazla işlem gücü gerektirmiyorsa yorumlayıcı kullanımdan doğan yavaşıl farkedilmez.

3. Ticari Amaçlı Kullanıcılar
BASIC'i ticari amaçla kullananların sayısı insanı şaşırtacak kadar çoktur. Bu kişiler, bir şekilde BASIC ile yaratılmış programları kullanmaya devam etmek amacıyla ve BASIC'de deneyimli programcı sayısının fazlalığına güvenerek bu şekilde davranmışlardır. BASIC aynı zamanda programların hızla geliştirilebilmesine ve, özellikle yeni uyarlamalarında oldukça hızlı program işletimine olanak sağlar. Bu faktörler, BASIC programcıları çalıştırmanın maliyetini, karşılaştırılabilir alanlarda diğer dilleri kullanan programcıları çalıştırma maliyetinden daha düşük tutmaktadır. Bununla birlikte, daha önce saydığımız nedenlerden dolayı BASIC programcıları işlerine, diğer dilleri kullanan programcılardan daha yavaş uyum sağlayabilir ve daha kötü yalışmış programlar yazabilirler.

4. Eğitim Amacı ile Kullananlar
Okullarda ilk kullanılan bilgisayarların çoğu en iyi şekilde BASIC kullanılarak programlanabiliyordu. Bu yüzden 1980'lerde geliştirilen eğitim yazılımlarının çoğu, ya tamamen BASIC ile ya da BASIC ile makine dili birlikte kullanılarak yazılmıştır. Yeni bilgisayarların belki başka bir dil kullanarak programlanması daha doğru olacaktır, fakat hem bbilgisayar programlama konusunda ders veren öğretmenler, hem de eğitim programları yazan kişiler arasında çok fazla BASIC programcısı vardır.
Daha öncede belirtdiğimiz gibi BASIC'in asıl kısıtlamaları piyasaya erken sürülmesinden, genel amaçlı yapısından ve yorumlamalı bir dil olmasından kaynaklanmaktadır.

1. Piyasaya Erken Sürülmesi
BASIC, GOTO komutu ile programın uygulanmasının program içinde satır numarası belli herhangi bir ifadeye aktarılabilmesini sağlar. Bazı durumlarda, bu, programcıların spagetti programlar yazmasına yol açmıştır. Bir spagetti program, uygulanışı belli bir yapıya sahip olmayan fakat sürekli dalgalanmalarla işleyen bir programdır. Bu durumda programın izlediği yol bir tabak spagettiye benzer.
BASIC'in yeni uyarlamaları, işlemler, fonksiyon tanımlamaları ve REPEAT... UNTIL veya WHILE gibi daha gelişmiş döngü yapıları içermekle bu kötü şöhretten kurtulmaya çalışmaktadırlar.

2. Genel Amaçlılık
Genel amaçlı dillerden, genelde belli uygulamalar için, özel amaçlı dillerden daha az uygun oldukları konusunda şikayetler vardır. BASIC'te veri işleme uygulamalarının yazılması COBOL gibi iş amaçlı dilde olduğundan daha zordur ve bu durumdan hem programcı hem de kullanıcı etkilenir. Diğer yandan tek bir programlama dili ile değişik uygulamalar yaratabilmeyi isteyen programcı kesinlikle genel amaçlı bir dil seçmelidir. Bu durumda BASIC bir seçenek olarak görülebilir. Fakat yazılan programların çalışma hızının önemli bir faktör olduğu durumlarda diğer genel amaçlı diller seçilebilir.


3. Yorumlayıcı Kullanımı
Yorumlamalı bir dilin kullanıldığı durumlarda özellikle geniş çapta döngü tekrarı yapılan programların çalışma hızı önemli ölçüde düşer. Bunun sebebi kodun her uygulanışta tekrar çevrilmei gereğidir ve döngü içinde aynı kodun tekrar tekrar çevrilmesi işlemi son derece anlamsızdır.

 

0 yorum: