GW-BASIC
GW-BASIC adalah sebuah dialek bahasa BASIC yang dikembangkan oleh Microsoft dari BASICA untuk Compaq. GW-BASIC kompatibel dengan Microsoft/IBM BASICA, tetapi GW-BASIC disimpan di dalam cakram ("disk"), tidak seperti BASICA yang disimpan di dalam ROM. GW-BASIC dibundel dengan sistem operasi MS-DOS untuk komputer kompatibel dengan IBM PC. Seperti halnya semua versi BASIC komputer mikro, GW-BASIC tidak memiliki struktur yang cukup untuk disebut sebagai sebuah bahasa pemrograman terstruktur, seperti halnya variabel lokal. Selain itu, kecepatan eksekusi program-program GW-BASIC terbilang relatif lambat, mengingat memang BASIC merupakan bahasa pemrograman yang diinterpretasikan. Meski demikian, GW-BASIC menawarkan banyak perintah grafik. Fleksibilitas yang dimilikinya cukup bagi seseorang untuk menulis permainan komputer sederhana, program bisnis dan beberapa program lainnya. Karena GW-BASIC dimasukkan ke dalam MS-DOS, maka GW-BASIC tersedia dalam setiap komputer berbasis IBM PC atau kompatibelnya. Karena itu, GW-BASIC merupakan cara yang murah untuk para pemrogram awal untuk belajar bagaimana caranya memprogram komputer.
Saat Microsoft merilis MS-DOS 5.0, GW-BASIC pun digantikan oleh Microsoft QBASIC, sebuah versi kompiler Microsoft QuickBASIC yang ringan (tidak semua fiturnya dimiliki). Kemajuan besar GW-BASIC terhadap BASICA adalah bahwa GW-BASIC tidak membutuhkan interpreter BASIC di dalam ROM, sehingga dapat digunakan di dalam komputer selain IBM PC.
Inisial "GW" dalam "GW-BASIC" mungkin diambil dari Greg Whitten, seorang karyawan awal di Microsoft Corporation yang mengembangkan standar-standar di dalam jajaran kompiler bahasa BASIC Microsoft. Teori lainnya adalah bahwa GW merupakan singkatan dari Gee Whiz, seperti yang ditulis dalam buku manual pengguna untuk GW-BASIC yang diterbitkan oleh Microsoft Press. Teori lainnya mengatakan bahwa GW juga singkatan dari "Gates, William", nama asli dari Bill Gates (William Henry Gates III). Dan teori terakhir adalah "Graphics and Windows", mengingat kedua fitur tersebut tidak dimiliki oleh BASICA.
GW-BASIC memiliki sistem "Integrated Development Environment" (IDE) yang bersifat "command-line" yang dibuat berdasarkan aslinya yang dikembangkan di Dartmouth College; semua baris program harus diberi nomor angka baris, dan semua baris yang tidak diberi nomor angka baris dianggap sebagai perintah langsung yang akan dieksekusi secara langsung. Antarmuka pemrograman yang digunakannya hampir semuanya bersifat "command-line", kecuali untuk jalan pintas ("shortcut") tombol fungsi yang diletakkan pada bagian bawah layar dan peringatan hak cipta pada atas layar. Semua berkas yang dibuat oleh GW-BASIC akan disimpan dalam format biner terkompres GW-BASIC, tetapi GW-BASIC juga menawarkan pilihan untuk menyimpan berkas BASIC dalam format teks biasa (berkas ASCII). IDE GW-BASIC memiliki perintah-perintah untuk codice_1 (menjalankan), codice_2 (memuat), codice_3 (menyimpan), codice_4 (menampilkan) program yang sedang terbuka atau codice_5 (untuk keluar ke sistem operasi yang digunakan). Meskipun perintah-perintah tersebut dapat digunakan sebagai statemen program, penggunaannya sangatlah jarang kecuali untuk perintah codice_5.
GW-BASIC sebenarnya mendukung sedikit pemrograman terstruktur, akan tetapi hal tersebut justru terlalu banyak bagi para programmer GW-BASIC untuk membuat struktur program yang baik. Semua pernyataan bersyarat codice_7...codice_8...codice_9 harus ditulis dalam satu buah baris, meskipun pernyataan codice_10...codice_11 dapat ditulis dalam beberapa baris. Fungsi-fungsi hanya dapat didefinisikan dengan menggunakan statemen codice_12 (contoh codice_13.
Variabel-variabel juga kadang ditulis dengan menggunakan simbol jenis data pada akhir namanya, codice_14 untuk "integer", codice_15 untuk "string", dan lain-lain. Sekelompok variabel yang tidak didefinisikan juga dapat diset ke dalam sebuah jenis data tertentu berdasarkan huruf pertamanya dengan menggunakan perintah codice_16, codice_17 dan lain sebagainya. Tipe data yang diguakan oleh variabel yang tidak mengikuti penamaan ini adalah bilangan "floating-point" dengan presisi tunggal.
Karena banyak programmer GW-BASIC memprogram tanpa adanya latihan formal, kadang-kadang mereka tidak menggunakan struktur sederhana untuk program yang mereka buat. Hasilnya, mereka membuat program yang kurang teratur khususnya untuk penggunaan statemen codice_18.
GW-BASIC mengizinkan penggunaan "joystick" dan "perangkat input" sejenis pena pada saat itu, tetapi tidak untuk "mouse". GW-BASIC dapat membaca dan menulisi berkas, port LPT, dan port COM; bahkan ia dapat melakukan "jebakan" terhadap "port-port" tersebut, meski ia tidak dapat menangani perangkat tape.
GW-BASIC dapat memainkan musik sederhana dengan menggunakan statemen PLAY, dengan menggunakan nada-nada yang ditulis dalam string, seperti codice_19. Kontrol suara yang arasnya lebih rendah lagi dapat dilakukan dengna menggunakan statemen codice_20, yang dalam argumennya terdapat frekuensi dalam Hertz dan panjang "beep"-nya dihitung dalam waktu internal speaker PC dalam mesin IBM PC. Akan tetapi, penggunaan suara terbatas hingga beep yang bersifat "monoaural" (satu kanal) saja. Meski demikian, beberapa PC rumahan seperti Tandy 1000 mengizinkan penggunaan tiga buah kanal suara untuk perintah codice_20 dan codice_22. GW-BASIC juga mengimplementasikan perintah codice_23, yang memiliki 8 efek suara yang dapat diubah parameter "pitch", "speed", dan "length"-nya.