ബേസിക്

ഹൈ ലെവൽ കമ്പ്യൂട്ടർ പ്രോഗ്രാമിങ് ഭാഷകളുടെ ഒരു കുടുംബം ആണ്  **ബേസിക്** (BASIC). **ബിഗിനേഴ്സ് ഓൾ പർപ്പസ് സിംബോളിക് ഇൻസ്ട്രക്ഷൻ കോഡ്** എന്നാണ് ഇതിന്റെ പൂർണനാമം. ബേസിക് രൂപകൽപനയിലെ അടിസ്ഥാനതത്വം എളുപ്പത്തിൽ ഉപയോഗിക്കാനാകുക എന്നതാണ്. 

1964-ൽ ജോൺ ജോർജ്ജ് കെമിനി, തോമസ് യൂജീൻ കുർട്സ് എന്നിവർ ചേർന്നാണ് ബേസികിന്റെ ആദ്യരൂപമായ ഡാർട്ട്മൗത്ത് ബേസിക് രൂപകൽപ്പന ചെയ്തത്. കമ്പ്യൂട്ടർ ഉപയോഗം ശാസ്ത്രേതരവിദ്യാർത്ഥികൾക്കും ലഭ്യമാക്കുക എന്ന ലക്ഷ്യത്തിൽ, യു.എസിലെ ന്യൂ ഹാംഷെയറിലുള്ള ഡാർട്ട്മൗത്ത് കോളേജിലാണ് ഇവരിത് വികസിപ്പിച്ചത്. അക്കാലത്ത് കമ്പ്യൂട്ടറുകളുടെ ഏതൊരുപയോഗത്തിനും പ്രത്യേകം പ്രോഗ്രാമുകൾ തയ്യാറാക്കേണ്ടിയിരുന്നു. ഇത് ശാസ്ത്രജ്ഞർക്കും ഗണിതജ്ഞർക്കും മാത്രമേ സാധ്യമായിരുന്നുതാനും. ലഭിതമായ ഈ കമ്പ്യൂട്ടർഭാഷയും അതിന്റെ വകഭേദങ്ങളും, 1970-ന്റെ അവസാനവും 80-കളിലുമായി മൈക്രോകമ്പ്യൂട്ടറുകളിൽ വ്യാപകമായി ഉപയോഗിക്കപ്പെട്ടു, എന്നുമാത്രമല്ല കമ്പ്യൂട്ടറുകളിലെ അടിസ്ഥാനസൗകര്യം എന്നനിലയിൽ ഫേംവെയറിന്റെ ഭാഗമായിപ്പോലും വിതരണം ചെയ്യപ്പെട്ടു.

നിരവധി വകഭേദങ്ങളായും മൈക്രോസോഫ്റ്റ് വിഷ്വൽ ബേസിക് പോലെയുള്ള പുതിയ പ്രോഗ്രാമിങ് ഭാഷകൾക്കും പ്രേരകമായൂം ബേസിക് ഇന്നും ജനകീയമാണ്. 2006-ലെ കണക്കു പ്രകാരം ഡോട്ട്നെറ്റ് ഫ്രെയിംവർക്കിൽ സോഫ്റ്റ്‌വേർ വികസിപ്പിക്കുന്നവരിൽ 59 ശതമാനം പേരും വിഷ്വൽബേസിക്.നെറ്റ് ആണ് പ്രോഗ്രാമിങ് ഭാഷയായി ഉപയോഗിക്കുന്നത്.

സാധാരണ ഉന്നതതല പ്രോഗ്രാമിങ് ഭാഷകളിൽ നിന്നും വ്യത്യസ്തമായി ബേസിക് പ്രോഗ്രാമുകളെ കൈകാര്യം ചെയ്യുന്നതിന്‌ കമ്പൈലറുകൾക്കു പകരം പൊതുവേ ഇന്റർപ്രറ്ററുകളാണ്‌ ഉപയോഗിക്കാറുള്ളത്. ജി.ഡബ്ല്യു. ബേസിക്, ക്യുബേസിക് എന്നിവ ഇത്തരം ഇന്റർപ്രട്ടറുകളാണ്‌. ഇന്റർപ്രട്ടറുകൾ പ്രോഗ്രാമിന്റെ ഓരോരോ നിർദ്ദേശങ്ങളായി കൈകാര്യം ചെയ്യുന്നതിനാൽ പ്രോഗ്രാമിൽ വരുന്ന തെറ്റുകൾ തിരുത്തുന്നത് എളുപ്പമാണ്‌.

## ചരിത്രം
1960-കളുടെ പകുതിക്ക് മുൻപ് കമ്പ്യൂട്ടറുകൾ വളരെ ചെലവേറിയതും അവ പ്രത്യേക ആവശ്യങ്ങൾക്കു മാത്രമേ ഉപയോഗിക്കപ്പെട്ടിരുന്നുമുള്ളൂ. ഒരേ സമയം ഒരു പണി എന്ന രീതിയിൽ ഒന്നിനു പിന്നാലെ ഒന്നായി ചെയ്യാവുന്ന ബാച്ച് പ്രോസസിങ് രീതിയിലാണ് പ്രോഗ്രാമുകൾ അവയിൽ പ്രവർത്തിച്ചിരുന്നത്. എന്നാൽ 1960-കളിൽ കൂടുതൽ വേഗതയുള്ളതും വിലകുറഞ്ഞതുമായ കമ്പ്യൂട്ടറുകൾ ലഭ്യമായിത്തുടങ്ങി. മാത്രമല്ല ഈ കമ്പ്യൂട്ടറുകൾ ടൈം-ഷെയറിങ് പിന്തുണച്ചിരുന്നതിനാൽ ഒരേ സമയം ഒന്നിലധികം ഉപയോക്താക്കൾക്കോ പ്രവൃത്തികൾക്കോ പ്രോസസറും മെമ്മറിയും ഉപയോഗിക്കാനും സൗകര്യം ലഭിച്ചു. ഇത്തരം കമ്പ്യൂട്ടറുകളിലെ ഓപ്പറേറ്റിങ് സിസ്റ്റം, ഓരോ പ്രവർത്തിക്കും നിശ്ചിതസമയം മാറിമാറി അനുവദിച്ച് അവ പൂർത്തീകരിക്കുന്നു. ഈ കമ്പ്യൂട്ടറുകൾക്ക് അവശ്യം വേഗതയുണ്ടായിരുന്നതിനാൽ മിക്ക ഉപയോക്താക്കൾക്കും അവർക്കുമാത്രമായി ആ കമ്പ്യൂട്ടർ പ്രവർത്തിക്കുന്നു എന്ന തോന്നലുളവാക്കി.

ഈ സമയത്ത് കമ്പ്യൂട്ടറുമായി ഇടപഴകുക എന്ന ആശയത്തിന് പ്രസക്തിയേറി. അക്കാലംവരെയുണ്ടായിരുന്ന ബാച്ച് പ്രോസസിങ് രീതിയിൽ ഉപയോക്താവ് കമ്പ്യൂട്ടറുമായി നേരിട്ട് സംവദിച്ചിരുന്നില്ല; പകരം അവരുടെ പ്രോഗ്രാമുകൾ പ്രവർത്തിപ്പിക്കാനായി കമ്പ്യൂട്ടർ ഓപ്പറേറ്ററെ ഏൽപിച്ച് ഫലം പിന്നീട് സ്വീകരിക്കുകയായിരുന്നു പതിവ്. ടൈം-ഷെയറിങ് മാതൃകയിൽ ഉപയോക്താക്കൾക്ക് പ്രത്യേകം കമ്പ്യൂട്ടർ ടെർമിനലുകൾ നൽകുകയും ഓരോരുത്തരും അതുവഴി കമ്പ്യൂട്ടറുമായി നേരിട്ട് ഇടപഴകാനും ആരംഭിച്ചു. ഇതോടെ സാധാരണ ഉപയോക്താക്കൾക്കും ഉപയോഗിക്കാവുന്ന രീതിയിൽ കമാൻഡ് ലൈൻ ഇന്റർപ്രട്ടർ മുതൽ പ്രോഗ്രാമിങ് ഭാഷകൾ വരെയുള്ള എല്ലാ തട്ടുകളിലും ലാളിത്യം കൊണ്ടുവരാനുള്ള കൊണ്ടുപിടിച്ച ശ്രമങ്ങൾ 1960-70 കാലങ്ങളിൽ നടന്നു.
### ഉൽപ്പത്തി

