در برنامه نویسی کامپیوتر، بیسیک (به انگلیسی: BASIC، سرنام Beginners All-Purpose Symbolic Instruction) یکی از زبانهای برنامهنویسی سطح بالاست. اولین بار بیسیک در سال 1964 توسط جان جورج کمنی (به انگلیسی: John George Kemeny) و توماس یوجین کرتز (به انگلیسی: Thomas Eugene Kurtz) در دانشگاه دارتموث در نیوهمپشر امریکا، به منظور دسترسی دانشجویان به کامپیوتر طراحی شد. در آن زمان استفاده از کامپیوترها نیاز به نوشتن تکهبرنامههایی داشت که تنها دانشمندان و ریاضیدانان میتوانستند آنها را بنویسند. بیسیک وانواع مختلف آن تا دههٔ 1970 و 1980، به طور گسترده در میکروکامپیوترها گسترش یافت و تا امروز نیز پر طرفدار باقی مانده و بعنوان نسخهٔ خاصی از یک زبان کامپیوتر مفید و اصلاح شده و زبانهای جدیدی مانند مایکروسافت ویژوال بیسیک بر مبنای بیسیک ساخته شدهاند. تا سال 2006، 59 درصد برنامه نویسان محیط داتنت از ویژوال بیسیک به عنوان تنها زبان خود استفاده میکردند.
پیش زمینهتا قبل از اواسط دهه 1960، کامپیوترها بسیار گران بودند و فقط برای وظایفی که هدف خاصی را داشتند مورد استفاده قرار میگرفتند. یک دسته پردازشهای مرتب ساده، هر کدام بعنوان یک کار در هر لحظه یکی پس از دیگری اجرا میشدند. اما در دهه 1960، کامپیوترهای سریعتر و تواناتر با قدرت پردازشی بیشتر ساخته شدند، کامپیوترها میتوانستند لحظاتی بدون کار باشند، بدون فعالیتی برای اجرا کردن.
زبانهای برنامهنویسی مانند ماشینهایی که آنها را اجرا میکردتد باید طوری طراحی میشدند که برای اهداف مشخصی مانند محاسبهٔ فرمول علمی یا پردازش دادههای تجاری یا مثلا ویرایش یک متن مفید باشند. از آنجایی که حتی کامپوترهای جدید و ارزانتر هنوز به سرمایه زیادی احتیاج داشت، تمایل شدیدی برای در نظر گرفتن کارایی به عنوان مهمترین ویژگی زبان وجود داشت. بطور کلی استفاده از این زبانهای تخصصی شده مشکل بود و سینتکسهای مختلف زیادی برای آنها وجود داشت.
هنگامی که کامپیوترها قیمتشان کاهش یافت، این امکان به وجود امد که دسترسی به کامپیوتر از انحصار ازمایشگاههای تحقیقاتی خارج شود و وارد استفاده تجاری شود. کامپیوترهای جدید از سیستم اشتراک زمانی پشتیبانی میکنند که این امکان را برای چند پردازش یا کاربر فراهم میکند که بطور همزمان از پردازنده و حافظه استفاده کنند. در چنین سیستمهایی، سیستمعامل بین پردازشهای در حال اجرا بطور متناوب به هر کدام از آنها زمانی برای اجرا بر روی پردازنده میدهد، قبل از این که بر روی فعالیت دیگری برود. ماشینها به حدی سریع شدند که بیشتر کاربران میتوانستند احساس کنند که تمام ماشین در خدمت آنهاست. اشتراک زمانی هزینهٔ محاسبات را بطور فاحشی کاهش داد. یک ماشین میتوانست بین حتی صدها کاربر به اشتراک گذاشته شود.
سالهای نخست: دوره مینی کامپیوترهابیسیک اولیه در سال 1963 توسط John George Kemeny و Thomas Eugene Kurtz طراحی شد و و توسط یک تیم از دانشجویان Dartmouth و زیر نظر آنها پیادهسازی شد. در این طراحی سعی شده بود که موضوعات پیچیدهٔ زبانهای قدیمی با یک زبان جدید برای رده جدیدی از کاربران که سییتمهای اشتراک زمانی اجازه میداد که دارای اطلاعات تکنیکی کمتر و دارای پیشزمینه ریاضی ضعیفتری از کاربران قدیمیتر بودند استفاده شود. امکان استفاده از کامپیوتر در آموزش و تحقیق در آن زمان یک چیز کاملا جدید بود.در سالهای بعدی که نسخههای جدیدی از بیسیک ساخته شد، بیسیک اولیه که توسط John George Kemeny و Thomas Eugene Kurtz ساخته شد، تحت عنوان بیسیک Dartmouth شناخته شد.
هشت اصل در طراحی بیسیک عبارتند ازاستفاده آن برای مبتدیان آسان باشد.
یک زبان برنامه نویسی با اهداف عمومی باشد.
امکان اضافه شدن ویژگیهای پیشرفته برای متخصصین را بدهد (در حالی که سادگی زبان برای مبتدیان حفظ شود).
تعاملی باشد.
پیغامهای خطای واضح داشته باشد.
برای برنامههای کوچک، سریع پاسخ دهد.
نیازی به اشنایی و دانستن سختافزار نباشد.
از کاربر در برابر سیستمعامل حفاظت کند.
بخشی از این زبان بر مبنای فرترن 2 و بخشی از آن بر مبنای الگول 60 بود به اضافه این مزیت که آنرا برای اشتراک زمانی مناسب میکرد. (ویژگی اشتراک زمانی از دیگر زبانها مانند JOSS و CORC و به میزان کمتری از زبان LISP، نیز در نظر گرفته شد.) این زبان از آزمایشهای آموزش زبان دیگر در Dartmouth مانند DARSIMCO 1956 و DOPE (پیاده سازی شده در سال 1962 SAP و (1963) DART که ساده شده فرترن 2 بود پیشی گرفت. نخستین بار بیسیک بر روی کارهای سر راست ریاضی تمرکز داده شد، با پشتیبانی محاسبه ماتریس ازپیاده سازی اولیه آن بعنوان یک زبان دسته ای و امکانات کامل کار با رشته به آن در سال 1965 اضافه شد. در سال 1965 بیسیک نخستین بار بر روی GE-265 mainframe که دارای چند ترمینال بود به کار گرفته شد. بر خلاف باور عمومی، بیسیک در زمان معرفی یک زبان کامپایل شده بود. بیسیک همچنین درغلبه بر FORTAN || و ALGOL 60 در محاسبه 265 محسبه ریاضی کاملا موثر بود.
طراحان زبان تصمیم گرفتند برای اینکه زبان گسترده شود، کامپایلرهای رایگان برای آن تهیه کنند. آنها همچنین آن را در دبیرستانهای ناحیه Dartmouth فراهم کردند و همچنین میزان قایل ملاحظهای تلاش درجهت ارتقاء این زبان کردند. و در نتیجه دانش بیسیک بصورت نسبی همه جا گسترش یافت (به عنوان یک زبان برنامه نویسی) و بیسیک توسط تعدادی از سازندگان پیاده سازی شد، و روی مینی کامپیوترهای جدید مانند سری های DEC PDP و Data General Nov عمومی شد. همچنین زبان بیسیک بر روی سیستمهای اشتراک زمانی HP در اواخر دهه 1960و اوایل دهه 1970 گسترش یافت. در این نمونهها، زبان تمایل داشت به جای کامپایلربا مفسر اجرا شود.
چند سال پس از انتشارآن، افراد حرفهای در کامپیوتر، به ویژه Edsger W. Dijkstra، اظهار کردند که استفاده از دستور GOTO، که در بسیاری از زبانهای برنامه نویسی مانند بیسیک وجود دارد، روشهای برنامه نویسی ضعیف را ترفیع میدهد. برخی از بیسیک انتقاد کردند که خیلی کند است (بیشتر نسخه های دارای مفسر از دارای کامپایلر کندتر هستند) یا این انتقاد را کردند که بیسیک خیلی ساده است (بسیاری ازنسخه ها به ویژه برای کامپیوترهای کوچک، ویژگیها و قابلیتهای مهم را رها کردند).
رشد خیره کننده: دوره کامپیوترهای خانگیبا اینکه زبانها بر روی مینی کامپیوترها ی زیادی استفاده میشوند ولی این معرفی مینی کامپیوتر MITS Altair 8800 "kit" در سال 1975 راه جهانی شدن را به روی بیسیک گشود. بیشتر زبانهای برنامه نویسی به فضای حافظه بیشتری نسبت به آنچه بر روی کامپیوترهای کوچکی که بیشتر کاربران استطاعت خرید آن را داشتند، نیاز داشتند. همچنین میکروکامپییوترهای اولیه دارای دسترسی کند به حافظه که از نوارهای صدا فراهم میشد و نیز فقدان ویرایشگر مناسب متن بودند. یک زبان مانند بیسیک با که با وجود این محدودیتها کار میکرد.
بیسیک همچنین دارای این مزیت بود که در بین طراحان جوان و علاقمندان در زمینه کامپیوتر که عموما در صنایع الکترونیکی آن روزگار کار میکردند بصورت نسبتا خوبی شناخته شده بود. ابتکار Kemeny and Kurtz's به اندازه درخور مورد توجه قرار گرفت که تعدادی از مجلات کامپیوتر در آن زمان، مطالبی در بارهٔ زبان نوشتند یا بر روی مقایسه یک نسخه با دیگر نسخهها تمرکز کردند.
یکی از اولین نسخه هایی که برای ماشین 8080 مانند Altair به وجود آمد Tiny BASIC بود. یک اجرای ساده از بیسیک که در اصل توسط Dr. Li-Chen Wang نوشته شده بود و سپس به Altair برده شد توسط Dennis Allison به درخواست Bob Albrecht (که قبلا مجلهٔ Dr. Dobb's را تاسیس کرده بود). طراحی و تمام کد منبع آن در سال 1976 در DJJ منتشر شد.
در سال 1975، MITS نسخه Altair BASIC را که توسط دانشجوی ترک تحصیل کرده، Bill Gates و Paul Allen به عنوان شرکت Micro-Soft (که بعدها شرکت عظیم مایکروسافت نام گرفت) منتشر کرد. نخستین نسخه از Altair توسط Gates، Allen و Monte Davidoff نوشته شد. نسخههای مایکروسافت بیسیک که بعدا بعنوان M BASIC یا MBASIC شناخته شدند، به زودی با کامپیوترهای بر مبنای فلاپی دیسک که در فعالیتهای کوچک تجاری استفاده میشد رایج شد. چون محبوبیت بیسیک در CP/M گسترش یافت، طراحان کامپیوترهای جدید نیز نسخه خودشان از زبان معرفی کردند و یا Micro-Soft نسخه خود را به محیط آنها برد.
هنگامی که سه کامپیوتر اصلی جدید در مجلهٔ Byte که قبلا 1977 Trinity نامیده میشد معرفی شدند، هر سه آنها بیسیک را بعنوان زبان اصلی و محیط عملکردی دارا بودند. Commodore PET لیسانس یک نسخه از مایکروسافت بیسیک را که به MOS 6502 برده شده بود را بدست آورد. و Apple II و TRS-80 هر دو نسخههای جدیدی از زبان را معرفی کردند که خیلی شبیه به هم بودند. همان طور که کمپانیهای جدید وارد عرصه میشدند، نسخههای جدیدی اضافه میشدند که به دقت خانواده بیسیک را تغییر میدادند. خانواده Atari 8-bit نسخه Atari BASIC خود را داشت که برای کارتریج 8 kB ROM مناسب شده بود. بی بی سی، BBC BASIC را منتشر کرد که توسط Acorn Computers Ltd برای آنها ساخته شده بود که دارای کلمات ساختاری زیادی بود. بیشتر کامپیوترهای خانگی دهه 1980 یک ROM مفسر بیسیک داشتند، که به ماشین اجازه میداد مستقیما در بیسیک بوت شود. بیسیک بیش از هر زبان دیگری دارای گونه های مختلف است.
در طول این دوره رشد برای بیسیک، مجلات بسیاری منتشر شدند مانند مجله یCreative Computing که شامل کد منبع کامل بازیها و نرم افزارهای سودمند بود. این کار سادهای بود که کدها را از مجله نوشته شوند و اجرا شود. مجلات مختلفی منتشر میشدند که برنامهها را برای کامپیوترهای بخصوصی نشان میدادند گرچه بعضی از برنامههای بیسیک جهانی بودند و میتوانستند بر روی هر ماشین استفاده کننده از بیسیک، اجرا شوند. یک راه منطقی دیگر ایده به کتاب درآوردن این کد منبع ها بود که به طور مثال میتوان به سری کتابهای بازیهای کامپیوتری David Ahl اشاره نمود.
بلوغ: دوره کامپیوترهای شخصیسال 1979 میکروسافت با IBM برای ساختن یک نسخه بیسیک به نام BASIC C که در BIOS این کامپیوترها قرار میگرفت در مذاکره بود. مایکروسافت نسخه های زیادی از بیسیک را برای MS-DOS/PC-DOS فروخت که شامل BASIC D، BASIC A، BASICA، GW-BASIC (یک نسخه سازگار با BASIC A که احتیاج به رم IBMنداشت)، QBASIC می شد. توربو پاسکال، منتشر کننده بورلند، توربو بیسیک 1.0 را در سال 1985 منتشر کرد. نسخههای بعدی با نام نویسنده اصلی آن تحت نام POWERBASIC تا امروز عرضه میشوند. ماکروسافت نسخه ای از بیسیک را که در محیط گرافیکی بود با نام AmigaBABSIC منتشر نمود (اواخر سال 1985 و اوایل سال 1986)، اگرچه این محصول دارای نشان ماکروسافت نبود.
این زبانها الحاقات زیادی را به کامپیوترهای خانگی بیسیک اضافه نمودند. مانند: بهبود کاربا رشته ها و پشتیبانی گرافیکی و دسترسی به سیستم فایل و نوع داده های اضافی. مهمتر از همه امکانات برنامه نویسی ساخت یافته بود. از جمله ساختارهای کنترلی و رویه ها که از متغیرهای محلی پشتیبانی میکردند.
به هر حال اواخر دهه 1980 کامپیوترهای جدید با توانایی بیشتر و ابتکارات نو در همین زمان کامپیوترها ترقی کردند از سرگرمی مورد علاقه به یک وسیله که عمدتا برای فعالییت هایی که توسط دیگران نوشته میشد، استفاده میشدند. برنامه نویسی اهمییت کمتری برای بیشتر کاربران پیدا کرد. بیسیک شروع به پس رفتن در اهمیت کرد، اما نسخه های بیشماری از آن باقی ماند. بیسیک کامپایل شده با CBASIC هنوز در سیستمعامل IBM 4690 استفاده می شود.
شانس بیسیک یک بار دیگر با معرفی ویژوال بیسیک که توسط مایکروسافت عرضه شد باقی ماند.سخت است که این زبان را بیسیک در نظر بگیریم چون زبان تبدیل به یک زبان شی گرا و رویدادی شده بود. تنها چیز مهمی که شبیه به بیسیک قدیمی بود، سینتکس آن بود. سینتک به خودی خود زمان را به طور کامل تعریف نمی کند، از آنجایی که بیشتر برنامه نویسان برای استفاده از اشایی مانند button و یا scrollbar از تکنیک drag and drop استفاده میکنند و مستقیما درگیر تمام کد نمی شوند، در حالی که این میتوانست بعنوان یک تحول برای زبان در نظر گرفته شود، بعضی از ویژگیهای ممتاز Dartmouth BASIC مانند شمارههای خط و کلمه کلیدی INPUT باقی ماند (گرچه هنوز هم ویژوال بیسیک از INPUT برای خواندن اطلاعات از فایل استفاده میکند و کلمه کلیدی INPUTBOX برای ورودی مستقیم از کاربرموجود است. line numbers نیز میتواند بصورت اختیاری د رتمام نسخههای VB مورد استفاده قرار گیرد حتی VB.NET. گرچه آنها نمیتوانند در بعضی مکان های خاص مورد استفاده قرار گیرند مانند قبل از SUB).
ایراد گرفته شده از بیسیک به این عنوان که بیسیک زبانی ابتدایی است و ظاهرا باعث تعجب بسیار زیادی شد که مایکروسافت هنوز ویژوال بیسیک را بعنوان یک زبان برای علاقه مندان میداند، این زبان به طور وسیعی برای فعالیت های تجاری کوچک به مدت کوتاهی پس از عرضه شدن نسخهٔ 3 از VB مورد استفاده قرار گرفت. که عموما به عنوان نخستین نسخهٔ پایدار در نظر گرفته شد. در حالی که بسیاری از برنامه نویسان حرفهای استفاده از بیسیک را مورد تمسخر قرار میدهند، VB نیازهای تجاری کوچک را در جاهایی که سرعت پردازش نسبت به تولید آسان اهمیت کمتری داشت به طور موثری برآورده کرد. در ان زمان کامپیوترها Windows 3.1 را اجرا میکردند که به اندازهای سریع شده بودند که فعالیت های مربوط به تجارت را میتوانستند در یک چشم به هم زدن انجام دهند. خیلی از صاحبان کسب و کار کوچک فهمیدند که میتوانند در چند بعد ظهر برنامه ای کارا برای رفع نیازهایشان بنویسند. سر انجام در طول عمر VB3 دانش ویژوال بیسیک به یک مهارت قابل عرضه در بازار تبدیل شد.
خیلی از نسخههای زبان بیسیک در چند سال اخیر ظاهر شدهاند از جمله Bywater BASIC و True BASIC (جانشین اصلی بیسیک Dartmouth از شرکتی به هدایت Krutz). یک نسخه برجسته RealBasic می باشد، که اولین بار در سال 1988 برای کامپیوترهای مکینتاش منتشر شد، که از سال 2005 در برنامه های ویندوز مایکروسافت، Mac OS X و لینوکس 32 و 64 بیت استفاده میشود. برنامه های کامپایل شده RealBasic ممکن است به صورت طبیعی در این محیط ها به عنوان سرویس کار کنند. خیلی از دیگر انواع بیسیک، توسط علاقمندان نوشته شد. این زبان بطور نسبی برای مترجم آسان است. یک مثال از یک مترجم open source، به زبانC، MiniBasic می باشد. وجود مفسرهای بیسیک روی تمام کامپیوترهای خانگی، دانشجویان را تشویق میکند که مفاهیم ریاضی و محاسباتی در کلاس یا خانه بر روی کامپیوتر تجربه کنند. و در آخر اینکه آقای David Brin در مقاله Salon نسبت به از دست رفتن همه گیری بیسیک اظهار تاسف می کند.