بیسیک

زبان برنامه‌نویسی

در برنامه‌نویسی کامپیوتر، بِیسیک (به انگلیسی: BASIC، سرنام[۱] Beginners All-Purpose Symbolic Instruction) یکی از زبان‌های برنامه‌نویسی سطح بالا و در عین حال ساده. اولین بار بیسیک در سال ۱۹۶۴ توسط جان جی. کمنی (به انگلیسی: John George Kemeny) و توماس یوجین کرتز (به انگلیسی: Thomas Eugene Kurtz) در دانشگاه دارتموث در نیوهمپشر آمریکا، به منظور دسترسی دانشجویان به کامپیوتر و آموزش اصول اولیهٔ برنامه‌نویسی طراحی شد. در آن زمان استفاده از کامپیوترها نیاز به نوشتن تکه‌برنامه‌هایی داشت که تنها دانشمندان و ریاضی‌دانان می‌توانستند آن‌ها را بنویسند. بیسیک و انواع مختلف آن تا دههٔ ۱۹۷۰ و ۱۹۸۰، به‌طور گسترده در میکروکامپیوترها گسترش یافت و تا امروز نیز پر طرفدار باقی‌مانده و به عنوان نسخهٔ خاصی از یک زبان کامپیوتر مفید و اصلاح‌شده و زبان‌های جدیدی مانند مایکروسافت ویژوال بیسیک بر مبنای بیسیک ساخته شده‌اند. تا سال ۲۰۰۶، ۵۹٪ برنامه‌نویسان محیط دات‌نت از ویژوال بیسیک به‌عنوان تنها زبان خود استفاده می‌کردند.[۲]

بیسیک
Screenshot of Atari BASIC, one of the BASIC implementations used by the small and simple home computers of the early 1980s.
پارادایم برنامه‌نویسیبرنامه‌نویسی غیر ساخت‌یافته، سپس برنامه‌نویسی رویه‌ای، سپس برنامه‌نویسی شیءگرا
طراحی شده توسط
ظهوریافته در۱ مه ۱۹۶۴؛ ۶۰ سال پیش (۱۹۶۴-01}})
پیاده‌سازی‌های بزرگ
متأثر از
تأثیر گذاشته بر

BASIC Programming در ویکی‌کتاب (انگلیسی)

تاریخچه

ویرایش

پیش زمینه

ویرایش

تا قبل از اواسط دههٔ ۱۹۶۰، کامپیوترها بسیار گران بودند و فقط برای وظایفی که هدف خاصی داشتند مورد استفاده قرار می‌گرفتند. در کامپیوترهای آن زمان، یک دسته پردازش‌های مرتب ساده، هر کدام به عنوان یک کار در هر لحظه یکی پس از دیگری اجرا می‌شدند. اما در دههٔ ۱۹۶۰، کامپیوترهای سریعتر و تواناتری با قدرت پردازشی بیشتری ساخته شدند. این کامپیوترها می‌توانستند لحظاتی بدون کار باشند، بدون فعالیتی برای اجرا کردن.

زبانهای برنامه‌نویسی مانند ماشینهایی که آن‌ها را اجرا می‌کردند باید طوری طراحی می‌شدند که برای اهداف مشخصی مفید باشند: مانند محاسبهٔ فرمول علمی یا پردازش داده‌های تجاری یا مثلاً ویرایش یک متن. از آنجایی که هنوز هم تهیه کامپیوترهای جدید و ارزانتر به سرمایه زیادی احتیاج داشت، تمایل شدیدی برای در نظر گرفتن کارایی به عنوان مهم‌ترین ویژگی یک زبان وجود داشت. به‌طور کلی استفاده از این زبان‌های تخصصی شده مشکل بود و سینتکسهای مختلف زیادی برای آن‌ها وجود داشت.