1964-ൽ ജോൺ കെമെനിയും തോമസ് കട്സും ചേർന്നാണ് ബേസിക് ഭാഷക്ക് രൂപകൽപന നടത്തിയത്. ഇവരുടെ കീഴിൽ യു.എസിലെ ഹാനോവറിലുള്ള ഡാർട്ട്മൗത്ത് കോളേജിലെ വിദ്യാർത്ഥികളുടെ ഒരു സംഘം ഇത് വികസിപ്പിച്ചെടുത്തു. ബേസിക് എന്ന പേരും അതിന്റെ വികസിതരൂപവും (**ബിഗിനേഴ്സ് ഓൾ പർപസ് സിമ്പോളിക് ഇൻസ്ട്രക്ഷൻ കോഡ്**) പിൽക്കാലത്ത് ആരോപിക്കപ്പെട്ടതല്ല; മറിച്ച്, തോമസ് കട്സിന്റെ ഒരു പ്രസിദ്ധീകരിക്കാത്ത പ്രബന്ധത്തിന്റെ പേരാണ്.  വിദ്യാർതഥികൾക്ക് ഡാർട്ട്മൗത്ത് ടൈം-ഷെയറിങ് സിസ്റ്റത്തിൽ പ്രോഗ്രാമുകൾ എഴുതാനായിരുന്നു ബേസിക് രൂപകൽപന ചെയ്തത്. ടൈം-ഷെയറിങ് കമ്പ്യൂട്ടിങ്ങിന്റെ വരവോടെയുണ്ടായ പുത്തൻതലമുറ ഉപയോക്താക്കളെയാണ് ഇത് ലക്ഷ്യം വച്ചത് - അതായത്, പരമ്പരാഗത ഉപയോക്താക്കളെപ്പോലെ ഗണിതശാസ്ത്രപരിജ്ഞാനമില്ലാത്ത സാധാരണ ഉപയോക്താക്കൾ. അദ്ധ്യയനത്തിനും ഗവേഷണത്തിനും സഹായത്തിനായി കമ്പ്യൂട്ടർ ഉപയോഗിക്കാനാകുക എന്നത് അക്കാലത്ത് തികച്ചും നൂതനമായ കാര്യമായിരുന്നു.

പുതിയ ഈ ഭാഷ, ഫോർട്രാൻ രണ്ട് അടിസ്ഥാനമാക്കിയുള്ളതായിരുന്നു. അൽഗോളിൽനിന്നും ചില ആശയങ്ങൾ സ്വീകരിച്ചിട്ടുണ്ടായിരുന്നു. ടൈം-ഷെയറിങ്ങിനു യോജിച്ച രീതിയിൽ ചില കൂട്ടിച്ചേർക്കലുകളും വരുത്തിയിരുന്നു. തുടക്കത്തിൽ 
ഗണിതക്രിയകളെ പിന്തുണക്കുന്നതിലാണ് ബേസിക് ഭാഷ ലക്ഷ്യമിട്ടത്. അതിന്റെ ആദ്യസാക്ഷാത്കാരത്തിൽത്തന്നെ  മെട്രിക്സ് ക്രിയകൾ പിന്തുണച്ചിരുന്നു. 1965-ആയപ്പോഴേക്കും അക്ഷരക്കൂട്ടങ്ങളുടെ (സ്ട്രിങ്) കൈകാര്യശേഷിയും ഈ ഭാഷയിൽ ഉൾക്കൊള്ളിക്കപ്പെട്ടു.

കമ്പൈലർ സൗജന്യമായി നൽകുകയാണെങ്കിൽ ഈ ഭാഷ പെട്ടെന്ന് ജനകീയമാകുമെന്ന് ചിന്തിച്ച ഇതിന്റെ രൂപകർത്താക്കൾ അങ്ങനെ ചെയ്യാൻ തീരുമാനമെടുത്തു. അവർ ഹാനോവർ പ്രദേശത്തുള്ള ഹൈസ്കൂളുകളിൽ കമ്പൈലർ നൽകുകയും ഇതിനെ വ്യാപകമാക്കാനുള്ള ഒട്ടേറെ പ്രവർത്തനങ്ങൾ നടത്തുകയും ചെയ്തു. തുടർന്നുള്ള വർഷങ്ങളിൽ ബേസിക്കിന്റെ മറ്റു വകഭേദങ്ങൾ പുറത്തുവന്നതോടെ കെമനിയുടേയും കർട്സിന്റെയും ആദ്യരൂപം ഡാർട്ട്മൗത്ത് ബേസിക് എന്നറിയപ്പെടാൻ തുടങ്ങുകയും ചെയ്തു.
### മിനി കമ്പ്യൂട്ടറുകളിലേക്കുള്ള പകർച്ച
സൗജന്യലഭ്യതയുടെ ഫലമായി, ബേസിക് പരിജ്ഞാനം താരതമ്യേന വ്യാപകമായി. നിരവധി കമ്പ്യൂട്ടർ നിർമ്മാതാക്കാൾ ബേസിക് കമ്പൈലറുകൾ നിർമ്മിക്കാനും, ഡി.ഇ.സിയുടെ പി.ഡി.പി. ശ്രേണി, ഡാറ്റാ ജെനറൽ നോവ തുടങ്ങിയ പുതിയ മിനി കമ്പ്യൂട്ടറുകളിൽ ഈ ഭാഷ ഏറെ പ്രചാരത്തിലാകുകയും ചെയ്തു. 

1960-കളുടെ അവസാനവും 70-കളുടെ തുടക്കത്തിലുമിറങ്ങിയ എച്ച്.പി. ടൈം-ഷെയേഡ് ബേസിക് കമ്പ്യൂട്ടർ, പിക്ക് ഓപ്പറേറ്റിങ് സിസ്റ്റം തുടങ്ങിയവ ബേസിക് കേന്ദ്രീകരിച്ചുള്ളവയായിരുന്നു. ഇവയിൽ കമ്പൈലറിനു പുറമേ ഇന്റർപ്രെട്ടർ കൂടിയായോ ഇന്റർപ്രെട്ടർ മാത്രമായോ ആണ് ബേസിക് ഉൾക്കൊള്ളിച്ചത്.

ഇക്കാലയളവിലാണ് അനവധി ലളിതമായ കമ്പ്യൂട്ടർ കളികൾ ബേസിക്കിൽ എഴുതപ്പെട്ടത്. മൈക്ക് മേഫീൽഡിന്റെ സ്റ്റാർ ട്രെക്ക് ഇവയിൽ ഏറ്റവും ശ്രദ്ധേയമായിരുന്നു. ഇത്തരത്തിലുള്ള കുറേ കളികൾ, ഡേവിഡ് ഓൾ അദ്ദേഹം ഡി.ഇ.സിയിൽ ജോലിചെയ്തുകൊണ്ടിരിക്കുന്ന കാലത്ത്, ശേഖരിക്കുകയും 1973-ൽ **101 ബേസിക് കമ്പ്യൂട്ടർ കളികൾ** (101 BASIC Computer Games) എന്ന പേരിൽ പുസ്തകമായി പ്രസിദ്ധീകരിക്കുകയും ചെയ്തു.  ഈ പുസ്തകം വളരെ ജനപ്രീതിയാർജ്ജിക്കുകയും പലതവണ പുനഃപ്രസിദ്ധീകരിക്കുകയും ചെയ്തു.

### വൻവളർച്ച: ഗാർഹിക കമ്പ്യൂട്ടർ യുഗം

