BASIC

**BASIC** (İngilizce: Beginner's All-Purpose Symbolic Instruction Code Türkçe: *Yeni başlayanların çok amaçlı simgesel öğretim kodu*) 1964'te John George Kemeny ve Thomas Eugene Kurtz tarafından New Hampshire, ABD'de icat edilmiş, günümüzde de çeşitli türevleri kullanılmakta olan yüksek düzey bir programlama dili. Farklı türevleri birçok işletim sisteminin parçası olarak sunulmuştur.

BASIC öğrenmesi ve yazılımları kolay olan bir dildir. Genelde amatörce ve hobi uğraşıları için kullanılmıştır. Microsoft daha sonra Kişisel bilgisayarlar için *Quick Basic* derleyicisi piyasaya sürmüştür. Bununla yazılan BASIC metinlerini makine koduna çevirilebilmiş böylece sürat kazanmıştır. Bugün hâlen geniş bir kullanım alanına sahip olan Visual Basic dili var olup bununla hatta Windows'un belirli bölümleri yazılmıştır. Her Microsoft Office paketinde bir BASIC türevi var olup makro programlamada büyük kolaylıklar getirmektedir. Ayrıca BASIC kodunu C veya C++ koduna çevirip makine kodu derlemesi yapabilen bazı açık kaynak kodlu uygulamalar bulunmaktadır. Bunlardan BaCon Linux, MacOS ve bazı unix tabanlı işletim sistemlerinde HUG kütüphanesi ile pencere, buton, vb. arayüz oluşturmak için kullanılabilirken BCX sadece Windows'ta WinAPI ile arayüz oluşturmak için kullanılabilmektedir. QB64 adlı derleyici ise Windows, MacOS, Linux ve bazı başka işletim sistemlerinde arayüz oluşturmaya imkân sağlamaktadır.

Basic programlama dili algoritma'ya çok yakın bir yapıya sahiptir. Bu yüzden öğrenilmesi ve uygulanması kolaydır.

## Değişken isimleri ve kuralları
Değişken isimleri aşağıdaki kurallara uyan her şey olabilirler:

# Değişken ismi en fazla 255 karakterden oluşmalıdır.
# Değişkenler arasında *: ;, . / ' # [ ] ! " $ % ^ & * ( ) { }* karakterleri kullanılamaz. Ancak *_* kullanılabilir.
# Değişken isminin ilk karakteri mutlaka harf olmalıdır. Yani değişkenler rakamla başlamaz.
# Değişken isimlerinde büyük küçük harf ayrımı yoktur. "AbCdE" ile "Abcde" veya "ABCDE" aynı değişkenleri belirlerler.
# Belirli bir prosedürde aynı değişken birden fazla tanımlanamaz.
# En önemlisi de herhangi bir BASIC komutu olamayacaklarıdır.

### Değişkenlerin belirtilmesi
Bir değişken "**Dim** *degisken_ismi* **as** *tür*" seklinde tanımlanır.

 
```qbasic
Dim damdaki_kedi as byte
  Dim Burak, gonen, kedi, damdaki as boolean
  Dim İsmail, cerban, temel, egitim as string
```


Görüldüğü gibi VB'de de değişkenler arası virgül ile ayrılıp birden çok aynı türde değişken aynı anda tanımlanabilir.

### Örnek program
Merhaba Dünya çıktısı

```qbasic
10 PRINT "Merhaba Dünya!"
  Dim str1, str2 as string
  str1=textbox1.text
  str2=textbox2.text
  if str1=" " or str2=" " then
  msgbox("Lütfen Parolanızı Giriniz", msgboxstyle.critical)
  EndIf''
  End Sub
```


### Sunucuya Bağlanma

```qbasic
# Bir siteye bağlanmak ve veri akışı

site$ = "tr.wikipedia.org"
port = 80
NETCONNECT site$, port
print "connected to " + site$ + ":" + port

get$ = "GET http://" + site$ + "/ HTTP/1.0" + chr(13) + chr(10)
get$ = get$ + chr(13) + chr(10)
NETWRITE get$
print "request written"

s$ = ""
do
   chunk$ = netread
   print "chunk  '" + left(chunk$,10) + "..." + right(chunk$,10) + "'" + length(chunk$)
   s$ = s$ + chunk$
   # bekleyin / yavaş bağlantılar için bazı ayarlamalar gerekebilir
   pause .2
until not netdata
NETCLOSE

print "response"
print s$
print length(s$)
```


## Bazı türevleri
* Amstrad (Locomotive) Basic,
* Atari Basic,
* BaCon
* BasicA,
* GWBasic,
* Commodore,
* Basic V2,
* Mallard Basic,
* QBASIC (Quickbasic),
* TurboBasic,
* Power Basic,
* Visual Basic,
* Visual Basic .NET