Кіріспе
OpenVMS операциялық жүйесі үшін жасалған BASIC диалектісі, бұрын HP BASIC for OpenVMS деп белгілі болған, Digital Equipment Corporation (DEC) құрамында жасалған және қазір VMS Software Incorporated (VSI) меншігіндегі BASIC бағдарламалау тілінің диалектісі үшін соңғы атауы – VSI BASIC for OpenVMS. Ол бастапқыда 1970 жылдары PDP 11 миникомпьютеріндегі RSTS 11 операциялық жүйесі үшін BASIC PLUS ретінде әзірленген. Кейін VAX, содан кейін Alpha және ең соңғыда Integrity жүйелеріне OpenVMS-ке көшірілді. Бұл өнімнің бұрынғы атаулары: BASIC PLUS, Basic Plus 2 (BP2 немесе BASIC Plus 2), VAX BASIC, DEC BASIC, Compaq BASIC for OpenVMS және HP BASIC for OpenVMS. Сондай-ақ, жабдық платформасын (VAX, AlphaServer және т.б.) көрсететін атаулардың әртүрлі нұсқалары бар.
VSI BASIC for OpenVMS is the latest name for a dialect of the BASIC programming language created by Digital Equipment Corporation (DEC) and now owned by VMS Software Incorporated (VSI). It was originally developed as BASIC PLUS in the 1970s for the RSTS 11 operating system on the PDP 11 minicomputer. It was later ported to OpenVMS, first on VAX, then Alpha, and most recently Integrity. Past names for the product include: BASIC PLUS, Basic Plus 2 (BP2 or BASIC Plus 2), VAX BASIC, DEC BASIC, Compaq BASIC for OpenVMS and HP BASIC for OpenVMS. Multiple variations of the titles noting the hardware platform (VAX, AlphaServer, etc.) also exist.
Ерекше белгілері
VSI BASIC-те FORTRAN сияқты көптеген кеңейтімдер бар, сонымен қатар бастапқы Dartmouth BASIC матрицалық операторларын қолдайды. "ERL" функциясы болмаса, жол нөмірлері міндетті емес. Бұл сізге қорғалған операторлардың айналасына "WHEN ERROR" қателіктерді өңдеушілерді орнатуға мүмкіндік береді. Көбінесе қолданылатын, бірақ одан әдемірақ емес "ON ERROR" операторы мұндай контекстке немесе ауқымға ие емес. VSI BASIC-тің ең көзге түсетін мүмкіндіктерінің бірі – OpenVMS жүйесінің қуатты Record Management Services (RMS) қызметтерін қолдау. VAX BASIC-тің шығарылымына дейін RMS қолдауы тек DEC компаниясының COBOL компиляторында ғана қолжетімді болды.
Тарих
VSI BASIC for OpenVMS өнімінің тарихы 30 жылдан астамды қамтиды, және осы кезеңде ол көптеген атаулар мен меншік иесінің ауысуларын бастан өткерді. Сондай-ақ, ол DEC, Compaq, HP және VSI компаниялары жаңа платформаларды әзірлеген сайын, оларға көшірілді. Компанияның және/немесе платформаның атауы жиі өнімнің атына қосылып, атаулардың көптелуіне себеп болды.
BASIC-PLUS
VSI BASIC BASIC PLUS ретінде басталып, DEC компаниясының RSTS 11 операциялық жүйесі және PDP 11 миникомпьютері үшін жасалған. Бағдарламалау тілінің операторларын тікелей командалық интерпретаторға енгізуге немесе мәтіндік редакторға кіргізіп, файлға сақтауға және содан кейін файлдан командалық интерпретаторға жүктеуге болады. Бастапқы кодтағы қателер жол енгізілгеннен кейін дереу пайдаланушыға хабарланды. Бағдарламалар "SAVE" командасын пайдаланып бастапқы файл ретінде сақталды. "COMPILE" командасын пайдаланып, оларды өңдеуге болмайтын екілік файлға "компиляциялауға" болады. Бұл команда нағыз машиналық тілдегі бағдарламаларды емес, "токендер" деп аталатын байттық кодты жасады. Токендер орындалған кезде, қазіргі заманғы Java сияқты түсіндірілді. Командалық интерпретаторға бағдарламалар 1-ден 32767-ге дейінгі бүтін сандармен басталатын жол нөмірлерімен енгізілді. Жолдарды бірнеше жолға жалғастыру үшін жол беру символын пайдалануға болады. Бастапқы файлды сыртқы редакциялауды жеңілдету үшін BASIC PLUS-тің кейінгі нұсқалары & символын жол жалғастыру символы ретінде пайдалануға мүмкіндік берді. Бірнеше операторларды бір жолда, оператордың ажырату белгісі ретінде пайдалануға болады. Виртуалды жады бар PDP 11 жүйелерінде (RSTS/E) адрестік кеңістік шамамен 64 КБ-қа дейін шектелген. BASIC PLUS-пен бірге, осының шамамен жартысы командалық интерпретатор мен орындалу уақыты кітапханасы үшін пайдаланылды. Бұл пайдаланушы бағдарламаларын 32 КБ жадқа шектеді. Ескі RSTS 11 жүйелерінде виртуалды жад болмағандықтан, пайдаланушы бағдарламасы RSTS және BASIC PLUS өз үлесін алғаннан кейін қалған физикалық жадқа сыйып келуі керек болды. Мысалы, 32 КБ физикалық жады бар PDP 11/35-те, RSTS 11 V04B 17 іске қосылғанда, пайдаланушы бағдарламалары 7 КБ-қа дейін шектелді. Үлкен бағдарламаларды "CHAIN" командасын пайдаланып әртүрлі бөліктерге бөлуге болады. Бағдарламалар екінші бағдарламадағы нақты жол нөмірлеріне тізбектеле алады. Ортақ жад бөлімі, "core common" деп аталатын, бағдарламаларға қажет болған жағдайда бір-біріне деректерді беруге мүмкіндік берді; дискідегі файлдар да қолданылуы мүмкін, бірақ олар баяу болды. Интерпретаторда таспа деректері мен байттық код үшін пайдаланылатын қоқыс жинаушы жад менеджері болды. Іске қосылған бағдарламаны тоқтатып, айнымалыларды қарап, өзгертіп, содан кейін қайта іске қосуға болады. Басқа жоғары деңгейдегі тілдерде қолданылатын көптеген басқару құрылымдары BASIC PLUS-та да болды, соның ішінде WHILE және UNTIL. Тіл сондай-ақ бір жолда шартты модификаторларды қолдануға мүмкіндік берді. Мысалы, "" жолы "I" айнымалысының мәнін, егер I 10-нан кіші болмаса, басып шығарады.
BASIC Plus 2 (Баслық плюс 2)
Basic Plus 2 (BP2 немесе BASIC Plus 2) кейіннен DEC компаниясы қосымша мүмкіндіктерді қосу және өнімділікті арттыру үшін әзірледі. Ол нақты компиляцияны тізбекті кодқа қолданды және нәтижесін машина тіліндегі объектілік файлдарға жазды. Бұл файлдар жүйедегі басқа объектілік файлдармен үйлесімді болды және кітапханаларға біріктірілуі мүмкін. Содан кейін linker (TKB taskbuilder) олардың негізінде орындалатын файлдарды жасады. TKB жапсырмаларды да қолдады, бұл жеке процедураларды қажет болған кезде негізгі жад кеңістігіне ауыстыруға мүмкіндік берді. BP2 бағдарламалары RSX 11 немесе RSTS/E жүйесіндегі RSX Run Time System арқылы жұмыс істеді. Бұл RTS пайдаланушының жад кеңістігінен бастап 8 КБ (кейін 2 КБ) орын алып, пайдаланушы бағдарламасына 56 КБ қалдырды. Бұл екі фактор жеке BP2 бағдарламаларының BASIC PLUS бағдарламаларына қарағанда әлдеқайда үлкен болуына мүмкіндік берді, көбінесе тізбектеу қажеттілігін жойды. BASIC PLUS-тен (ол тек RSTS 11 жүйесінде қолжетімді болды) айырмашылығы, BP2 RSX 11 операциялық жүйесінде де қолданылуы мүмкін болды.
VAX BASIC және DEC BASIC
VAX миникомпьютері жасалғаннан бастап, DEC компаниясы BASIC PLUS 2 бағдарламасын жаңа VMS операциялық жүйесіне көшіріп, VAX BASIC деп атады. VAX BASIC стандартты VMS шақыру стандарттарын пайдаланды, сондықтан VAX BASIC арқылы жасалған объектілік кодты VMS тілдерінің кез келгені арқылы жасалған объектілік кодпен байланыстыру мүмкін болды. BASIC Plus 2 бастапқы коды көбінесе VAX BASIC-те елеулі өзгерістерсіз жұмыс істеді. DEC өзінің Alpha микропроцессорын жасағанда, VMS оған бейімделді және OpenVMS деп аталды. VAX BASIC де Alpha-ға көшіріліп, DEC BASIC деп қайта аталды. Осы кезде BASIC интерпретаторы толығымен қолданудан шығарылды, яғни DEC BASIC бағдарламаларын тек компиляциядан кейін байланыс арқылы жасалған OpenVMS атқарылатын файлдары ретінде ғана іске қосуға болады.
Compaq, HP және VSI
1997/98 жылы DEC компаниясын Compaq сатып алғаннан кейін, өнімдер Compaq BASIC OpenVMS VAX және Compaq BASIC OpenVMS Alpha деп қайта аталды. Сол сияқты, Compaq 2001/02 жылы HP-мен біріккен кезде, өнімдер HP BASIC OpenVMS VAX және HP BASIC OpenVMS AlphaServer деп қайта аталды. HP кейіннен Intel Itanium процессорларына негізделген Integrity серверлік платформалары үшін HP BASIC OpenVMS Integrity шығарды. 2014 жылдың ортасында HP OpenVMS экожүйесін VSI компаниясына сатты, ол өнімді VSI BASIC OpenVMS деп атады.
Үлгі коды
VSI BASIC — BASIC-тің құрылымдық түрі, онда жол нөмірлері міндетті емес, ал тіл SUB процедуралары мен FUNCTION функцияларын қолдайды.