1970-കളുടെ പകുതിയോടെയോടെയുള്ള മൈക്രോകമ്പ്യൂട്ടറുകളുടെ രംഗപ്രവേശം ബേസിക്കിന്റെ വൻവളർച്ചക്ക് കളമൊരുക്കി. മൈക്രോകമ്പ്യൂട്ടറിന്റെ ഉപയോക്താക്കളായ ചെറുപ്പക്കാരായ ഡിസൈനർമാർക്കും കമ്പ്യൂട്ടർ ഹോബിയിസ്റ്റുകൾക്കും ഏറെ പരിചയമുള്ള ഭാഷ എന്നത് ഇതിന്റെ വളർച്ചക്ക് അനുകൂലമായി ഭവിച്ചു.

മൈക്രോകമ്പ്യൂട്ടറിനുവേണ്ടിയുള്ള ബേസിക് വകഭേദങ്ങളിൽ ആദ്യത്തേതിലൊന്നായിരുന്നു, സ്റ്റാൻഫോഡ് സർവ്വകലാശാലയിലെ കമ്പ്യൂട്ടർ സയൻസ് അദ്ധ്യാപകനായിരുന്ന ഡെന്നിസ് അലിസൺ രൂപകൽപ്പനയിലുള്ള ടൈനി ബേസിക്. ഹോംബ്രൂ കമ്പ്യൂട്ടർ ക്ലബ്ബിലെ ബോബ് ആൽബ്രെക്റ്റിന്റെ ആവശ്യപ്രകാരമാണ് ഇതിന് രൂപം നൽകിയത്. 2-3 കിലോബൈറ്റ് മെമ്മറിയിൽ ഉൾക്കൊള്ളുമെന്നതായിരുന്നു ടൈനി ബേസിക്കിന്റെ പ്രധാനപ്രത്യേകത. (ആദ്യകാല മൈക്രോകമ്പ്യൂട്ടറുകളുടെ പ്രൈമറി മെമ്മറി വെറും 4 മുതൽ 8 കെ.ബി. വരെയായിരുന്നു.) അക്കാലത്ത് മിനി കമ്പ്യൂട്ടറുകളിൽ ഓടിയിരുന്ന ബേസിക് കണ്ടിട്ടുള്ള ബോബ്, 1975 ജനുവരിയിൽ പുറത്തിറങ്ങിയ മിറ്റ്സിന്റെ ഓൾട്ടയർ 8800 പോലുള്ള പുതിയ കമ്പ്യൂട്ടറുകൾക്കുവേണ്ടി ബേസിക്കിന്റെ ലഘുവായ ഒരു പതിപ്പിനായി ശ്രമിക്കുകയായിരുന്നു. 1975-ൽ ടൈനി ബേസിക്കിന്റെ രൂപകൽപനാമാനദണ്ഡങ്ങൾ, പീപ്പിൾസ് കമ്പ്യൂട്ടർ കമ്പനി പത്രക്കുറിപ്പിലൂടെ, ഇരുവരും ചേർന്ന് പ്രസിദ്ധപ്പെടുത്തി. തുടർന്ന് വിവിധയാളുകൾ നിർമ്മിച്ച ടൈനിബേസിക് ഇന്റർപ്രട്ടറുകൾ സോഴ്സ്കോഡടക്കം ഡോക്ടർ ഡോബ്സ് ജേണൽ എന്ന ടൈനി ബേസിക്കിനുവേണ്ടി മാത്രമായുള്ള ഒരു പ്രസിദ്ധീകരണത്തിലുടെ പ്രസിദ്ധീകരിക്കുകയും ചെയ്തു. ഡോക്ടർ ലി-ചെൻ വാങ് (പേലോ ഓൾട്ടോ ടൈനി ബേസിക്), ടോം പിറ്റ്മാൻ എന്നിവരുടെ ടൈനി ബേസിക് പതിപ്പുകൾ ശ്രദ്ധേയമായി.

1975-ൽ ഓൾട്ടയർ 8800 കമ്പ്യൂട്ടറുകൾക്കുവേണ്ടി ഓൾട്ടയർ ബേസിക് എന്ന ഇന്റർപ്രട്ടർ ഈ കമ്പ്യൂട്ടറിന്റെ നിർമ്മാതാക്കളായ മിറ്റ്സ് പുറത്തിറക്കി. ബിൽ ഗേറ്റ്സും പോൾ അല്ലനും ചേർന്നുണ്ടാക്കിയ മൈക്രോ-സോഫ്റ്റ് എന്ന കമ്പനിയാണ് ഈ ഇന്റർപ്രട്ടർ നിർമ്മിച്ചുനൽകിയത്. അവിടെത്തുടങ്ങിയ ഈ കമ്പനി വളർന്ന് ഇന്നത്തെ മൈക്രോസോഫ്റ്റ് എന്ന വ്യവസായഭീമനായി മാറി. 

1977 ത്രയം (ആപ്പിൾ, കൊമോഡോർ, ടാൻഡി) എന്നറിയപ്പെടുന്ന ആപ്പിൾ രണ്ട്, കൊമോഡോർ ബിസിനസ് മെഷിൻസ് പുറത്തിറക്കിയ പി.ഇ.ടി. 2001, ടാൻഡി കോർപ്പറേഷന്റെ ടി.ആർ.എസ്.-80 എന്നീ മൂന്നു കമ്പ്യൂട്ടറുകളിലും ബേസിക് ആയിരുന്നു പ്രഥമ പ്രോഗ്രാമിങ് ഭാഷയും പ്രവർത്തനാടിത്തറയും. ഇവയിൽ കമ്പ്യൂട്ടർ ബൂട്ട് ചെയ്യുമ്പോൾത്തന്നെ ഉപയോക്താവ് ഒരു ബേസിക് ടെർമിനലിലേക്കാണ് എത്തിച്ചേരുക. കൊമോഡോറിന്റെ കമ്പ്യൂട്ടറിൽ മൈക്രോ-സോഫ്റ്റ് ബേസികിന്റെ ഒരുപതിപ്പാണ് ഉൾപ്പെടുത്തിയതെങ്കിൽ ആപ്പിളിലും ടാൻഡിയിലും ബേസിക്കിന്റെ രണ്ടുപതിപ്പുകളുണ്ടായിരുന്നു - ആദ്യകാല കമ്പ്യൂട്ടറുകളോടൊപ്പം നൽകിയ ചെറിയ പതിപ്പും പിൽക്കാലത്ത് ഈ കമ്പ്യൂട്ടറുകൾക്ക് ആവശ്യക്കാരേറിയതോടെ നൽകിയ മെച്ചപ്പെടുത്തിയ പതിപ്പും. കൂടുതൽ കമ്പനികൾ ഈ മേഖലയിലെത്തിയതോടെ ബേസിക്കിന്റെ നിരവധി പതിപ്പുകൾ എത്തിച്ചേർന്നു.  അറ്റാരി 8-ബിറ്റ് കുടുംബത്തിലുള്ള കമ്പ്യൂട്ടറുകൾക്ക്, 8 കെ.ബി. റോം കാർട്രിഡ്ജിൽ ഉൾക്കൊള്ളിക്കാവുന്നതരത്തിൽ അറ്റാരി ബേസിക് എന്നപേരിൽ അവരുടേതായ ബേസിക് ഉണ്ടായിരുന്നു. ബി.ബി.സി. ബേസിക് എന്നപേരിൽ ബി.ബി.സി. പുറത്തിറക്കിയ വകഭേദം അകോൺ കമ്പ്യൂട്ടേഴ്സാണ് വികസിപ്പിച്ചത്. ഇതിൽ പ്രോഗ്രാമിനെ ഘടനാപരമാക്കാനുള്ള ഒട്ടേറെ കീവേഡുകളും ഫ്ലോട്ടിങ് പോയിന്റ് ക്രിയകൾക്കുള്ള മികച്ച പിന്തുണയുമുണ്ടായിരുന്നു. 1980-കളിലെ മിക്കവാറും ഗാർഹിക കമ്പ്യൂട്ടറുകൾക്കും റോമിൽത്തന്നെ ഉൾക്കൊള്ളിച്ച ബേസിക് ഇന്റർപ്രെട്ടർ ഒരു അവിഭാജ്യഘടകമായിരുന്നു. കമ്പ്യൂട്ടർ ബൂട്ട് ചെയ്തെത്തുന്നതുതന്നെ ബേസികിലേക്കായിരുന്നതിനാൽ ഇക്കാലത്തെ ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങളുടെ സമ്പർക്കമുഖത്തിന്റെ പ്രധാനഭാഗം തന്നെ ബേസിക് ഇന്റർപ്രട്ടറായിരുന്നു.

