# BASIC

BASIC|  |
| Paradigması | yapısal olmayan, sonraları yordamsal, sonraları nesne yönelimli |
| İlk çıkışı | 1964 |
| Tasarımcı | John George Kemeny ve Thomas Eugene Kurtz |
| Önemli uygulamaları | Apple BASIC, Atari BASIC, Commodore BASIC, Microsoft BASIC, Liberty BASIC, BBC BASIC, TI-BASIC |
| Etkilendikleri | ALGOL 60, FORTRAN II, JOSS |
| Etkiledikleri | COMAL, Visual Basic, Visual Basic .NET, Realbasic, GRASS |

**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:

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

### Değişkenlerin belirtilmesi

Bir değişken "**Dimdegisken\_ismi* **astü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  + 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