نسخه اصلی Basic (که شامل symbolic instruction code begginers all purpose به معنی «کد حاوی دستورات نمادین همه منظوره مخصوص نوآموزان» در کالج دارتموت در سال 1964 به عنوان زبانی آموزشی ابداع گشت.یادگیری و طریقه استفاده از سایر زبانهایی که تا آن زمان وجود داشتند- از جمله اسمبلی، فرترن و کوبول- بسیار مشکل تر بود و برای دانشجویان مبتدی علوم کامپیوتر مناسب نبود.
زبان کامپیوتری چیست؟گاهی اوقات ممکن است مفهومی که ما از «زبان برنامه نویسی» در ذهن داریم با آنچه دیگران می دانند، فرق کند. لذا برای اطمینان از اینکه همه یک جور فکر می کنند برخی مفاهیم کامپیوتری از جمله زبانها را قبل از شروع بیسیک مرور خواهیم کرد.
کامپیوتر ابزاری است که محاسبات عددی را انجام می دهد و یا علایم مربوط به مجموعه مشخصی از قوانین دستکاری می کند. قوانین به صورت برنامه وارد کامپیوتر می شوند. برنامه لیستی از دستورات و داده هایی است که کامپیوتر می تواند انها را تفسیر و اجرا نماید. هر خط درون برنامه معمولا یک حکم (statement) نامیده می شود؛ هر حکم دستورالعملی را به کامپیوتر منتقل می سازد (مثلا:دو مقدار مشخص را با هم جمع کن و حاصل را ذخیره نما).
ممکن است دستورالعملی را به کامپیوترهای مدرن، هم رقمی و هم دودویی هستند.بدین معنی که اطلاعات ذخیره شده درون آنها خواه دستورالعمل باشد و خواه داده، به صورت مقادیر گسسته کمیت دار(ارقام) هستند که در مبنای 2 یا نمادگذاری دودویی ذخیره می شوند.(مثلا: در دودویی عدد 5 به صورت 101 در می آید). در واقع کامپیوتر قادر به درک رشته های بزرگی از یک و صفر می باشد. یک کد ثابت فرمان می دهد که چطور این رشته ارقام دودویی باید تفسیر گردند.
مفسر بیسیک
در چند پاراگراف قبلی ذکر کردیم که بیسیک فاقد یک یا دو مرحله لازم در سایر زبانها برای اجرای برنامه ها می باشد. حال زمان آن رسیده تا منظور خود را از این حرف بیان داریم.
به یاد آورید که متذکر شدیم برای اینکه کامپیوتر بتواند مستقیما برنامه ای را اجرا کند، دستورات برنامه باید به صورت صفر و یک های زبان ماشین باشد که زبانی مشکل برای نوشتن برنامه است. اگر برنامه ای را به دیگر زبانها بنویسیم، دستورات برنامه خود ابتدا باید توسط برنامه ای دیگر به زبان ماشین ترجمه گردند(این مرحله ویژه ای است که در بالا ذکر کردیم). در اکثر حالات، قبل از اینکه برنامه اجرا شود، کل آن ترجمه می گردد. اما در بیسیک این طور نیست. برنامه بیسیک تفسیر می گردد و برای تفسیر هر چیز به یک مفسر احتیاج است.
مفسر برنامه ای با دستورات زبان ماشین است که جهت درک و اجرای دستورات در زبانی دیگری مانند بیسیک نوشته می شود. هنگامی که کامپیوتر برنامه ای به زبان بیسیک استاندارد را اجرا می کند در حقیقت برنامه دیگر را اجرا می نماید که در هر زمان یک دستور بیسیک از برنامه اول را می خواند و بر اساس آن عملی را انجام می دهد. زبانی که بدین شیوه اجرا می شود، زبان تفسیری نامیده می شود.
یکی از اشکالات زبان تفسیری آن است که کامپیوتر با هر بار برخورد با یک دستور باید آن را بخواند و مجددا ترجمه نماید-- حتی اگر در یک حلقه هزاران بار با یک دستور رویرو شود! این دوباره کاری تفسیر وقت زیادی تلف می کند.
در Q basic این امر تغییر یافته است. این بدان مفهوم است که قبل از اجرای برنامه توسط کامپیوتر یک بار کل برنامه به زبان ماشین ترجمه می گردد. برنامه ای که عمل ترجمه را انجام می دهد، مترجم (کامپایلر) نامیده می شود.
مترجم Qbasic برنامه ای (در حقیقت زیربرنامه ای همراه Qbasic) است که دستورات برنامه به زبان بیسیک را خوانده و آنها را درک می نماید، بر اساس قواعدی مشخص آنها را چک می کند تا خطا نداشته باشند، و سپس انها را به زبان ماشین ترجمه می کند. کامپایلر تنها لازم است هر دستور را یک بار ترجمه کند، لذا بدین سبب کارآیی آن از مفسر بیشتر است. کامپایلر تنها لازم است هر دستور را یک بار ترجمه کند، لذا بدین سبب کارآیی آن از مفسر بیشتر است. کامپالر دستوراتی که ترجمه می نماید را اجرا نمی کند؛ این برنامه تنها مجموعه ای از دستورات زبان ماشین تولید می کند که کامپیوتر می تواند مستقیما و به سرعت وظیفه برنامه بیسیک مورد نظر را انجام دهد. دو ویژگی برجسته Qbasic سرعت و کارآیی آن به علت ترجمه کردن (کامپایل) برنامه ها می باشد.