ഇങ്ങനെ ബേസികിന്റെ പ്രചാരം വർദ്ധിക്കുന്ന വേളയിൽ, ക്രിയേറ്റീവ് കമ്പ്യൂട്ടിങ് പോലുള്ള അമേരിക്കൻ ആനുകാലികങ്ങൾ ബേസിക് ഭാഷയിലെഴുതിയ കളികളുടെയും മറ്റു പ്രോഗ്രാമുകളുടെയും സോഴ്സ് കോഡുകൾ പ്രസിദ്ധീകരിക്കാനാരംഭിച്ചു. ബേസികിന്റെ ലാളിത്യം മൂലം പുസ്തകത്തിൽ വരുന്ന കോഡുകൾ വെറുതേ ടൈപ്പ് ചെയ്ത് പ്രവർത്തിപ്പിക്കാമായിരുന്നു. ബേസിക് പ്രോഗ്രാമുകളടങ്ങിയ നിരവധി പുസ്തകങ്ങളും ഇക്കാലത്ത് പ്രസിദ്ധീകരിക്കപ്പെട്ടു. മുൻപ് ഡേവിഡ് ഓൾ പ്രസിദ്ധീകരിച്ച 101 കമ്പ്യൂട്ടർ കളികൾ എന്ന പുസ്തകം മൈക്രോസോഫ്റ്റ് ബേസികിനുവേണ്ടിയുള്ള രീതിയിൽ മാറ്റം വരുത്തി ബേസിക് കമ്പ്യൂട്ടർ ഗെയിംസ് എന്ന പേരിൽ ക്രിയേറ്റീവ് കമ്പ്യൂട്ടിങ്ങിലൂടെ പ്രസിദ്ധപ്പെടുത്തി. ഏതു ബേസിക് ഇന്റർപ്രെട്ടറിനു വേണ്ടിയും എളുപ്പത്തിൽ പരുവപ്പെടുത്തിയെടുക്കാവുന്ന നൂറുകണക്കിന് പ്രോഗ്രാമുകൾ ഈ പുസ്തകത്തിലും അതിന്റെ പിൻഗാമികളിലും അടങ്ങിയിരുന്നു. ഗാർഹിക കമ്പ്യൂട്ടറുകൾ പിച്ചവച്ചുതുടങ്ങിയ 1978-ൽ വിൽപനക്കെത്തിയ ഈ പുസ്തകമാണ് ആദ്യമായി പത്തുലക്ഷം കോപ്പികൾ വിറ്റഴിഞ്ഞ കമ്പ്യൂട്ടർ പുസ്തകം. പിൽക്കാലത്തുവന്ന ലേൺ റ്റൂ പ്രോഗ്രാം ബേസിക് പോലുള്ള പുസ്തകങ്ങളിലും കളികളിൽത്തന്നെയായിരുന്നു തുടക്കത്തിൽ ശ്രദ്ധപതിപ്പിക്കുന്നത്.

ചെറുകിട കച്ചവടമേഖലയിൽ പെട്ടെന്ന് വ്യാപകമായ സി.പി./എം. കമ്പ്യൂട്ടറുകളോടൊപ്പം അവയിലുൾക്കൊള്ളിച്ചിരുന്ന മൈക്രോസോഫ്റ്റ് ബേസിക് (എംബേസിക്) ഈ രംഗത്തെ മുൻനിര ആപ്ലിക്കേഷനായി മാറി.

### ഐ.ബി.എം. പി.സിയും അനുരൂപികളും

ഐ.ബി.എം. അവരുടെ വിഖ്യാതമായ ഐ.ബി.എം. പി.സി. രൂപകൽപ്പന ചെയ്യുമ്പോൾ ബേസിക് അതിൽ സ്വതേ ഉൾക്കൊള്ളിക്കുക എന്ന ഗാർഹിക കമ്പ്യൂട്ടറുകളിലെ നടപ്പുരീതി തന്നെ പിന്തുടർന്നു. ഇതിലുപയോഗിക്കാനുള്ള ബേസിക് ഇന്റർപ്രട്ടറിന് മൈക്രോസോഫ്റ്റിനെയാണ് അവർ സമീപിച്ചത്. ഐ.ബി.എം കാസറ്റ് ബേസിക് എന്നാണ് ഇതറിയപ്പെടുന്നത്. ഇതിനുപുറമേ എം.എസ്. ഡോസ്/പി.സി. ഡോസ് ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങൾക്കായി വേറെയും ബേസിക് ഇന്റർപ്രട്ടറുകൾ മൈക്രോസോഫ്റ്റ് വികസിപ്പിച്ചു. ഐ.ബി.എം. ഡിസ്ക് ബേസിക് (ബേസിക് ഡി), ഐ.ബി.എം. ബേസിക്ക (ബേസിക് എ), ജി.ഡബ്ല്യു. ബേസിക് (ബേസിക്കക്ക് സമാനമായ ഈ പതിപ്പിന് ഐ.ബി.എമ്മിന്റെ റോം ആവശ്യമില്ലായിരുന്നു), ക്വിക്ക് ബേസിക് തുടങ്ങിയവയെല്ലാം ഇക്കൂട്ടത്തിൽപ്പെടുന്നു. ഇവയെല്ലാം പി.സിയോടൊപ്പം തന്നെ വിതരണം ചെയ്യുകയായിരുന്നു പതിവ്. ഇവക്കെല്ലാം പുറമേ വിദഗ്ദ്ധപ്രോഗ്രാമർമാർക്കായി മൈക്രോസോഫ്റ്റ് ബേസിക് കമ്പൈലറും വികസിപ്പിച്ചിരുന്നു.

ടർബോ പാസ്കലിന്റെ നിർമ്മാതാക്കളായ ബോർലാൻഡ്, 1985-ൽ ടർബോ ബേസിക് 1.0 എന്ന കമ്പൈലർ പുറത്തിറക്കി (ഇതിന്റെ തുടർപതിപ്പുകൾ പവർബേസിക് എന്ന പേരിൽ ഇപ്പോഴും മാർക്കറ്റിലുണ്ട്). മൈക്രോസോഫ്റ്റിന്റെ വിൻഡോയിങ് അടിസ്ഥാനത്തിലുള്ള അമിഗാബേസിക് 1.1 പതിപ്പ്, 1985-86-ൽ പുറത്തിറക്കിയ പ്രീ-എംപ്റ്റിവ് മൾട്ടിടാസ്കിങ് ജി.യു.ഐ. അമിഗാ കമ്പ്യൂട്ടറുകളിൽ ഉൾപ്പെടുത്തിയിരുന്നു. എന്നാൽ അസാധാരണമായി, മൈക്രോസോഫ്റ്റിന്റെ അടയാളങ്ങളൊന്നും ഈ സോഫ്റ്റ്വെയറിൽ ഉണ്ടായിരുന്നില്ല.

