# 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.
 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ı
 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.
  - 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