هنگامی که کامپیوترها قیمتشان کاهش یافت، این امکان به وجود آمد که دسترسی به کامپیوتر از انحصار آزمایشگاه‌های تحقیقاتی خارج شود و وارد استفادهٔ تجاری شود. کامپیوترهای جدید از سیستم اشتراک زمانی پشتیبانی می‌کنند که این امکان را برای چند پردازش یا کاربر فراهم می‌کند که به‌طور هم‌زمان از پردازنده و حافظه استفاده کنند. در چنین سیستم‌هایی، سیستم‌عامل بین پردازش‌های در حال اجرا به‌طور متناوب به هر کدام از آن‌ها زمانی برای اجرا بر روی پردازنده می‌دهد، قبل از این که بر روی فعالیت دیگری برود. ماشین‌ها به حدی سریع شدند که بیشتر کاربران می‌توانستند احساس کنند که تمام ماشین در خدمت آنهاست. اشتراک زمانی هزینهٔ محاسبات را به‌طور فاحشی کاهش داد. یک ماشین می‌توانست بین صدها کاربر به اشتراک گذاشته شود.

سالهای نخست: دورهٔ مینی کامپیوترها

ویرایش

بیسیک اولیه در سال ۱۹۶۳ توسط جان جورج کمنی و[۳] توماس یوجین کورتز طراحی شد و توسط یک تیم از دانشجویان دارتموث(Dartmouth) و زیر نظر آن‌ها پیاده‌سازی گردید. هدف این پیاده‌سازی رده جدیدی از کاربران بودند که دارای اطلاعات تکنیکی کمتر و دارای پیش‌زمینه ریاضی ضعیف تری از کاربران قدیمی تر بودند. امکان استفاده از کامپیوتر در آموزش و تحقیق در آن زمان یک چیز کاملاً جدید بود. بیسیک اولیه توسط جان جورج کمنی و توماس یوجین کورتز ساخته شد، در سال‌های بعدی که نسخه‌های جدیدی از بیسیک ساخته شد، که تحت عنوان بیسیک Dartmouth شناخته شد.

هشت اصل در طراحی بیسیک عبارتند از:

  1. استفاده از آن برای مبتدیان آسان باشد.
  2. یک زبان برنامه‌نویسی همه منظوره باشد.
  3. امکان اضافه شدن ویژگی‌های پیشرفته را به متخصصین بدهد (در حالی که سادگی زبان برای مبتدیان حفظ شود).
  4. تعاملی باشد.
  5. پیغام‌های خطای واضح داشته باشد.
  6. برای برنامه‌های کوچک، سریع پاسخ دهد.
  7. نیازی به آشنایی با سخت‌افزار نداشته باشد.
  8. از کاربر در برابر سیستم‌عامل حفاظت کند.