ഈ വകഭേദങ്ങളിലൂടെ, ഗാർഹിക കമ്പ്യൂട്ടറിലെ ആദ്യകാല ബേസിക്കിൽ നിരവധി കൂട്ടിച്ചേർക്കലുകൾ വന്നുചേർന്നു. അക്ഷരക്കൂട്ടങ്ങളുടെ വർദ്ധിതകൈകാര്യശേഷി, ഗ്രാഫിക്സ് പിന്തുണ, ഫയൽ സിസ്റ്റത്തിലേക്കുള്ള പ്രവേശനശേഷി, കൂടുതൽ ഡാറ്റാടൈപ്പുകൾ തുടങ്ങിയവയൊക്കെ ഇതിൽപ്പെടുന്നു. ഇതിനെല്ലാമുപരി ഘടനാപരമായ പ്രോഗ്രാമിങ്ങിനുള്ള സൗകര്യങ്ങളും തദ്ദേശചരങ്ങൾ പിന്തുണക്കുന്ന സബ്റൂട്ടീനുകളും ഇക്കാലത്ത് വന്നുചേർന്ന സുപ്രധാനമായ മാറ്റങ്ങളാണ്.

1980-കളുടെ രണ്ടാം പകുതിയിൽ കമ്പ്യൂട്ടർ ഉപയോക്താക്കൾ സ്വന്തമായി പഠിച്ച് പ്രോഗ്രാമുകൾ എഴുതുന്നത് കുറയുകയും മറ്റുള്ളവർ എഴുതിയ ആപ്ലിക്കേഷനുകൾ ഉപയോഗിക്കുന്നത് വർദ്ധിക്കുകയും ചെയ്തു. ലളിതമായ ബേസിക്കിനു പകരം, വിദഗ്ദ്ധപ്രോഗ്രാമർമാർക്ക് അക്കാലത്ത് മികച്ച മറ്റു പ്രോഗ്രാമിങ് ഭാഷകൾ ലഭ്യമായിരുന്നു. ഈ രംഗത്തെ വിദഗ്ദ്ധരുടെ വിമർശനങ്ങളും ബേസിക്കിന്റെ പ്രചാരം മങ്ങാൻ കാരണമായി. "ബേസിക് ഒരിക്കൽ പഠിച്ചിട്ടുള്ള വിദ്യാർത്ഥികളെ നല്ല പ്രോഗ്രാമിങ് രീതികൾ അഭ്യസിപ്പിക്കുക എന്നത് പ്രായോഗികമായി അസാദ്ധ്യമാണ്: അതിലൂടെ കഴിവുള്ള പ്രോഗ്രാമർമാർ പിന്നൊരു ഉയർത്തെഴുന്നേൽപ്പിന് കഴിയാതെ മാനസികമായി മുരടിച്ചുപോകും" എന്ന ഡൈക്സ്ട്രയുടെ അഭിപ്രായം ശ്രദ്ധേയമാണ്.

### വിഷ്വൽ ബേസിക്

1991-ൽ മൈക്രോസോഫ്റ്റിന്റെ വിഷ്വൽ ബേസിക് (**വി.ബി.**) പുറത്തുവന്നതോടെ ബേസിക്കിന്റെ സമയം വീണ്ടും തെളിഞ്ഞു. പഴയ ബേസിക് വകഭേദങ്ങളും വി.ബിയും തമ്മിലുള്ള എടുത്തുപറയാവുന്ന ഒരേയൊരു സാമ്യം അവയുടെ പരിചിതമായ വ്യാകരണത്തിലായിരുന്നു (syntax). എന്നാൽ വ്യാകരണം ഒന്നുകൊണ്ടുമാത്രം ഈ ഭാഷയെ നിർവചിക്കാനാവുമായിരുന്നില്ല. ഡ്രാഗ് ഡ്രോപ്പ് രീതികൾ ഉപയോഗിച്ച് പൊതുവായി ഉപയോഗിക്കുന്ന ബട്ടണുകൾ, സ്ക്രോൾബാറുകൾ തുടങ്ങിയ അനേകം വിൻഡോ ഘടകങ്ങൾ സൃഷ്ടിക്കാനുള്ള സൗകര്യം ഈ ഭാഷയിലുണ്ടായിരുന്നു. ഭാഷയുടെ പരിണാമം എന്ന രീതിയിൽ നോക്കുകയാണെങ്കിൽ, ലൈൻനമ്പറുകൾ, `INPUT` കീവേഡ് തുടങ്ങിയ ആദ്യത്തെ ഡാർട്ട്മൗത്ത് ബേസിക്കിന്റെ ചില തനതുപ്രത്യേകതകൾ നിലനിർത്തിയിട്ടുമുണ്ടായിരുന്നു.  (ഫയലുകളിൽനിന്ന് വിവരങ്ങൾ വായിക്കുന്നതിന് `INPUT` എന്ന കീവേഡും ഉപയോക്താവിൽനിന്ന് വിവരങ്ങൾ നേരിട്ട് വാങ്ങുന്നതിന് `INPUTBOX` എന്ന കീവേഡും വിഷ്വൽബേസിക്കിൽ ഇപ്പോഴും ഉപയോഗിക്കുന്നുണ്ട്. വി.ബിയുടെ എല്ലാ പതിപ്പുകളിലും എന്നുവേണ്ട വി.ബി. ഡോട്ട്നെറ്റിൽപ്പോലും ലൈൻനമ്പറുകൾ, `SUB` പോലെയുള്ള കീവേഡുകൾക്കുമുമ്പൊഴികെ, വേണമെങ്കിൽ ഉപയോഗിക്കാവുന്നതാണ്)

വി.ബിയുടെ ആദ്യത്തെ സ്ഥിരതയാർന്ന പതിപ്പായി കണക്കാക്കപ്പെടുന്ന വി.ബി. 3-ന്റെ ആവിർഭാവത്തിനു ശേഷം, തുടക്കക്കാർക്കുള്ള ഭാഷ എന്ന രീതിയിൽ പുറത്തിറിങ്ങിയ ബേസിക് അതിനു വിപരീതമായി, മൈക്രോസോഫ്റ്റിലെത്തന്നെ പലരേയും അൽഭുതപ്പെടുത്തിക്കൊണ്ട് ചെറുകിട വാണിജ്യ സോഫ്റ്റ്‌വെയർ ആപ്ലിക്കേഷനുകളുടെ വികസനത്തിനായി വ്യാപകമായി ഉപയോഗിക്കാനാരംഭിച്ചു. (മൈക്രോസോഫ്റ്റ് തന്നെ ഹോബിയിസ്റ്റുകൾക്കുള്ള ഭാഷയായാണ് ആദ്യം ഇത് വിപണനം ചെയ്തത്.) നിരവധി വിദഗ്ദ്ധ പ്രോഗ്രാമർമാർ വി.ബിയുടെ ഉപയോഗത്തെ പരിഹസിച്ചെങ്കിലും സോഫ്റ്റവെയർ വികസനത്തിലെ ലാളിത്യത്തിന് പ്രോസസിങ് വേഗതയേക്കാൾ പ്രാധാന്യം നൽകിയിരുന്ന ചെറിയ വാണിജ്യസ്ഥാപനങ്ങളിൽ വി.ബി. അതിവേഗം പ്രചാരത്തിലായി. അക്കാലത്ത് വിൻഡോസ് 3.1-ൽ പ്രവർത്തിച്ചിരുന്ന കമ്പ്യൂട്ടറുകൾ വേഗതകുറഞ്ഞ ഒരു പ്രോഗ്രാമിങ് ഭാഷ ഉപയോഗിച്ചാൽക്കൂടിയും വളരെയധികം വിവരങ്ങൾ കൈകാര്യം ചെയ്യാനില്ലാത്തപക്ഷം  വാണിജ്യകാര്യങ്ങളുമായി ബന്ധപ്പെട്ട ക്രിയകൾ ഞൊടിയിടയിൽ ചെയ്തുതീർക്കാനുള്ള വേഗത കൈവരിച്ചിരുന്നു. നിരവധി ചെറുകിട കച്ചവടക്കാർക്ക് അവർക്കാവശ്യമുള്ള ഉപയോഗപ്രദമായ ചെറിയ ആപ്ലിക്കേഷനുകൾ കുറഞ്ഞ സമയംകൊണ്ട് നിർമ്മിക്കാമെന്നായി. അങ്ങനെ വിഷ്വൽബേസിക്കിലുള്ള അറിവ് ആളുകൾക്ക് തൊഴിൽസാധ്യതയും നേടിക്കൊടുത്തു.

