بیسیک ( کد دستورالعمل نمادین همه منظوره مبتدیان ) [1] خانواده ای از زبان های برنامه نویسی همه منظوره و سطح بالا است که برای سهولت استفاده طراحی شده اند. نسخه اصلی توسط John G. Kemeny و Thomas E. Kurtz در کالج دارتموث در سال 1963 ایجاد شد . آنها می خواستند دانش آموزان در زمینه های غیر علمی را قادر به استفاده از رایانه کنند. در آن زمان، تقریباً همه رایانهها به نوشتن نرمافزار سفارشی نیاز داشتند که فقط دانشمندان و ریاضیدانان تمایل به یادگیری آن داشتند.
علاوه بر زبان برنامه نویسی، Kemeny و Kurtz سیستم اشتراک گذاری زمان دارتموث (DTSS) را توسعه دادند که به چندین کاربر اجازه می داد برنامه های BASIC را به طور همزمان روی پایانه های راه دور ویرایش و اجرا کنند. این مدل عمومی در سیستمهای کامپیوتری کوچک مانند PDP-11 و Data General Nova در اواخر دهه 1960 و اوایل دهه 1970 رایج شد . هیولت پاکارد یک خط کامپیوتر کامل برای این روش کار تولید کرد، سری HP2000 را در اواخر دهه 1960 معرفی کرد و فروش آن را تا دهه 1980 ادامه داد. بسیاری از بازیهای ویدیویی اولیه تاریخچه خود را به یکی از این نسخههای بیسیک ردیابی میکنند.
ظهور میکرو کامپیوترها در اواسط دهه 1970 منجر به توسعه چندین گویش بیسیک از جمله مایکروسافت بیسیک در سال 1975 شد. با توجه به حافظه اصلی کوچک موجود در این ماشین ها، اغلب 4 کیلوبایت، انواع گویش های Tiny BASIC نیز ایجاد شد. بیسیک تقریباً برای هر سیستمی در آن دوره در دسترس بود، و تبدیل به زبان برنامه نویسی واقعی برای سیستم های کامپیوتری خانگی شد که در اواخر دهه 1970 ظهور کردند. این رایانههای شخصی تقریباً همیشه دارای یک مفسر BASIC هستند که به طور پیشفرض، اغلب در میانافزار دستگاه یا گاهی اوقات روی یک کارتریج ROM نصب شده است.
محبوبیت بیسیک در دهه 1990 کاهش یافت، زیرا میکروکامپیوترهای قدرتمندتر به بازار آمدند و زبان های برنامه نویسی با ویژگی های پیشرفته (مانند پاسکال و سی ) در چنین رایانه هایی قابل استفاده شدند. در آن زمان، اکثر کاربران غیر فنی کامپیوترهای شخصی به جای نوشتن برنامه های خود، به برنامه های از پیش نوشته شده تکیه می کردند. در سال 1991، مایکروسافت ویژوال بیسیک را منتشر کرد که نسخه به روز شده بیسیک را با سازنده فرم های بصری ترکیب می کرد . این استفاده دوباره از زبان و "VB" به عنوان یک زبان برنامه نویسی اصلی [2] [3] در قالب VB.NET باقی می ماند ، در حالی که یک صحنه سرگرمی برای BASIC به طور گسترده تر همچنان وجود دارد. [4] [5]
جان جی کیمنی رئیس گروه ریاضیات کالج دارتموث بود. بر اساس شهرت او به عنوان یک مبتکر در تدریس ریاضی، در سال 1959 کالج جایزه بنیاد آلفرد پی اسلون را به مبلغ 500000 دلار برای ساخت یک ساختمان بخش جدید دریافت کرد. [6] توماس ای. کورتز در سال 1956 به این دپارتمان پیوسته بود و از دهه 1960، کیمنی و کورتز در مورد نیاز به سواد برنامه نویسی در بین دانش آموزان خارج از زمینه های سنتی STEM توافق کردند . کمنی بعداً خاطرنشان کرد که "دیدگاه ما این بود که هر دانشجو در محوطه دانشگاه باید به رایانه دسترسی داشته باشد و هر عضو هیئت علمی باید بتواند در هر زمان که مناسب باشد از رایانه در کلاس استفاده کند. به همین سادگی بود." [7]
Kemeny و Kurtz دو آزمایش قبلی را با زبان های ساده شده انجام داده بودند، DARSIMCO (کد ساده دارتموث) و DOPE (آزمایش برنامه نویسی بیش از حد ساده شده دارتموث) . اینها از یک کلاس سال اول هم پیشرفت نکردند. آزمایشهای جدیدی با استفاده از Fortran و ALGOL دنبال شد، اما کورتز به این نتیجه رسید که این زبانها برای آنچه که میخواستند بسیار مشکل هستند. همانطور که کورتز اشاره کرد، فرترن دستورات عجیب و غریب متعددی داشت، به ویژه یک "قرارداد تقریبا غیرممکن برای به خاطر سپردن برای تعیین یک حلقه: . شماره خط مورد نیاز است یا نه؟" [7]DO 100, I = 1, 10, 2
علاوه بر این، فقدان هر نوع بازخورد فوری یک مشکل کلیدی بود. ماشینهای آن دوره از پردازش دستهای استفاده میکردند و اجرای یک برنامه زمان زیادی طول میکشید. در حالی که کورتز از MIT بازدید می کرد ، جان مک کارتی پیشنهاد کرد که اشتراک زمانی راه حلی را ارائه می دهد. یک ماشین واحد می تواند زمان پردازش خود را بین بسیاری از کاربران تقسیم کند و به آنها این توهم را بدهد که یک کامپیوتر (آهسته) برای خود دارند. [8] برنامه های کوچک نتایج را در چند ثانیه برمی گرداند. این منجر به افزایش علاقه به سیستمی با استفاده از اشتراک زمانی و یک زبان جدید به طور خاص برای استفاده توسط دانشجویان غیر STEM شد. [7]
کیمنی اولین نسخه بیسیک را نوشت. مخفف BASIC از نام مقاله منتشر نشده توماس کورتز گرفته شده است . [9] زبان جدید به شدت بر روی FORTRAN II الگوبرداری شده بود. دستورات یک به خط بودند، از اعداد برای نشان دادن هدف حلقه ها و شاخه ها استفاده می شد و بسیاری از دستورات مشابه یا یکسان با فرترن بودند. با این حال، سینتکس هرجا که میتوانست بهبود یابد، تغییر کرد. به عنوان مثال، حلقه سخت به خاطر سپردن با حلقه بسیار ساده تر جایگزین شد و شماره خط مورد استفاده در DO با علامت نشان داده شد . [a] به همین ترتیب، عبارت رمزی فرترن، که نحو آن با دستورالعمل خاصی از ماشینی که در ابتدا روی آن نوشته شده بود، مطابقت داشت، ساده تر شد . این تغییرات باعث شد که زبان بسیار کمتر خاص باشد، در حالی که هنوز ساختار کلی دارد و شبیه به زبان اصلی FORTRAN است. [7]DO
FOR I = 1 TO 10 STEP 2
NEXT I
IF
IF I=5 THEN GOTO 100
این پروژه کمک مالی 300000 دلاری از بنیاد ملی علوم دریافت کرد که برای خرید یک کامپیوتر GE-225 برای پردازش، و یک پردازشگر Realtime Datanet-30 برای مدیریت پرینترهای Teletype Model 33 که برای ورودی و خروجی استفاده میشد، استفاده شد. تیمی متشکل از دوازده دانشجوی کارشناسی حدود یک سال روی این پروژه کار کردند و هم سیستم DTSS و هم کامپایلر BASIC را نوشتند. [7] اولین نسخه زبان بیسیک در 1 مه 1964 منتشر شد. [10] [11]
در ابتدا، BASIC بر روی پشتیبانی از کار ریاضی ساده متمرکز شد، با پشتیبانی حساب ماتریسی از اجرای اولیه آن به عنوان یک زبان دسته ای، و عملکرد رشته کاراکترها تا سال 1965 اضافه شد. استفاده در دانشگاه به سرعت گسترش یافت، و نیاز به جایگزینی CPU اصلی با یک GE- شد. 235، [7] و هنوز هم بعداً توسط GE-635. در اوایل دهه 1970 صدها ترمینال به ماشینهای دارتموث متصل بودند که برخی از آنها از راه دور بودند.
طراحان آن که می خواستند استفاده از این زبان فراگیر شود، کامپایلر را رایگان در دسترس قرار دادند. در دهه 1960، نرم افزار به یک کالای قابل شارژ تبدیل شد. تا آن زمان، بدون هزینه به عنوان یک سرویس با رایانه های گران قیمت ارائه می شد که معمولاً فقط برای اجاره در دسترس بودند. آنها همچنین آن را در اختیار دبیرستانهای هانوفر ، نیوهمپشایر ، منطقه و منطقهای در سراسر نیوانگلند در پایانههای چاپگر تلهتایپ مدل 33 و مدل 35 متصل به دارتموث از طریق خطوط تلفن شمارهگیری قرار دادند و تلاش زیادی برای ترویج این زبان انجام دادند. در سالهای بعد، با ظهور سایر لهجههای بیسیک، گویش اصلی کیمنی و کورتز به نام دارتموث بیسیک شناخته شد .
نیوهمپشایر این موفقیت را در سال 2019 به رسمیت شناخت، زمانی که یک نشانگر تاریخی بزرگراه در هانوفر ایجاد کرد که ایجاد "اولین زبان برنامه نویسی کاربرپسند" را توصیف می کند. [12]
ظهور BASIC به عنوان بخشی از یک حرکت گسترده تر به سمت سیستم های اشتراک زمانی صورت گرفت. این ایده برای اولین بار در اواخر دهه 1950 مفهومسازی شد، و در اوایل دهه 1960 به قدری در صنعت کامپیوتر مسلط شد که طرفداران آن از آیندهای صحبت میکردند که در آن کاربران «زمان را روی رایانه به همان روشی که خانوادههای معمولی برق و آب میخرند» صحبت میکردند. از شرکت های آب و برق". [13]
جنرال الکتریک که روی پروژه دارتموث کار کرده بود، سیستم عامل زیربنایی خود را نوشت و یک سیستم اشتراک زمانی آنلاین به نام Mark I راه اندازی کرد. این سیستم BASIC را به عنوان یکی از نقاط اصلی فروش خود معرفی کرد. سایر شرکتها در حوزه نوظهور به سرعت از این روش پیروی کردند. Tymshare SUPER BASIC را در سال 1968 معرفی کرد ، CompuServe نسخه ای را در DEC-10 در سال 1969 عرضه کرد، و در اوایل دهه 1970، BASIC تا حد زیادی در رایانه های اصلی همه منظوره عمومی شد . حتی IBM نیز در نهایت با معرفی VS-BASIC در سال 1973 به باشگاه پیوست .
اگرچه خدمات اشتراک زمانی با BASIC برای مدتی موفقیت آمیز بود، موفقیت گسترده ای که قبلاً پیش بینی شده بود، موفقیت آمیز نبود. ظهور مینی کامپیوترها در همان دوره، و به ویژه ریز کامپیوترهای ارزان قیمت در اواسط دهه 1970، به هر کسی اجازه داد تا به جای خرید زمان آنلاین که معمولاً به دلار در دقیقه پرداخت می شد، سیستم های خود را خریداری و اجرا کند. [ب] [15]
بیسیک، به دلیل ماهیت کوچک خود، به طور طبیعی برای انتقال به بازار مینی کامپیوترها که همزمان با خدمات اشتراک زمانی در حال ظهور بود، مناسب بود. این ماشینها حافظه اصلی کوچکی داشتند ، شاید در اصطلاح مدرن به اندازه 4 کیلوبایت، [c] و فاقد حافظه با کارایی بالا مانند هارد دیسکهایی بودند که کامپایلرها را کاربردی میکنند. در این سیستمها، BASIC معمولاً بهعنوان یک مفسر و نه یک کامپایلر بهدلیل نیاز کمتر آن به حافظه فعال، پیادهسازی میشود. [d]
یک مثال مهم HP Time-Shared BASIC بود که مانند سیستم اصلی دارتموث از دو کامپیوتر برای اجرای یک سیستم اشتراک زمانی استفاده می کرد. اولی، یک دستگاه رده پایین در سری HP 2100 ، برای کنترل ورودی کاربر و ذخیره و بارگذاری برنامه های آن ها بر روی نوار یا دیسک استفاده شد. دیگری، یک نسخه پیشرفته از همان ماشین زیربنایی، برنامه ها را اجرا کرد و خروجی تولید کرد. با هزینه ای در حدود 100000 دلار، می توان ماشینی داشت که قادر است بین 16 تا 32 کاربر را به طور همزمان کار کند. [16] این سیستم، همراه با HP 2000، اولین پلتفرم کوچکی بود که اشتراکگذاری زمانی را ارائه داد و یک موفقیت فوری بود، و HP را به سومین فروشنده بزرگ در فضای مینی کامپیوتر، پس از DEC و Data General (DG) تبدیل کرد. ). [17]
DEC، پیشرو در فضای مینی کامپیوتر از اواسط دهه 1960، در ابتدا بیسیک را نادیده گرفته بود. این به دلیل کار آنها با شرکت RAND بود که یک PDP-6 را برای اجرای زبان JOSS خود خریداری کرده بود که از نظر مفهومی بسیار شبیه به BASIC بود. [18] این امر باعث شد که DEC یک نسخه کوچکتر و پاک شده از JOSS به نام FOCAL را معرفی کند که در اواخر دهه 1960 به شدت آن را تبلیغ کرد. با این حال، با وجود سیستم های اشتراک زمانی که به طور گسترده بیسیک را ارائه می دهند، و تمام رقبای آنها در فضای مینی کامپیوتر نیز همین کار را می کند، مشتریان DEC برای بیسیک فریاد می زدند. پس از اینکه مدیریت بارها درخواستهای آنها را نادیده گرفت، دیوید اچ اهلل خرید یک BASIC برای PDP-8 را به عهده گرفت که موفقیت بزرگی در بازار آموزش بود. در اوایل دهه 1970، FOCAL و JOSS فراموش شده بودند و BASIC تقریباً در بازار مینی کامپیوتر جهانی شده بود. [19] DEC نسخه به روز شده خود، BASIC-PLUS را برای استفاده در سیستم عامل اشتراک زمانی RSTS/E معرفی کرد .
در این دوره، تعدادی بازی ساده مبتنی بر متن در بیسیک نوشته شد، که مهمترین آنها بازی Star Trek مایک میفیلد بود . دیوید اهل اینها را جمع آوری کرد، برخی از آنها را از FOCAL منتقل کرد و آنها را در یک خبرنامه آموزشی که خود گردآوری کرد منتشر کرد. او بعداً تعدادی از اینها را در قالب کتاب جمع آوری کرد، 101 بازی های رایانه ای BASIC ، که در سال 1973 منتشر شد . هنگامی که مدیریت از حمایت از این مفهوم امتناع کرد، اهل DEC را در سال 1974 ترک کرد و مجله کامپیوتری مهم را با نام Creative Computing تأسیس کرد . این کتاب محبوبیت خود را حفظ کرد و در چندین نوبت دوباره منتشر شد. [21]
معرفی اولین میکروکامپیوترها در اواسط دهه 1970 شروع رشد انفجاری برای BASIC بود. این مزیت را داشت که برای طراحان جوان و علاقهمندان به کامپیوتر که به میکروکامپیوترها علاقه داشتند و بسیاری از آنها BASIC را روی مینیفریمها یا مینفریمها دیده بودند، کاملاً شناخته شده بود. علیرغم قضاوت معروف دایکسترا در سال 1975، «تدریس برنامهنویسی خوب به دانشآموزانی که قبلاً در معرض بیسیک بودهاند، عملاً غیرممکن است . تعداد کمی از زبانهایی که هم سطح بالایی داشتند که برای کسانی که آموزش نمیدانند قابل استفاده بود و هم به اندازه کافی کوچک بودند که در ریز رایانههای آن روز جای بگیرند، و این زبان را به زبان برنامهنویسی استاندارد در میکروکامپیوترهای اولیه تبدیل کرد .
اولین نسخه میکروکامپیوتری بیسیک توسط بیل گیتس ، پل آلن و مونت دیویدوف برای شرکت تازه تاسیس آنها، Micro-Soft نوشته شد . [23] این توسط MITS در قالب نوار پانچ برای Altair 8800 اندکی پس از خود دستگاه منتشر شد ، [24] بلافاصله BASIC را به عنوان زبان اصلی میکروکامپیوترهای اولیه تثبیت کرد. اعضای باشگاه کامپیوتر Homebrew شروع به پخش نسخه هایی از این برنامه کردند که باعث شد گیتس نامه سرگشاده خود به علاقمندان را بنویسد و از این نمونه اولیه دزدی نرم افزاری شکایت کند .
باب آلبرشت تا حدی در پاسخ به نامه گیتس، و تا حدی برای ساختن یک BASIC کوچکتر که به طور مفید روی ماشین های 4 کیلوبایتی اجرا می شود، از دنیس آلیسون خواست تا تنوع زبان خود را بنویسد. نحوه طراحی و پیادهسازی نسخهای از یک مترجم برای زبان بیسیک در مقالههای آلیسون در سه شماره فصلنامه اول خبرنامه شرکت رایانه مردم منتشر شده در سال 1975 و پیادهسازیها با کد منبع منتشر شده در مجله Dr. Dobb's Journal پوشش داده شد. Tiny BASIC Calisthenics & Orthodontia: Running Light Without Overbyte . این منجر به طیف گستردهای از Tiny BASIC با ویژگیهای اضافه شده یا پیشرفتهای دیگر شد، که نسخههایی از Tom Pittman و Li-Chen Wang بهویژه شناخته شدهاند. [25]
Micro-Soft، در این زمان، مایکروسافت ، مفسر خود را برای MOS 6502 ، که به سرعت به یکی از محبوبترین ریزپردازندههای عصر 8 بیت تبدیل شد، منتقل کرد. هنگامی که میکروکامپیوترهای جدید شروع به ظهور کردند، به ویژه "تثلیث 1977" TRS-80 ، Commodore PET و Apple II ، آنها یا نسخه ای از کد MS را شامل می شدند، یا به سرعت مدل های جدیدی را با آن معرفی می کردند. کامپیوترهای شخصی Ohio Scientific نیز در آن زمان به این روند پیوستند. تا سال 1978، MS BASIC یک استاندارد واقعی بود و عملاً هر رایانه خانگی در دهه 1980 آن را در ROM گنجانده بود . پس از راه اندازی، یک مترجم BASIC در حالت مستقیم ارائه شد.
Commodore Business Machines شامل Commodore BASIC ، بر اساس Microsoft BASIC است. Apple II و TRS-80 هر کدام دو نسخه از BASIC دارند: یک نسخه مقدماتی کوچکتر با انتشار اولیه ماشین ها و یک نسخه مبتنی بر مایکروسافت که با افزایش علاقه به پلتفرم ها معرفی شد. با ورود شرکتهای جدید به این حوزه، نسخههای اضافی اضافه شد که خانواده بیسیک را به طرز ماهرانهای تغییر داد. کامپیوترهای 8 بیتی Atari از Atari BASIC 8 کیلوبایتی استفاده می کنند که از Microsoft BASIC مشتق نشده است. Sinclair BASIC در سال 1980 با Sinclair ZX80 معرفی شد و بعداً برای Sinclair ZX81 و Sinclair ZX Spectrum گسترش یافت . بیبیسی BBC BASIC را منتشر کرد که توسط Acorn Computers توسعه یافته است و کلمات کلیدی برنامهنویسی ساختاریافته و ویژگیهای ممیز شناور را در خود جای داده است .
با افزایش محبوبیت بیسیک در این دوره، مجلات کامپیوتری کد منبع کاملی را برای بازی های ویدیویی، ابزارهای کمکی و سایر برنامه ها در بیسیک منتشر کردند. با توجه به ماهیت ساده بیسیک، تایپ کد از مجله و اجرای برنامه کار ساده ای بود. مجلات مختلفی با برنامههایی برای رایانههای خاص منتشر شدند، اگرچه برخی از برنامههای بیسیک جهانی در نظر گرفته میشدند و میتوانستند در ماشینهایی که هر گونه از بیسیک را اجرا میکنند (گاهی با انطباقهای جزئی) استفاده شوند. کتابهای بسیاری از برنامههای تایپ نیز موجود بود، و بهویژه، اهل سنت نسخههای اصلی ۱۰۱ بازی بیسیک را که به گویش مایکروسافت تبدیل شده بود، منتشر کرد و آن را از Creative Computing بهعنوان بازیهای رایانهای بیسیک منتشر کرد . این کتاب و دنبالههای آن صدها برنامه آماده را ارائه میکنند که میتوان آنها را به راحتی به هر پلتفرم در حال اجرا BASIC تبدیل کرد. [20] [26] [27] این کتاب در سال 1978 به فروشگاهها رسید، درست زمانی که بازار رایانههای خانگی شروع به کار کرد، و اولین کتاب رایانهای با میلیونها فروش شد. بستههای بعدی، مانند Learn to Program BASIC نیز تمرکز مقدماتی را بر روی بازی خواهند داشت. مایکروسافت بیسیک ( MBASIC ) یکی از برنامههای کاربردی پیشرو در کامپیوترهای CP/M متمرکز بر کسبوکار که به زودی در محیطهای کسبوکار کوچک گسترده شد . [28]
در سال 1978، دیوید لین اولین نسخه کتاب راهنمای BASIC: An Encyclopedia of the BASIC Computer Language را منتشر کرد که کلمات کلیدی را در بیش از 78 رایانه مختلف مستند می کند. تا سال 1981، ویرایش دوم، کلمات کلیدی را از بیش از 250 رایانه مختلف مستند کرد که رشد انفجاری دوران میکروکامپیوتر را به نمایش گذاشت. [29]
زمانی که IBM مشغول طراحی رایانه شخصی آیبیام بود ، از الگوی رایانههای خانگی موجود در داشتن یک مفسر BASIC داخلی پیروی کرد. آنها این منبع را از مایکروسافت - IBM Cassette BASIC - تهیه کردند، اما مایکروسافت چندین نسخه دیگر از BASIC را برای MS-DOS / PC DOS از جمله IBM Disk BASIC (BASIC D)، IBM BASICA (BASIC A)، GW-BASIC (یک سازگار با BASICA) تولید کرد. نسخه ای که نیازی به رام IBM نداشت) [30] و QBasic ، همگی معمولاً با دستگاه همراه هستند. به علاوه آنها Microsoft BASIC Compiler را با هدف برنامه نویسان حرفه ای تولید کردند. Turbo Pascal -ناشر Borland Turbo Basic 1.0 را در سال 1985 منتشر کرد (نسخه های جانشین آن هنوز با نام PowerBASIC به بازار عرضه می شوند ). در سیستم های مشابه یونیکس ، پیاده سازی های تخصصی مانند XBasic و X11-Basic ایجاد شدند. [31] XBasic به مایکروسافت ویندوز به عنوان XBLite و انواع متقابل پلتفرم مانند SmallBasic ، yabasic ، Bywater BASIC ، [32] [33] nuBasic، [34] MyBasic، [35] Logic Basic، [36] Liberty BASIC منتقل شد . ، و wxBasic پدیدار شد. FutureBASIC و Chipmunk Basic در عین حال Apple Macintosh را هدف قرار دادند ، در حالی که yab نسخه ای از yaBasic است که برای BeOS ، ZETA و Haiku بهینه شده است . [37]
این تغییرات بعدی افزونههای زیادی را معرفی کردند، مانند دستکاری رشتهها و پشتیبانی گرافیکی، دسترسی به سیستم فایل و انواع دادههای اضافی . امکانات برنامه نویسی ساختاریافته از جمله ساختارهای کنترلی اضافی و برنامه های فرعی مناسب که از متغیرهای محلی پشتیبانی می کنند ، اهمیت بیشتری دارد . [38] با این حال، در نیمه دوم دهه 1980، کاربران به طور فزاینده ای از برنامه های کاربردی از پیش ساخته شده توسط دیگران به جای یادگیری برنامه نویسی استفاده می کردند. در حالی که برنامه نویسان حرفه ای اکنون طیف گسترده ای از زبان های پیشرفته تر را در رایانه های کوچک در دسترس داشتند. C و بعداً ++C به زبانهای انتخابی برای توسعه برنامههای حرفهای «shrink wrap» تبدیل شدند . [39] [40]
جایگاهی که BASIC همچنان پر میکرد، مربوط به توسعه بازیهای ویدیویی سرگرمکننده بود ، زیرا سیستمهای ساخت بازی و موتورهای بازی در دسترس هنوز در مراحل ابتدایی خود بودند. آتاری ST دارای STOS BASIC بود در حالی که آمیگا دارای AMOS BASIC برای این منظور بود. مایکروسافت ابتدا BASIC را برای توسعه بازی با DONKEY.BAS برای GW-BASIC و بعداً GORILLA.BAS و NIBBLES.BAS برای QuickBASIC به نمایش گذاشت . QBasic یک جامعه توسعه بازی فعال را حفظ کرد، [41] [42] که بعداً به تولید QB64 و FreeBASIC کمک کرد . [43] در سال 2013 یک بازی نوشته شده در QBasic و گردآوری شده با QB64 برای رایانه های مدرن با عنوان Black Annex در Steam منتشر شد . [44] [45] Blitz Basic ، Dark Basic ، SdlBasic ، Super Game System Basic، [46] PlayBASIC، [47] CoolBasic، [48] AllegroBASIC ، [49] ethosBASIC، [50] GLBasic و Basic4GL بیشتر این تقاضا را پر کردند، درست تا RCBasic مدرن، [51] NaaLaa، [52] AppGameKit ، [53] Monkey 2 و Cerberus-X. [54]
در سال 1991، مایکروسافت Visual Basic را معرفی کرد که یک توسعه تکاملی QuickBASIC بود . این شامل سازه هایی از آن زبان مانند دستورات کنترل ساختار بلوکی، زیر روال های پارامتری و تایپ استاتیک اختیاری و همچنین ساختارهای شی گرا از زبان های دیگر مانند "With" و "For Every" بود. این زبان تا حدی با پیشینیان خود سازگاری داشت، مانند کلمه کلیدی Dim برای اعلانها، "Gosub"/Return عبارات و شماره خطوط اختیاری که میتوان از آنها برای یافتن خطاها استفاده کرد. یک محرک مهم برای توسعه ویژوال بیسیک به عنوان زبان ماکرو جدید برای Microsoft Excel ، یک برنامه صفحه گسترده بود. در کمال تعجب بسیاری از مایکروسافت که هنوز در ابتدا آن را به عنوان زبانی برای علاقهمندان به بازار عرضه میکردند، این زبان مدت کوتاهی پس از انتشار VB نسخه 3.0 که به طور گسترده اولین نسخه نسبتاً پایدار محسوب میشود، برای برنامههای تجاری سفارشی کوچک مورد استفاده گسترده قرار گرفت. مایکروسافت همچنین آن را به عنوان Visual Basic for Applications و Embedded Visual Basic تقسیم کرد .
در حالی که بسیاری از برنامه نویسان پیشرفته هنوز استفاده از آن را مسخره می کردند، VB نیازهای کسب و کارهای کوچک را به طور کارآمد برآورده می کرد، زیرا در آن زمان، رایانه های دارای ویندوز 3.1 به اندازه ای سریع شده بودند که بسیاری از فرآیندهای مربوط به کسب و کار را می توان «در یک چشم به هم زدن» حتی با استفاده از آن تکمیل کرد. یک زبان "آهسته"، تا زمانی که حجم زیادی از داده درگیر نباشد. بسیاری از صاحبان مشاغل کوچک دریافتند که می توانند برنامه های کاربردی کوچک و در عین حال مفید خود را در چند شب برای رفع نیازهای تخصصی خود ایجاد کنند. در نهایت، در طول عمر طولانی VB3، دانش ویژوال بیسیک به یک مهارت شغلی قابل فروش تبدیل شد. مایکروسافت همچنین VBScript را در سال 1996 و ویژوال بیسیک دات نت را در سال 2001 تولید کرد. دومی اساساً قدرتی برابر با سی شارپ و جاوا دارد اما دارای نحوی است که زبان اصلی پایه را منعکس می کند و همچنین دارای برخی قابلیت های چند پلتفرمی از طریق پیاده سازی هایی مانند Mono-Basic است. . [55] IDE ، با سازنده رابط کاربری گرافیکی مبتنی بر رویداد ، بر دیگر ابزارهای توسعه سریع برنامههای کاربردی ، به ویژه دلفی Borland Software برای Object Pascal و فرزندان خود مانند Lazarus نیز تأثیرگذار بود . [56] [57]
پشتیبانی جریان اصلی برای نسخه نهایی 6.0 ویژوال بیسیک اصلی در 31 مارس 2005 به پایان رسید و پس از آن در مارس 2008 پشتیبانی گسترده شد . [60] در 2 فوریه 2017، مایکروسافت اعلام کرد که توسعه در VB.NET دیگر به موازات C# نخواهد بود، [61] و در 11 مارس 2020 اعلام شد که تکامل زبان VB.NET نیز نتیجه گیری کرد. [62] با این وجود، این زبان همچنان پشتیبانی میشد. [63]
بسیاری دیگر از گویش های بیسیک نیز از سال 1990 به وجود آمده اند، از جمله لهجه های متن باز QB64 و FreeBASIC با الهام از QBasic و RapidQ ، HBasic ، Basic For Qt و Gambas به سبک ویژوال بیسیک . [4] تجسم های تجاری مدرن عبارتند از PureBasic ، PowerBASIC ، Xojo ، Monkey X و True BASIC (جانشین مستقیم Dartmouth BASIC از یک شرکت تحت کنترل کورتز).
چندین مفسر ساده بیسیک مبتنی بر وب نیز اکنون وجود دارد، از جمله Small Basic مایکروسافت و wwwBASIC گوگل . [64] تعدادی کامپایلر نیز وجود دارند که BASIC را به جاوا اسکریپت تبدیل می کنند . [65] مانند NS Basic .
بر اساس تلاشهای قبلی مانند Mobile Basic ، [66] [67] بسیاری از گویشها اکنون برای گوشیهای هوشمند و تبلتها در دسترس هستند.
در کنسولهای بازی، برنامهای برای Nintendo 3DS و Nintendo DSi به نام Petit Computer امکان برنامهنویسی در نسخه کمی تغییر یافته BASIC با پشتیبانی از دکمه DS را فراهم میکند. نسخهای نیز برای نینتندو سوییچ منتشر شده است که نسخهای از Fuze Code System را نیز ارائه کرده است، [68] یک نوع BASIC [69] که برای اولین بار به عنوان یک ماشین سفارشی Raspberry Pi پیادهسازی شد . [70] قبلاً BASIC روی کنسولها بهعنوان Family BASIC (برای Nintendo Famicom ) و PSX Chipmunk Basic (برای PlayStation اصلی ) در دسترس بود ، در حالی که yabasic به PlayStation 2 و FreeBASIC به Xbox اصلی منتقل میشد .
انواع بیسیک بر روی نمودارها و ماشین حساب های قابل برنامه ریزی ساخته شده توسط Texas Instruments ( TI-BASIC )، HP (HP BASIC)، Casio ( Casio BASIC ) و دیگران موجود است.
QBasic ، نسخهای از Microsoft QuickBASIC بدون پیوند دهنده برای ساخت فایلهای EXE، در جریانهای Windows NT و DOS- Windows 95 سیستمعاملها وجود دارد و میتوان آن را برای نسخههای جدیدتر مانند Windows 7 که فاقد آنها هستند، دریافت کرد. قبل از DOS 5، مفسر Basic GW-Basic بود . QuickBasic بخشی از یک سری از سه زبان است که توسط مایکروسافت برای کاربران خانگی و اداری و توسعه حرفه ای در مقیاس کوچک صادر شده است. QuickC و QuickPascal دو مورد دیگر هستند. برای ویندوز 95 و 98 که به طور پیش فرض QBasic نصب نشده است، می توان آنها را از دیسک نصب کپی کرد، که دارای مجموعه ای از فهرست ها برای نرم افزارهای قدیمی و اختیاری است. سایر دستورات گم شده مانند Exe2Bin و سایرین در همین دایرکتوری ها هستند.
مجموعه های اداری مختلف مایکروسافت، لوتوس، و کورل و محصولات مرتبط با ویژوال بیسیک به هر شکلی قابل برنامه ریزی هستند، از جمله LotusScript که بسیار شبیه به VBA 6 است. شبیه ساز ترمینال Host Explorer از WWB به عنوان یک زبان ماکرو استفاده می کند. یا اخیراً برنامه و مجموعه ای که در آن موجود است در یک نوع Basic داخلی که به نام Hummingbird Basic شناخته می شود قابل برنامه ریزی است. نوع VBScript برای برنامه نویسی محتوای وب، Outlook 97، Internet Explorer و Windows Script Host استفاده می شود. WSH همچنین دارای یک موتور Visual Basic for Applications (VBA) است که به عنوان سومین موتور پیشفرض به همراه VBScript، JScript و چندین موتور اختصاصی یا منبع باز نصب شده است که میتوانند مانند PerlScript ، چند موتور مبتنی بر Rexx، Python نصب شوند. ، روبی، Tcl، دلفی، XLNT، PHP، و دیگران. به این معنی که دو نسخه Basic را می توان به همراه سایر زبان های ذکر شده و همچنین LotusScript در یک فایل WSF از طریق مدل شیء کامپوننت و سایر ساخت های WSH و VBA استفاده کرد. VBScript یکی از زبان هایی است که توسط پوسته های پیشرفته 4Dos، 4NT و Take Command قابل دسترسی است. SaxBasic و WWB نیز بسیار شبیه به خط Visual Basic از پیاده سازی های Basic هستند. زبان ماکرو Pre-Office 97 برای Microsoft Word با نام WordBASIC شناخته می شود . اکسل 4 و 5 از خود ویژوال بیسیک به عنوان یک زبان ماکرو استفاده می کنند. Chipmunk Basic ، یک مترجم قدیمی شبیه به BASIC های دهه 1970، برای Linux ، Microsoft Windows و macOS در دسترس است .
فراگیر بودن مفسرهای BASIC در رایانههای شخصی به حدی بود که کتابهای درسی زمانی شامل تمرینهای ساده "Try It In BASIC" بودند که دانشآموزان را تشویق میکرد تا مفاهیم ریاضی و محاسباتی را روی رایانههای کلاس درس یا خانه آزمایش کنند. مجلات کامپیوتری رایج آن روز معمولاً شامل برنامههای تایپ میشدند .
دیوید برین ، آیندهنگر و نویسنده علمی تخیلی، در سال 2006 در مقاله سالون [71] از دست دادن BASIC فراگیر، عزادار شد، همانطور که دیگرانی که برای اولین بار در این دوره از رایانه استفاده کردند، سوگواری کردند. به نوبه خود، مقاله مایکروسافت را بر آن داشت تا Small Basic را توسعه و منتشر کند . [72] همچنین پروژه های مشابهی مانند Basic-256 [73] [74] و کاملاً پایه مبتنی بر وب را الهام گرفت. [ 75] دارتموث جشن پنجاهمین سالگرد بیسیک را در 1 می 2014 برگزار کرد . [77]
کالج دارتموث پنجاهمین سالگرد زبان بیسیک را با یک روز رویداد [78] در 30 آوریل 2014 جشن گرفت. یک فیلم مستند کوتاه برای این رویداد تولید شد. [79]
LET
LET
اختیاری است و خطی که هیچ کلمه کلیدی قابل شناسایی دیگری ندارد، کلمه کلیدی را LET
.DATA
READ
DATA
عبارت می خواند و آن را به یک متغیر اختصاص می دهد. یک اشاره گر داخلی آخرین DATA
عنصر خوانده شده را ردیابی می کند و با هر کدام یک موقعیت به جلو می برد READ
. اکثر گویش ها به متغیرهای متعدد به عنوان پارامتر اجازه می دهند که چندین مقدار را در یک عملیات واحد بخوانند.RESTORE
DATA
عبارت اول بازنشانی می کند و به برنامه اجازه می دهد READ
از مقدار اول شروع به کار کند. بسیاری از گویش ها به یک شماره خط یا مقدار ترتیبی اختیاری اجازه می دهند تا نشانگر به مکان انتخابی بازنشانی شود.DIM
IF ... THEN ... {ELSE}
THEN
. ELSE
به خصوص در نسخه های قبلی به طور گسترده پشتیبانی نمی شد.FOR ... TO ... {STEP} ... NEXT
WHILE ... WEND
وREPEAT ... UNTIL
DO ... LOOP {WHILE}
یا{UNTIL}
WHILE
, این کلمات کلیدی بیشتر در گویش های بعدی یافت می شوند.GOTO
GO TO
.GOSUB ... RETURN
RETURN
دستوری برسد، که در آن به دستور زیر باز میگردد GOSUB
، یا بعد از دو نقطه یا در خط بعدی. این برای پیاده سازی زیربرنامه ها استفاده می شود .ON ... GOTO/GOSUB
DEF FN
DEF FND(x) = x*x
در ابتدای برنامه. نام توابع در ابتدا محدود به FN به اضافه یک حرف بود، یعنی FNA، FNB...LIST
PRINT
INPUT
TAB
PRINT
برای تعیین موقعیتی که کاراکتر بعدی روی صفحه نمایش داده می شود یا روی کاغذ چاپ می شود استفاده می شود . AT
یک فرم جایگزین است.SPC
TAB
اما به جای حرکت به یک ستون مشخص، با تعدادی فاصله اضافی از ستون فعلی حرکت می کند.ABS
ATN
COS
EXP
INT
LOG
RND
SIN
SQR
TAN
REM
USR
("روال قابل سرویس توسط کاربر")CALL
USR
در برخی از گویش ها یافت می شود. برای تکمیل نحو تابع مانند نیازی به پارامتر مصنوعی ندارد USR
و روشی واضح برای فراخوانی روال های مختلف در حافظه دارد.TRON
/ TROFF
ASM
نسخه های حداقلی بیسیک فقط دارای متغیرهای عدد صحیح و نام متغیرهای یک یا دو حرفی بودند که نیاز به حافظه محدود و گران قیمت (RAM) را به حداقل می رساند. نسخههای قویتر دارای محاسبات ممیز شناور بودند و متغیرها را میتوان با نامهایی با طول شش کاراکتر یا بیشتر برچسبگذاری کرد. برخی مشکلات و محدودیتها در اجرای اولیه وجود داشت. برای مثال، Applesoft BASIC به نام متغیرها اجازه میدهد که چندین کاراکتر داشته باشند، اما فقط دو کاراکتر اول مهم بودند، بنابراین میتوان برنامهای با متغیرهای "LOSS" و "LOAN" نوشت که به عنوان یکسان در نظر گرفته میشد. تخصیص یک مقدار به "LOAN" به صورت بی صدا مقدار در نظر گرفته شده به عنوان "LOSS" را بازنویسی می کند. کلمات کلیدی را نمی توان در متغیرها در بسیاری از BASIC های اولیه استفاده کرد. "SCORE" به عنوان "SC" یا "E" تفسیر می شود، جایی که OR یک کلمه کلیدی است. متغیرهای رشته معمولاً در بسیاری از گویشهای ریز رایانه با پسوند $ به عنوان یک علامت متمایز میشوند ، و مقادیر اغلب بهعنوان رشتهها با محدود شدن با علامتهای «کوتیشن دوگانه» مشخص میشوند. آرایه ها در BASIC می توانند شامل اعداد صحیح، ممیز شناور یا متغیرهای رشته ای باشند.
برخی از گویشهای BASIC از ماتریسها و عملیات ماتریسی پشتیبانی میکنند که میتوان از آنها برای حل مجموعهای از معادلات جبری خطی همزمان استفاده کرد. این گویشها مستقیماً از عملیات ماتریسی مانند تخصیص، جمع، ضرب (انواع ماتریس سازگار) و ارزیابی یک تعیینکننده پشتیبانی میکنند. بسیاری از میکروکامپیوترهای BASIC از این نوع داده پشتیبانی نمیکنند. عملیات ماتریسی هنوز امکان پذیر بود، اما باید به صراحت بر روی عناصر آرایه برنامه ریزی می شد.
برنامه نویسان BASIC جدید در رایانه خانگی ممکن است با یک برنامه ساده شروع کنند، شاید از عبارت PRINT زبان برای نمایش یک پیام بر روی صفحه استفاده کنند. یک نمونه معروف و اغلب تکراری، کرنیگان و ریچی " سلام، دنیا!" برنامه :
10 چاپ "سلام، جهان!" 20 پایان
می توان از یک حلقه بی نهایت برای پر کردن صفحه نمایش با پیام استفاده کرد:
10 چاپ "سلام، جهان!" 20 برو 10
توجه داشته باشید که END
عبارت اختیاری است و در اکثر گویش های بیسیک هیچ عملی ندارد. همانطور که در این مثال وجود دارد همیشه شامل نمی شد. همین برنامه را می توان برای چاپ تعداد ثابتی از پیام ها با استفاده از FOR...NEXT
عبارت رایج تغییر داد:
10 LET N = 10 20 FOR I = 1 TO N 30 PRINT "Hello, World!" 40 بعدی من
اکثر رایانههای خانگی نسخههای BASIC، مانند MSX BASIC و GW-BASIC ، از انواع دادههای ساده، چرخههای حلقه و آرایهها پشتیبانی میکنند. مثال زیر برای GW-BASIC نوشته شده است، اما در اکثر نسخه های BASIC با حداقل تغییرات کار می کند:
10 INPUT "نام شما چیست: " ; 20 دلار آمریکا چاپ "سلام" ; U$ 30 INPUT "چند ستاره می خواهید: " ; N 40 S$ = "" 50 FOR I = 1 TO N 60 S$ = S$ + "*" 70 NEXT I 80 PRINT S$ 90 INPUT "آیا ستاره های بیشتری می خواهید؟ " ; A$ 100 IF LEN ( A$ ) = 0 سپس برو 90 110 A$ = LEFT$ ( A$ , 1 ) 120 IF A$ = "Y" OR A$ = "y" سپس برو 30 130 PRINT "Goodbye" ; 140 دلار آمریکا پایان
گفتگوی حاصل ممکن است شبیه به این باشد:
اسمت چیه: مایکسلام مایکچند ستاره می خواهید: 7*******آیا ستاره های بیشتری می خواهید؟ بلهچند ستاره می خواهید: 3***آیا ستاره های بیشتری می خواهید؟ نهخداحافظ مایک
Dartmouth Basic اصلی در داشتن یک کلمه کلیدی ماتریسی، MAT، غیرمعمول بود. [f] اگرچه توسط اکثر مشتقات ریزپردازنده بعدی پیاده سازی نشده است، اما در این مثال از کتابچه راهنمای سال 1968 [83] استفاده شده است که میانگین اعداد ورودی را نشان می دهد:
5 اجازه دهید S = 0 10 MAT ورودی V 20 اجازه دهید N = عدد 30 اگر N = 0 سپس 99 40 برای I = 1 تا N 45 اجازه دهید S = S + V ( I ) 50 بعدی I 60 PRINT S / N 70 برو به 5 99 پایان
BASIC های نسل دوم (به عنوان مثال، VAX Basic ، SuperBASIC ، True BASIC ، QuickBASIC ، BBC BASIC ، Pick BASIC ، PowerBASIC ، Liberty BASIC ، QB64 و (مطمئنا) COMAL ) تعدادی ویژگی را به زبان معرفی کردند که عمدتاً به ساختار مربوط می شوند. برنامه نویسی رویه محور معمولاً شمارهگذاری خطوط از زبان حذف میشود و با برچسبها (برای GOTO ) و روشهایی جایگزین میشود تا طراحی آسانتر و انعطافپذیرتر را تشویق کند. [38] علاوه بر این، کلمات کلیدی و ساختارهایی برای پشتیبانی از تکرار، انتخاب و رویهها با متغیرهای محلی معرفی شدند.
مثال زیر در مایکروسافت QuickBASIC است:
مثال REM QuickBASICاعلام REM Forward - به کد اصلی اجازه میدهد تا یک زیرروال REM را فراخوانی کند که بعداً در کد منبع تعریف شده است DECLARE SUB PrintSomeStars ( StarCount! ) برنامه اصلی REM به دنبال INPUT "نام شما چیست: " , UserName$ PRINT "Hello" ; نام کاربری$ DO INPUT "چند ستاره می خواهید: " , NumStars CALL PrintSomeStars ( NumStars ) DO INPUT "آیا ستاره های بیشتری می خواهید؟ " , Answer$ حلقه تا پاسخ$ <> "" Answer$ = LEFT$ ( پاسخ$ , 1 ) LOOP WHILE UCASE$ ( Answer$ ) = "Y" PRINT "Goodbye" ; نام کاربری$ END تعریف زیربرنامه REM SUB PrintSomeStars ( StarCount ) REM این روش از یک متغیر محلی به نام Stars$ Stars$ = STRING$ ( StarCount , "*" ) PRINT Stars$ END SUB استفاده می کند
گویش های نسل سوم بیسیک مانند Visual Basic ، Xojo ، Gambas ، StarOffice Basic ، BlitzMax و PureBasic ویژگی هایی را برای پشتیبانی از پارادایم برنامه نویسی شی گرا و رویداد محور معرفی کردند . اکثر رویهها و توابع داخلی اکنون بهعنوان روشهای اشیاء استاندارد به جای عملگرها نشان داده میشوند . همچنین، سیستم عامل به طور فزاینده ای در دسترس زبان بیسیک قرار گرفت.
مثال زیر در ویژوال بیسیک دات نت است :
ماژول عمومی StarsProgram عملکرد خصوصی Ask ( prompt As String ) As String Console . نوشتن ( اعلان ) کنسول بازگشت . تابع ReadLine () پایان Public Sub Main () Dim userName = Ask ( "What is your name: " ) Console . WriteLine ( "سلام {0}" ، نام کاربری ) پاسخ کم نور به عنوان رشته Dom numStars = CINT ( Ask ( "چند ستاره می خواهید:" ) ) Dim stars As New String ( "*"c , numStars ) Console . WriteLine ( ستاره ) پاسخ دهید = بپرسید ( "آیا ستاره های بیشتری می خواهید؟" ) حلقه تا پاسخ <> "" حلقه در حالی که پاسخ دهید . StartsWith ( "Y" ، StringComparison . OrdinalIgnoreCase ) کنسول . WriteLine ( "خداحافظ {0}" ، نام کاربری ) پایان ماژول پایان فرعی
continue
برای این منظور یک علامت داشت، اما هنوز باید شماره خط را وارد کنید.در طول دهه 1980، کامپایلرهای C به طور گسترده ای گسترش یافتند و C به یک زبان بسیار محبوب تبدیل شد.
Borland Delphi را وارد کنید که Object Pascal را با یک فرم ساز بصری VB مانند ترکیب می کند. آبجکت پاسکال زبان خود بورلند با پشتیبانی کامل از وراثت بود. به حروف بزرگ و کوچک حساس نیست و برای کدنویسی خیلی سخت تر از VB نیست، زمانی که به تایپ کردن عادت کردید، خیلی شروع می شود و به پایان می رسد (تقریباً معادل پرانتزهای فرفری در C). برخلاف VB، عملگرهای متفاوتی برای انتساب (:=) و مقایسه (=) دارد.
از طرف دیگر، میتوان روزهای کل رقابت بیسیک/پاسکال با لازاروس سازگار با دلفی را دوباره زنده کرد.
اکنون من در مورد زبان های دیگری شنیده ام که ظاهراً توسعه را بدون توسل به جاوا امکان پذیر می کنند، زبان هایی مانند CellularBASIC (که کمی شبیه QBASIC به نظر می رسد) و Hecl (که به نظر می رسد بر اساس Tcl است).
پس از کمی تحقیق در نت، با این سایت در مورد CellularBASIC برخوردم. این یک مفسر کامل بیسیک است که به زبان جاوا نوشته شده است.
مقالهای که الهامبخش BASIC-256 است، «چرا جانی نمیتواند کدنویسی کند» را بررسی کنید.
{{cite web}}
: CS1 maint: نام های عددی: فهرست نویسندگان ( پیوند )