بخشی از این زبان بر مبنای فرترن ۲ و بخشی از آن بر مبنای الگول۶۰ بود، به اضافهٔ این مزیت که آن را برای اشتراک زمانی مناسب می‌کرد. (ویژگی اشتراک زمانی از دیگر زبان‌ها مانند JOSS و CORC و به میزان کمتری از زبان LISP، نیز در نظر گرفته شد) این زبان از آزمایش‌های آموزش زبان دیگر در Dartmouth مانند(DARSIMCO (۱۹۵۶ و DOPE (پیاده‌سازی شده در سال ۱۹۶۲SAP و (۱۹۶۳) DART که ساده شدهٔ فرترن۲ بود، پیشی گرفت. نخستین بار بیسیک بر روی کارهای سر راست ریاضی تمرکز داده شد، با پشتیبانی محاسبهٔ ماتریس از پیاده‌سازی اولیه آن به عنوان یک زبان دست‌های و امکانات کامل کار با رشته به آن در سال ۱۹۶۵ اضافه شد. در سال ۱۹۶۵ بیسیک نخستین بار بر روی GE-265 mainframe که دارای چند ترمینال بود به کار گرفته شد. بر خلاف باور عمومی، بیسیک در زمان معرفی یک زبان کامپایل شده بود. بیسیک همچنین در غلبه بر FORTAN || و ALGOL ۶۰ در محاسبه ۲۶۵ محاسبه ریاضی کاملاً مؤثر بود.

طراحان زبان تصمیم گرفتند برای اینکه بیسیک گسترده شود، کامپایلرهای رایگان برای آن تهیه کنند. آن‌ها همچنین آن را در دبیرستان‌های ناحیهٔ Dartmouth فراهم کردند و همچنین میزان قابل ملاحظه‌ای تلاش در جهت ارتقاء این زبان کردند و در نتیجه دانش بیسیک به صورت نسبی همه جا گسترش یافت (به عنوان یک زبان برنامه‌نویسی) و بیسیک توسط تعدادی از سازندگان پیاده‌سازی شد و روی مینی کامپیوترهای جدید مانند سری‌های DEC PDP و Data General Nov عمومی شد. همچنین زبان بیسیک بر روی سیستم‌های اشتراک زمانی HP در اواخر دههٔ ۱۹۶۰و اوایل دههٔ ۱۹۷۰ گسترش یافت. در این نمونه‌ها، زبان تمایل داشت به جای کامپایلر با مفسر اجرا شود.

چند سال پس از انتشار بیسیک، افراد حرفه‌ای در کامپیوتر، به ویژه Edsger W. Dijkstra، اظهار کردند که استفاده از دستور GOTO، که در بسیاری از زبان‌های برنامه‌نویسی مانند بیسیک وجود دارد، روش‌های برنامه‌نویسی ضعیف را ترفیع می‌دهد.[۴] برخی از بیسیک انتقاد کردند که خیلی کند است (بیشتر نسخه‌های دارای مفسر از دارای کامپایلر کندتر هستند) یا این انتقاد را کردند که بیسیک خیلی ساده است (بسیاری از نسخه‌ها به ویژه برای کامپیوترهای کوچک، ویژگی‌ها و قابلیت‌های مهم را رها کردند).

رشد خیره کننده: دورهٔ کامپیوترهای خانگی

ویرایش

با اینکه زبان‌ها بر روی مینی کامپیوترهای زیادی استفاده می‌شوند ولی معرفی مینی کامپیوتر MITS Altair kit "8800" در سال ۱۹۷۵ راه جهانی شدن را به روی بیسیک گشود. بیشتر زبان‌های برنامه‌نویسی به فضای حافظه بیشتری نسبت به آنچه بر روی کامپیوترهای کوچکی که بیشتر کاربران استطاعت خرید آن را داشتند، نیاز داشتند. همچنین میکرو کامپیوترهای اولیه دارای دسترسی کند به حافظه که از نوارهای صدا فراهم می‌شد و نیز فقدان ویرایشگر مناسب متن بودند. یک زبان مانند بیسیک، با وجود تمام این محدودیت‌ها پاسخگوی نیاز کاربران بود.

بیسیک همچنین دارای این مزیت بود که در بین طراحان جوان و علاقه‌مندان در زمینهٔ کامپیوتر که عموماً در صنایع الکترونیکی آن روزگار کار می‌کردند به صورت نسبتاً خوبی شناخته شده بود. ابتکار Kemeny and Kurtz's به اندازه‌ای درخور مورد توجه قرار گرفت که تعدادی از مجلات کامپیوتر در آن زمان، مطالبی در بارهٔ زبان بیسیک نوشتند یا بر روی مقایسهٔ یک نسخه با دیگر نسخه‌ها تمرکز کردند.

یکی از اولین نسخه‌هایی که برای ماشین ۸۰۸۰ مانند Altair به وجود آمد، Tiny BASIC بود. یک اجرای ساده از بیسیک که در اصل توسط Dr. Li-Chen Wang نوشته شده و سپس به Altair برده شد و سپس توسط Dennis Allison و به درخواست Bob Albrecht (که قبلاً مجلهٔ Dr. Dobb's را تأسیس کرده بود) طراحی و تمام کد منبع آن در سال ۱۹۷۶ در DJJ منتشر گردید.

در سال ۱۹۷۵، MITS نسخه Altair BASIC را که توسط دانشجوی ترک تحصیل کرده، Bill Gates و Paul Allen به عنوان شرکت Micro-Soft (که بعدها شرکت عظیم مایکروسافت نام گرفت) منتشر کرد. نخستین نسخه از Altair توسط Gates, Allen و Monte Davidoff نوشته شد. نسخه‌های مایکروسافت بیسیک که بعداً به عنوان M BASIC یا MBASIC شناخته شدند، به زودی با کامپیوترهایی بر مبنای فلاپی دیسک که در فعالیت‌های کوچک تجاری استفاده می‌شد رایج شد. چون محبوبیت بیسیک در CP/M گسترش یافت، طراحان کامپیوترهای جدید نیز نسخهٔ خودشان از زبان معرفی کردند یا Micro-Soft نسخه خود را به محیط آن‌ها برد.

هنگامی که سه کامپیوتر اصلی جدید در مجلهٔ Byte که قبلاً[۵] ۱۹۷۷ Trinity نامیده می‌شد معرفی شدند، هر سه آن‌ها بیسیک را به عنوان زبان اصلی و محیط عملکردی دارا بودند. Commodore PET لیسانس یک نسخه از مایکروسافت بیسیک را که به MOS ۶۵۰۲ برده شده بود را بدست آورد و Apple II و TRS-۸۰ هر دو نسخه‌های جدیدی از زبان را معرفی کردند که خیلی شبیه به هم بودند. همان‌طور که کمپانی‌های جدید وارد عرصه می‌شدند، نسخه‌های جدیدی اضافه می‌شدند که به دقت خانوادهٔ بیسیک را تغییر می‌دادند. خانوادهٔ Atari 8-bit نسخه Atari BASIC خود را داشت که برای کارتریج ۸ kB ROM مناسب شده بود. بی‌بی‌سی، BBC BASIC را منتشر کرد که توسط Acorn Computers Ltd برای آن‌ها ساخته شده بود که دارای کلمات ساختاری زیادی بود. بیشتر کامپیوترهای خانگی دههٔ ۱۹۸۰ یک ROM مفسر بیسیک داشتند، که به ماشین اجازه می‌داد مستقیماً در بیسیک بوت شود. بیسیک بیش از هر زبان دیگری دارای گونه‌های مختلف است.

در طول این دورهٔ رشد برای بیسیک، مجلات بسیاری منتشر شدند، مانند مجلهٔ Creative Computing که شامل کد منبع کامل بازی‌ها و نرم‌افزارهای سودمند بود. این کار ساده‌ای بود که کدها از روی مجله نوشته و اجرا شوند. مجلات مختلفی منتشر می‌شدند که برنامه‌ها را برای کامپیوترهای بخصوصی نشان می‌دادند گرچه بعضی از برنامه‌های بیسیک جهانی بودند و می‌توانستند بر روی هر ماشین استفاده‌کننده از بیسیک، اجرا شوند. یک راه منطقی دیگر ایده به کتاب درآوردن این کد منبع‌ها بود که به‌طور مثال می‌توان به سری کتاب‌های بازی‌های کامپیوتری David Ahl اشاره نمود.[۶][۷][۸]

بلوغ: دورهٔ کامپیوترهای شخصی

ویرایش

سال ۱۹۷۹ مایکروسافت با IBM برای ساختن یک نسخه بیسیک به نام (BASIC C) که در BIOS این کامپیوترها قرار می‌گرفت در مذاکره بود. مایکروسافت نسخه‌های زیادی از بیسیک را برای MS-DOS/PC-DOS فروخت که شامل BASIC D، BASIC A، BASICA, GW-BASIC(یک نسخه سازگار با BASIC A که احتیاج به رم IBM نداشت)، QBASIC می‌شد. توربو پاسکال، منتشر کنندهٔ بورلند، توربو بیسیک ۱٫۰ را در سال ۱۹۸۵ منتشر کرد. نسخه‌های بعدی با نام نویسنده اصلی آن تحت نام POWERBASIC تا امروز عرضه می‌شوند. مایکروسافت نسخه ای از بیسیک را که در محیط گرافیکی بود با نام Amiga BASIC منتشر نمود (اواخر سال ۱۹۸۵ و اوایل سال ۱۹۸۶)، اگرچه این محصول دارای نشان مایکروسافت نبود.

این زبان‌ها الحاقات زیادی را به کامپیوترهای خانگی بیسیک اضافه نمودند. مانند: بهبود کار با رشته‌ها و پشتیبانی گرافیکی و دسترسی به سیستم فایل و نوع داده‌های اضافی. مهم‌تر از همه امکانات برنامه‌نویسی ساخت یافته بود. از جمله ساختارهای کنترلی و رویه‌ها که از متغیرهای محلی پشتیبانی می‌کردند.

به هر حال اواخر دههٔ ۱۹۸۰ کامپیوترهای جدید با توانایی بیشتر و ابتکارات نو در همین زمان کامپیوترها ترقی کردند از سرگرمی مورد علاقه به یک وسیله که عمدتاً برای فعالیت‌هایی که توسط دیگران نوشته می‌شد، استفاده می‌شدند. برنامه‌نویسی اهمیت کمتری برای بیشتر کاربران پیدا کرد. بیسیک شروع به پس رفتن در اهمیت کرد، اما نسخه‌های بیشماری از آن باقی‌ماند. بیسیک کامپایل شده با CBASIC هنوز در سیستم‌عامل IBM ۴۶۹۰ استفاده می‌شود.

شانس بیسیک یک بار دیگر با معرفی ویژوال بیسیک که توسط مایکروسافت عرضه شد باقی‌ماند. سخت است که این زبان را بیسیک در نظر بگیریم چون زبان تبدیل به یک زبان شی گرا و رویدادی شده بود. تنها چیز مهمی که شبیه به بیسیک قدیمی بود، سینتکس آن بود. سینتک به خودی خود زمان را به‌طور کامل تعریف نمی‌کند، از آنجایی که بیشتر برنامه نویسان برای استفاده از آشنایی مانند button یا scrollbar از تکنیک drag and drop استفاده می‌کنند و مستقیماً درگیر تمام کد نمی‌شوند، در حالی که این می‌توانست به عنوان یک تحول برای زبان در نظر گرفته شود، بعضی از ویژگی‌های ممتاز Dartmouth BASIC مانند شماره‌های خط و کلمهٔ کلیدی INPUT باقی‌ماند (گرچه هنوز هم ویژوال بیسیک از INPUT برای خواندن اطلاعات از فایل استفاده می‌کند و کلمه کلیدی INPUTBOX برای ورودی مستقیم از کاربر موجود است. line numbers نیز می‌تواند به صورت اختیاری در تمام نسخه‌های VB مورد استفاده قرار گیرد حتی VB.NET. گرچه آن‌ها نمی‌توانند در بعضی مکان‌های خاص مورد استفاده قرار گیرند مانند قبل از SUB.

ایراد گرفته شده از بیسیک به این عنوان که بیسیک زبانی ابتدایی است و ظاهراً باعث تعجب بسیار زیادی شد که مایکروسافت هنوز ویژوال بیسیک را به عنوان یک زبان برای علاقه‌مندان می‌داند، این زبان به‌طور وسیعی برای فعالیت‌های تجاری کوچک به مدت کوتاهی پس از عرضه شدن نسخهٔ ۳ از VB مورد استفاده قرار گرفت؛ که عموماً به عنوان نخستین نسخهٔ پایدار در نظر گرفته شد. در حالی که بسیاری از برنامه نویسان حرفه‌ای استفاده از بیسیک را مورد تمسخر قرار می‌دهند، VB نیازهای تجاری کوچک را در جاهایی که سرعت پردازش نسبت به تولید آسان اهمیت کمتری داشت به‌طور مؤثری برآورده کرد. در آن زمان کامپیوترها Windows ۳٫۱ را اجرا می‌کردند که به اندازه‌ای سریع شده بودند که فعالیت‌های مربوط به تجارت را می‌توانستند در یک چشم به هم زدن انجام دهند). خیلی از صاحبان کسب و کار کوچک فهمیدند که می‌توانند در چند بعد ظهر برنامه ای کارا برای رفع نیازهایشان بنویسند. سرانجام در طول عمر VB۳ دانش ویژوال بیسیک به یک مهارت قابل عرضه در بازار تبدیل شد.

خیلی از نسخه‌های زبان بیسیک در چند سال اخیر ظاهر شده‌اند از جمله Bywater BASIC و True BASIC (جانشین اصلی بیسیک Dartmouth از شرکتی به هدایت Krutz). یک نسخه برجسته RealBasic می‌باشد، که اولین بار در سال ۱۹۹۸ برای کامپیوترهای مکینتاش منتشر شد، که از سال ۲۰۰۵ در برنامه‌های ویندوز مایکروسافت، Mac OS X و لینوکس ۳۲ و ۶۴ بیت استفاده می‌شود. برنامه‌های کامپایل شده RealBasic ممکن است به صورت طبیعی در این محیط‌ها به عنوان سرویس کار کنند. خیلی از دیگر انواع بیسیک، توسط علاقه‌مندان نوشته شد. این زبان به‌طور نسبی برای مترجم آسان است. یک مثال از یک مترجم open source، به زبان C, MiniBasic می‌باشد. وجود مفسرهای بیسیک روی تمام کامپیوترهای خانگی، دانشجویان را تشویق می‌کند که مفاهیم ریاضی و محاسباتی در کلاس یا خانه بر روی کامپیوتر تجربه کنند و در آخر اینکه آقای David Brin در مقاله Salon نسبت به از دست رفتن همه‌گیری بیسیک اظهار تاسف می‌کند.[۹]

مثال‌ها

ویرایش

برنامه‌نویسی ساخت نیافته

ویرایش

برنامه نویسان جدید بر روی یک کامپیوتر خانگی ممکن است با یک برنامهٔ ساده مانند Hello world program که توسط Kernighan and Ritchie معروف شد، شروع کنند. این مثال به‌طور کلی شما را درگیر یک کاربرد سادهٔ دستور چاپ برای نشان دادن پیغام‌ها (مانند نوشتن نام برنامه) بر روی صفحهٔ مانیتور می‌کند. اغلب اوقات یک حلقهٔ نامتناهی برای پر کردن صفحه نمایش با پیام مزبور مورد استفاده قرار می‌گیرد. بیشتر نسل‌های اولیه زبان بیسیک، مانند MSX BASIC و GW-BASIC از انواع داده‌ای ساده، حلقه‌ها و آرایه‌ها پشتیبانی می‌کردند. مثال زیر برای GW-BASIC نوشته شد ولی روی بیشتر نسخه‌های BASIC با اندک تغییرات کار می‌کند:

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$) = ۰ THEN GOTO 90
110 A$ = LEFT$(A$, 1)
120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30
130 PRINT "Goodbye"; U$
140 END

بیسیک ساخت یافته

ویرایش

نسل دوم از بیسیک مانند QuickBASIC و PowerBASIC تعدادی ویژگی به داخل زبان معرفی کردند، این ویژگی‌ها عموماً مربوط به برنامه‌نویسی ساخت‌یافته و رویه ای بود. شماره گذاری خط از زبان حذف شد و برچسب‌ها (برای دستور GOTO) جایگزین آن شد و رویه‌ها ساده‌تر و طراحی آن‌ها انعطاف‌پذیرتر شد.[۱۰]

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$

بیسیک با ویژگی‌های شی گرا

ویرایش

سومین نسل از زبان بیسیک مانند Visual Basic, StarOffice Basic, REALbasic, BlitzMax ویژگی‌هایی را برای پشتیبانی برنامه‌نویسی شی گرا و رویدادی معرفی کردند. بیشتر توابع و رویه‌های به عنوان متدهای استاندارد اشیاء نشان داده می‌شدند تا عملگرها.

مثال زیر یک تکه کد در زبان Visual Basic.NET را نشان می‌دهد:

Class stars
    Sub Main()
        Dim UserName, Answer, stars As String ' UserName$, Answer$, stars$ may be used as well.
        Dim NumStars, I As Integer
        Console.Write("What is your name:")
        UserName = Console.ReadLine()
        Console.WriteLine("Hello {۰}», 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 {۰}», UserName)
    End Sub
End Class

و مثال دیگر در زبان BlitzMax:

SuperStrict ' Use very strict coding rules (no loose assumptions).

Framework brl.blitz ' Base BlitzMax module (Framework is the same as Import, except
   ' in that it stops automatic Imports of official modules).
Import brl.standardio ' Import BRL's StandardIO module (contains Print and Input).
Import brl.random

' Run our function!
TNumberGuessingGame.Main()

' Non-instance based type (trying to mimic the flow of VB)...
Type TNumberGuessingGame ' NOTE: The 'T' before the the Type/Class' name is
    ' a typical naming convention used, and is not necessary.

 Function Main()
  Local number:Int, guess:Int, quit:Int = False

  Repeat
   number = Rand(1, 10)
   Print("Guess a number! (one to ten)")

   guess = Int(Input(">»))
   If guess = number
    Print("Correct!!»)
   Else If guess <۱
    Print("That's less than one!»)
   Else If guess> ۱۰
    Print("That's more than ten!!»)
   Else
    Print("Incorrect! The number was" + number + ".")
   End If

   Print("") ' Print always appends a newline character at the end of the message.
   If Input("Do you want to continue playing? (y/n)").ToLower() = "n"
    quit = True
   End If

  Until quit = True

 End Function

End Type
  1. The acronym is tied to the name of an unpublished paper by Thomas Kurtz and is not a backronym, as is sometimes suggested in older versions of The Jargon File
  2. Mono brings Visual Basic programs to Linux[پیوند مرده]
  3. http://cis-alumni.org/TKurtz.html بایگانی‌شده در ۱۹ اکتبر ۲۰۱۳ توسط Wayback Machine Thomas E. Kurtz - History of Programming Languages
  4. In a ۱۹۶۸ letter, Dutch computer scientist Edsger W. Dijkstra considered programming languages using GOTO statements for program structuring purposes harmful for the productivity of the programmer as well as the quality of the resulting code («Go To Statement Considered Harmful" بایگانی‌شده در ۳ ژوئیه ۲۰۰۷ توسط Wayback Machine, Communications of the ACM Volume 11, 147-148. 1968). The letter, which contributed the phrase considered harmful to programming jargon, did not mention any particular programming language; instead it states that the overuse of GOTO is damaging and gives technical reasons why this should be so. In a ۱۹۷۵ tongue-in-cheek article, "How do We Tell Truths that Might Hurt", Sigplan Notices Volume 17 No. 5, Dijkstra gives a list of uncomfortable "truths", including his opinion of several programming languages of the time. Although BASIC is one of his targets ("It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration"), it receives no worse treatment in the piece than PL/I, COBOL or APL.
  5. Most Important Companies (به انگلیسی) (Byte Magazine ed.), September, ‎1995, archived from the original on 18 June 2008, retrieved 17 July 2009 {{citation}}: Check date values in: |تاریخ= (help) Retrieved on 2008-06-10.
  6. Table of Contents: BASIC Computer Games
  7. Table of Contents: More BASIC Computer Games
  8. Table of Contents: Big Computer Games
  9. http://www.salon.com/tech/feature/2006/09/14/basic/index_np.html Why Johnny Can't Code
  10. Differences Between GW-BASIC and QBasic (به انگلیسی), 2003-05-12 Retrieved on 2008-06-28.

منابع

ویرایش
  • (PDF) (به انگلیسی), Dartmouth College Computation Center, 1964 http://www.bitsavers.org/pdf/dartmouth/BASIC_Oct64.pdf {{citation}}: Missing or empty |title= (help) — The original Dartmouth BASIC manual.
  • Lien, ‎David A. (1986), The Basic Handbook: Encyclopedia of the BASIC Computer Language (به انگلیسی) (3rd ed. ed.), Compusoft Publishing {{citation}}: |edition= has extra text (help)نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link) — Documents dialect variations for over 250 versions of BASIC.
  • Kemeny, ‎John G. (1985), Back To BASIC: The History, Corruption, and Future of the Language (به انگلیسی), Kurtz, Thomas E., Addison-Wesley, p. pp 141 {{citation}}: |صفحه= has extra text (help)نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)
  • Sammet, ‎Jean E. (1969), Programming languages: History and fundamentals (به انگلیسی), Englewood Cliffs, N.J.: Prentice-Hall{{citation}}: نگهداری یادکرد:نام‌های متعدد:فهرست نویسندگان (link)

استانداردها

ویرایش
  • ANSI/ISO/IEC Standard for Minimal BASIC:
    • ANSI X۳٫۶۰–۱۹۷۸ «FOR MINIMAL BASIC»
    • ISO/IEC 6373:1984 "DATA PROCESSING - PROGRAMMING LANGUAGES - MINIMAL BASIC»
  • ANSI/ISO/IEC Standard for Full BASIC:
    • ANSI X۳٫۱۱۳–۱۹۸۷ «PROGRAMMING LANGUAGES FULL BASIC»
    • INCITS/ISO/IEC 10279-1991 (R۲۰۰۵) «Information Technology - Programming Languages - Full BASIC»
  • ANSI/ISO/IEC Addendum Defining Modules:
    • ANSI X۳٫۱۱۳ INTERPRETATIONS-1992 "BASIC TECHNICAL INFORMATION BULLETIN # ۱ INTERPRETATIONS OF ANSI ۰۳٫۱۱۳–۱۹۸۷»
    • ISO/IEC 10279:1991/ Amd 1:1994 "MODULES AND SINGLE CHARACTER INPUT ENHANCEMENT»
  • ECMA-116 BASIC (withdrawn, similar to ANSI X۳٫۱۱۳–۱۹۸۷)

جستارهای وابسته

ویرایش

پیوند به بیرون

ویرایش