മൈക്രോസോഫ്റ്റ് 1996-ൽ വി.ബി.സ്ക്രിപ്റ്റും 2001-ൽ വിഷ്വൽ ബേസിക് ഡോട്ട് നെറ്റും പുറത്തിറക്കി.

### അടുത്തിറങ്ങിയ പതിപ്പുകൾ
കഴിഞ്ഞ കുറച്ചുവർഷങ്ങളിലായും നിരവധി ബേസിക് വകഭേദങ്ങൾ പുറത്തുവന്നിട്ടുണ്ട്. സ്വതന്ത്രസോഫ്റ്റവെയറുകളായ ബൈവാട്ടർ ബേസിക്, ഗാംബാസ്, ഫ്രീബേസിക് വാണിജ്യാടിസ്ഥാനത്തിലുള്ള പ്യുവർ ബേസിക്, പവർ ബേസിക്, റിയൽബേസിക്, ട്രൂ ബേസിക്, മൈക്രോസോഫ്റ്റിന്റെ സ്മോൾ ബേസിക് എന്നിവയെല്ലാം ഇക്കൂട്ടത്തിൽപ്പെടുന്നു.

വെബ് അടിസ്ഥാനത്തിലുള്ള ലളിതമായ ബേസിക് ഇന്റർപ്രെട്ടറുകളും നിലവിലുണ്ട്. ക്വൈറ്റ് ബേസിക് അവയിലൊന്നാണ്.

### ഗൃഹാതുരത്വം
ബേസിക് പേഴ്സണൽ കമ്പ്യൂട്ടറുകളിൽ സർവവ്യാപിയായിരുന്നു എന്നതിനാൽ ഒരുകാലത്ത് പാഠപുസ്തകങ്ങളിൽ "ഇത് ബേസിക്കിൽ പരീക്ഷിക്കൂ" (Try it in BASIC) എന്ന തലക്കെട്ടിൽ കണക്കിനും മറ്റുമുള്ള പരിശീലനങ്ങൾ അടങ്ങിയിരുന്നു. ആനുകാലികങ്ങൾ ബേസിക്കിലെഴുതിയ പ്രോഗ്രാമുകളും പ്രസിദ്ധീകരിച്ചിരുന്നു.

2006-ൽ പ്രശസ്ത ശാസ്ത്ര-കെട്ടുകഥാ എഴുത്തുകാരനായ ഡേവിഡ് ബ്രിൻ, ബേസിക്കിന്റെ സർവ്വവ്യാപിത്വത്തന്റെ നഷ്ടത്തെക്കുറിച്ചും, കുട്ടികൾ പ്രോഗ്രാമിങ് മേഖലയിലേക്ക് കടന്നുവരാനായി ബേസിക് പോലെ വരിവരിയായി കോഡ് എഴുതി ചെയ്യാനുള്ള ലളിതമായ പ്രോഗ്രാമിങ് രീതിയുടെയും അതിനുവേണ്ട പ്രോൽസാഹനത്തിന്റേയും അഭാവത്തെക്കുറിച്ചും പരിഭവിക്കുന്നു.

## വ്യാകരണം
### സാമാന്യ ബേസിക് കീവേഡുകൾ

; ഡാറ്റാ കൈകാര്യം ചെയ്യൽ:
* LET: ഒരു ചരത്തിലേക്ക് ഒരു വില ആരോപിക്കുന്നു. ഈ വില ഒരു ക്രിയയുടെ (expression) ഫലവുമാകാം.
* DATA: ഒരുപറ്റം വിലകൾ ശേഖരിച്ചുവക്കുന്നു. പ്രോഗ്രാമിനകത്തെ READ എന്ന നിർദ്ദേശം ഒരോ വിലയേയും ഒന്നിനു പുറകേ ഒന്നായി സ്വീകരിക്കും.

; പ്രോഗ്രാം ഗതിനിയന്ത്രണം:
* IF ... THEN ... ELSE: താരതമ്യം ചെയ്യാനും അതിനനുസരിച്ച് തീരുമാനമെടുക്കാനും.
* FOR ... TO ... {STEP} ... NEXT: പ്രോഗ്രാമിന്റെ ഒരു ഭാഗം നിശ്ചിതതവണ തുടച്ചയായി പ്രവർത്തിപ്പിക്കാൻ. പ്രവർത്തനത്തിന്റെ എണ്ണം കണക്കാക്കാനും നിയന്ത്രിക്കാനുമുള്ള ഒരു ചരം (counter variable) ഈ ലൂപ്പിനകത്ത് ലഭ്യമാണ്.
* WHILE ... WEND ഉം REPEAT ... UNTIL ഉം: ഒരു പ്രോഗ്രാമിനകത്തെ ഒരു ചരത്തിന്റെയോ മറ്റോ അവസ്ഥ നിർദ്ദിഷ്ഠനിലയിലായിരിക്കുന്നിടത്തോളം പ്രോഗ്രാമിലെ ഒരു ഭാഗം തുടർച്ചയായി പ്രവർത്തിക്കുന്നതിന്. ലൂപ്പിന്റെ ഓരോ പ്രവർത്തനത്തിനു മുൻപായോ (WHILE ... WEND ഉപയോഗിക്കുമ്പോൾ) പ്രവർത്തനത്തിനു ശേഷമോ (REPEAT ... UNTIL ഉപയോഗിക്കുമ്പോൾ) മേൽപ്പറഞ്ഞ അവസ്ഥ പരിശോധിക്കുകയും ലൂപ്പ് തുടർന്ന് പ്രവർത്തിപ്പിക്കണോ എന്ന് തീരുമാനിക്കുകയും ചെയ്യും.
* DO ... LOOP {WHILE} അല്ലെങ്കിൽ {UNTIL}: പ്രോഗ്രാമിന്റെ ഒരു ഭാഗം അനന്തമായി പ്രവർത്തിക്കുക അല്ലെങ്കിൽ മേൽപ്പറഞ്ഞ രീതിയിൽ ഒരു അവസ്ഥ തുലനം ചെയ്ത് തുടർച്ചയായി പ്രവർത്തിക്കുക.
* GOTO: പ്രോഗ്രാമിലെ ഒരു പ്രത്യേക ക്രമസംഖ്യയിലുള്ളതോ ഒരു ലേബൽ ഉള്ളതോ ആയ വരിയിലേക്ക് പ്രവർത്തനം മാറ്റുക (ചാടുക).
* GOSUB: പ്രത്യേക ക്രമസംഖ്യയുള്ളതോ ലേബൽ ഉള്ളതോ ആയ വരിയിലേക്ക് താൽക്കാലികമായി പ്രവർത്തനം മാറ്റുകയും RETURN എന്ന നിർദ്ദേശം കാണുന്ന മാത്രയിൽ ചാട്ടം തുടങ്ങിയ വരിക്ക് (GOSUB) തൊട്ടുതാഴത്തെ വരിയിലേക്ക് തിരിച്ചെത്തുകയും ചെയ്യുക. സബ്റൂട്ടീനുകൾ സാക്ഷാത്കരിക്കുന്നതിനാണ് ഈ കീവേഡ് ഉപയോഗിക്കുന്നത്.
* ON ... GOTO/GOSUB: മുകളിൽപ്പറഞ്ഞിരിക്കുന്ന ചാട്ടങ്ങൾ ഒരു ചരത്തിന്റെ വിലക്കോ അവസ്ഥക്കോ അനുസരിച്ച് നടപ്പാക്കുക. മറ്റു രൂപങ്ങൾക്ക് സ്വിച്ച് സ്റ്റേറ്റ്മെന്റ് കാണുക.

; ഇൻപുട്ടും ഔട്ട്പുട്ടും:
* PRINT: സ്ക്രീനിലോ മറ്റേതെങ്കിലും ഔട്ട്പുട്ട് ഉപകരണത്തിലോ ഒരു സന്ദേശം പ്രദർശിപ്പിക്കുന്നു.
* INPUT: ഉപയോക്താവിനോട് ഒരു വില നൽകാൻ ആവശ്യപ്പെടുകയും ഈ വില ഒരു ചരത്തിലേക്ക് ആരോപിക്കുകയും ചെയ്യുന്നു. വില നൽകുന്നതിന് മുന്നോടിയായി ഒരു സന്ദേശം ഉപയോക്താവിന് നൽകാനുള്ള സൗകര്യവും ഇതിലുണ്ട്.
* TAB അല്ലെങ്കിൽ AT: സ്ക്രിനിലോ പ്രിന്ററിലോ അടുത്ത അക്ഷരം എവിടെ പതിക്കണം എന്ന് നിർദ്ദേശിക്കുന്നു.

; പലവക:
* REM: പ്രോഗ്രാമറുടെ അഭിപ്രായങ്ങൾ രേഖപ്പെടുത്തുന്നതിന്. പ്രോഗ്രാമിന്റെ തലക്കെട്ട്, ഉപയോഗം തുടങ്ങിയവ വിശദീകരിക്കാനും പ്രോഗ്രാമിലെ വിവിധ ഭാഗങ്ങളുടെ ഉപയോഗത്തെക്കുറിച്ച് വിശദീകരിക്കാനും ഉപയോഗിക്കുന്നു.
### ഡാറ്റാടൈപ്പുകളും ചരങ്ങളും
ബേസിക്കിന്റെ ലളിതമായ പതിപ്പുകൾക്ക് എണ്ണൽസംഖ്യാചരങ്ങൾ (ഇന്റിജർ വേര്യബിൾ) മാത്രമേയുള്ളു. ഒറ്റ അക്ഷരമുള്ള പേരുകളായരിക്കണം ഇവക്കുനൽകേണ്ടതും. കൂടുതൽ ശക്തിമത്തായ ബേസിക് പതിപ്പുകളിൽ ദശാംശക്രിയകൾ പിന്തുണക്കുകയും ചരങ്ങളുടെ പേരുകൾക്ക് ആറോ അതിലധികമോ അക്ഷരങ്ങളടങ്ങുന്ന പേരുകൾ നൽകാനുള്ള സൗകര്യവും നൽകുന്നു.

ചരങ്ങളുടെ പേരിനവസാനം $ എന്ന ചിഹ്നം ചേർത്താണ് അക്ഷരക്കൂട്ടങ്ങൾക്കായുള്ള (string) ചരങ്ങളെ മൈക്രോകമ്പ്യൂട്ടറുകൾക്കുള്ള മിക്ക ബേസിക് വകഭേദങ്ങളും വേർതിരിച്ചിരുന്നത്. ഈ ചരങ്ങളിലേക്കുള്ള വില സാധാരണയായി രണ്ട് ഉദ്ധരണീചിഹ്നങ്ങൾക്കിടയിലായാണ് (quotes) നൽകുക.

ഇന്റിജർ, ഫ്ലോട്ടിങ് പോയിന്റ്, സ്ട്രിങ് ചരങ്ങളുടെ നിരകളും (arrays) ബേസികിലുണ്ടാക്കാം.

ബേസിക്കിന്റെ ചില വകഭേദങ്ങൾ മാട്രിക്രുകളെയും മാട്രിക്സ് ക്രിയകളേയും പിന്തുണച്ചിരുന്നു മാട്രിക്സുകൾക്കുള്ള ഡാറ്റാടൈപ്പും ഉണ്ടായിരുന്നു. മാട്രിക്സുകൾക്കകത്തേക്ക് വിലകൾ ചേർക്കുക, സാധ്യമായ മാട്രിക്സുകൾ തമ്മിലുള്ള സങ്കലനം, ഗുണനം, ഡിറ്റർമിനന്റ് (സാരണികം) കണ്ടെത്തൽ തുടങ്ങിയ ക്രിയകൾ ഈ വകഭേദങ്ങളിൽ സാധ്യമായിരുന്നു. എന്നാൽ മൈക്രോകമ്പ്യൂട്ടറുകൾക്കായുള്ള ഇന്റർപ്രട്ടർ വകഭേദങ്ങളിൽ ഈ ഡാറ്റാടൈപ്പുണ്ടായിരുന്നില്ല. ഇവയിൽ അരേ (array) ഉപയോഗിച്ച് മാട്രിക്സുകൾ നിർവചിക്കുകയും സബ്റൂട്ടീനുകൾ ഉപയോഗിച്ച് ക്രിയകൾ നടത്തുകയും വേണമായിരുന്നു.

### ഉദാഹരണങ്ങൾ
ആദ്യത്തെ ഡാർട്ട്മൗത്ത് ബേസിക്കിന് (പതിപ്പ് 3 മുതൽ), അസാധാരണമായി, MAT എന്ന ഒരു മാട്രിക്സ് കീവേഡ് ഉണ്ടായിരുന്നു. ഈ കീവേഡ് പിൽക്കാലത്തെ മിക്ക മൈക്രോകമ്പ്യൂട്ടർ ബേസിക് വകഭേദങ്ങളും ഉപേക്ഷിച്ചെങ്കിലും 1968-ലെ മാന്വലിൽനിന്നെടുത്ത താഴെക്കാണുന്ന ഉദാഹരണത്തിൽ ഇൻപുട്ട്സംഖ്യകൾ സ്വീകരിച്ച് ശേഖരിക്കാനായി ഈ കീവേഡ് ഉപയോഗിക്കുന്നുണ്ട്. സ്വീകരിക്കുന്ന സംഖ്യകളുടെ ശരാശരി കണ്ടുപിടിക്കാനുള്ള പ്രോഗ്രാമാണ് താഴെക്കാണുന്നത്:


```qbasic
5 LET S = 0
10 MAT INPUT V
20 LET N = NUM
30 IF N = 0 THEN 99
40 FOR I = 1 TO N
45 LET S = S + V(I)
50 NEXT I
60 PRINT S/N
70 GO TO 5
99 END
```


ഹോം കമ്പ്യുട്ടറുകളിലെ പുതിയ ബേസിക് പ്രോഗ്രാമർമാർ, കെർണിങ്ഹാനും റിച്ചിയും ചേർന്ന് പ്രശസ്തമാക്കിയ, ഹലോ വേൾഡ് പോലെയുള്ള ലളിതമായ പ്രോഗ്രാമുകളാണ് തുടക്കത്തിൽ ചെയ്യുന്നത്.


```qbasic
10 PRINT "Hello, World!"
140 END
```


ബേസികിന്റെ PRINT നിർദ്ദേശമുപയോഗിച്ച് ഒരു സന്ദേശം സ്ക്രീനിൽ വരുത്തുക എന്നതാണ് ഇത്തരം പ്രോഗ്രാമുകളുടെ ഉദ്ദേശ്യം. പലപ്പോഴും ഒരു അനന്ത ലൂപ്പ് ഉപയോഗിച്ച് സ്ക്രീനിൽ മുഴുവനായും ഒരു സന്ദേശം നിറക്കാനുള്ള പ്രോഗ്രാമുകളും തുടക്കക്കാർ ചെയ്തുകാണുന്നു.

എം.എസ്.എക്സ്. ബേസിക്, ജി.ഡബ്ല്യു. ബേസിക് മിക്ക ഒന്നാംതലമുറയിലെ ബേസിക് ഇന്റർപ്രട്ടറുകളും ലളിതമായ ഡാറ്റാടൈപ്പുകളും, ലൂപ്പുകളും അരേകളും പിന്തുണച്ചിരുന്നു. താഴെക്കാണുന്ന ഉദാഹരണം ജി.ഡബ്ല്യു. ബേസിക്കിനുവേണ്ടി എഴുതിയിരിക്കുന്നതാണെങ്കിലും ചെറിയ മാറ്റങ്ങൾ വരുത്തി മിക്ക ബേസിക് വകഭേദങ്ങളിലും പ്രവർത്തിക്കും.


```qbasic
10 INPUT "What is your name: ", U$
20 PRINT "Hello "; U$
30 INPUT "How many stars do you want: ", N
40 S$ = ""
50 FOR I = 1 TO N
60 S$ = S$ + "*"
70 NEXT I
80 PRINT S$
90 INPUT "Do you want more stars? ", A$
100 IF LEN(A$) = 0 THEN GOTO 90
110 A$ = LEFT$(A$, 1)
120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30
130 PRINT "Goodbye "; U$
140 END
```

ഈ പ്രോഗ്രാമിന്റെ പ്രവർത്തനഫലം താഴെക്കാണുന്നരീതിലാണ്:

 What is your name: Kuttan
 Hello Kuttan
 How many stars do you want: 7
 *******
 Do you want more stars? yes
 How many stars do you want: 3
 ***
 Do you want more stars? no
 Goodbye Kuttan

രണ്ടാംതലമുറ ബേസിക്കുകളിൽ (ഉദാഹരണങ്ങൾ: ക്വിക്ക്ബേസിക്, പവർബേസിക്) നിരവധി പ്രത്യേകതകൾ കൂട്ടിച്ചേർക്കപ്പെട്ടു. പ്രധാനമായും ഘടനാപരമായതും (structured) പ്രോസീജർ അടിസ്ഥാനപ്പെടുത്തിയതുമായ (procedure-oriented) പ്രോഗ്രാമിങ്ങിനുള്ള ഘടകങ്ങളായിരുന്നു ഇവ. ബേസിക്കിന്റെ തുടക്കം മുതലേയുള്ള പ്രത്യേകതയായ വരികൾക്ക് ക്രമസംഖ്യയിടുക എന്ന രീതി ഉപേക്ഷിക്കുകയും (ക്രമസംഖ്യ വേണമെങ്കിൽ ഉപയോഗിക്കാം) പകരം ലേബലുകൾ (GOTO നിർദ്ദേശത്തിനു വേണ്ടി) ഉപയോഗിക്കുകയും ചെയ്തു. പ്രോസീജ്യറുകളുടെ അഥവാ സബ്റൂട്ടീനുകളുടെ ഉപയോഗം കൊണ്ടുവരുകയും, ഈ മാറ്റങ്ങളിലൂടെ പ്രോഗ്രാമുകൾക്ക് കൂടുതൽ ലളിതവും വഴക്കമുള്ളതുമായ രൂപം കൈവരുകയും ചെയ്തു.


```qbasic
INPUT "What is your name: ", UserName$
PRINT "Hello "; UserName$
DO
  INPUT "How many stars do you want: ", NumStars
  Stars$ = STRING$(NumStars, "*")
  PRINT Stars$
  DO
    INPUT "Do you want more stars? ", Answer$
  LOOP UNTIL Answer$ <> ""
  Answer$ = LEFT$(Answer$, 1)
LOOP WHILE UCASE$(Answer$) = "Y"
PRINT "Goodbye "; UserName$
```


വിഷ്വൽ ബേസിക്, റിയൽബേസിക്, സ്റ്റാർഓഫീസ് ബേസിക്, ബ്ലിറ്റ്സ്‌മാക്സ് എന്നിവപോലുള്ള മൂന്നാംതലമുറ ബേസിക് വകഭേദങ്ങളിൽ [ഓബ്ജക്റ്റ് ഓറിയെന്റഡ്, [Event-driven programming|ഇവന്റ്-ഡ്രിവൺ പ്രോഗ്രാമിങ്ങിനുള്ള പിന്തുണ നൽകി. ഇവിടെ പ്രൊസീജ്യറുകളും ഫങ്ഷനുകളും ഏതെങ്കിലും ഓബ്ജക്റ്റിന്റെ മെത്തേഡ് ആയാണ് പ്രതിനിധീകരിക്കപ്പെടുന്നത്. (ഉദാഹരണത്തിന് സ്ക്രീനിൽ കാണുന്ന ഒരു ബട്ടൺ ഓബ്ജക്റ്റിന്റെ ക്ലിക്ക് എന്ന മെത്തേഡ്, ബട്ടണിൽ ക്ലിക്ക് ചെയ്യുമ്പോൾ പ്രവർത്തിക്കുന്നു.)

താഴെക്കാണുന്നത് വിഷ്വൽബേസിക് ഡോട്ട് നെറ്റിലുള്ള ഉദാഹരണമാണ്:


```vbnet
Public Class StarsProgram
    Public Shared Sub Main()
        Dim UserName, Answer, stars As String, NumStars As Integer
        Console.Write("What is your name: ")
        UserName = Console.ReadLine()
        Console.WriteLine("Hello {0}", UserName)
        Do
            Console.Write("How many stars do you want: ")
            NumStars = CInt(Console.ReadLine())
            stars = New String("*", NumStars)
            Console.WriteLine(stars)
            Do
                Console.Write("Do you want more stars? ")
                Answer = Console.ReadLine()
            Loop Until Answer <> ""
            Answer = Answer.Substring(0, 1)
        Loop While Answer.ToUpper() = "Y"
        Console.WriteLine("Goodbye {0}", UserName)
    End Sub
End Class
```

## മാനകങ്ങൾ

* മിനിമൽ ബേസിക്കിനുള്ള ആൻസി/ഐ.എസ്.ഒ./ഐ.ഇ.സി. മാനകങ്ങൾ:
** ആൻസി എക്സ്3.60-1978 "മിനിമൽ ബേസിക്കിനുള്ളത്"
** ഐ.എസ്.ഒ./ഐ.ഇ.സി. 6373:1984 "ഡാറ്റാപ്രോസസിങ്&nbsp;— പ്രോഗ്രാമിങ് ഭാഷകൾ&nbsp;— മിനിമൽ ബേസിക്"
* ഫുൾ ബേസിക്കിനുള്ള ആൻസി/ഐ.എസ്.ഒ./ഐ.ഇ.സി. മാനകങ്ങൾ:
** ആൻസി എക്സ്3.113-1987 "പ്രോഗ്രാമിങ് ഭാഷകൾ ഫുൾ ബേസിക്"
** ഐ.എൻ.സി.ഐ.ടി.എസ്./ഐ.എസ്.ഒ/ഐ.ഇ.സി. 10279-1991 (R2005) "വിവരസാങ്കേതികവിദ്യ - പ്രോഗ്രാമിങ് ഭാഷകൾ - ഫുൾ ബേസിക്"
* ആൻസി/ഐ.എസ്.ഒ./ഐ.ഇ.സി. അനുബന്ധ നിർവചനരേഖകൾ:
** ആൻസി എക്സ്3.113 ഇന്റർപ്രെട്ടേഷൻസ്-1992 "ബേസിക് ടെക്നിക്കൽ ഇൻഫമേഷൻ ബുള്ളറ്റിൻ # 1 ഇന്റർപ്രെട്ടേഷൻസ് ഓഫ് ആൻസി 03.113-1987"
** ഐ.എസ്.ഒ./ഐ.ഇ.സി. 10279:1991/ അനുബന്ധം 1:1994 "മൊഡ്യൂൾസ് ആൻഡ് സിംഗിൾ ക്യാരക്റ്റർ ഇൻപുട്ട് എൻഹാൻസ്മെന്റ്"
* എക്മ-116 ബേസിക് *(ആൻസി എക്സ്3.113-1987 പോലെത്തന്നെ പിൻവലിച്ചു)*

## കുറിപ്പുകൾ
*
*

## അവലംബം

വിഭാഗം:പ്രോഗ്രാമിങ് ഭാഷകൾ
വർഗ്ഗം:ബേസിക് പ്രോഗ്രാമിങ് ഭാഷാ കുടുംബം