Топ питань
Часова шкала
Чат
Перспективи

Microsoft BASIC

діалект мови програмування Бейсик З Вікіпедії, вільної енциклопедії

Remove ads

Microsoft BASIC — це серія інтерпретаторів мови програмування BASIC, розроблених компанією Microsoft у 1970–1980-х роках. Вони були одними з найпоширеніших засобів програмування для перших персональних комп’ютерів і входили до складу ПЗ багатьох моделей як у вигляді окремих програм, так і у вбудованому ПЗП.

Коротка інформація Дата появи, Творці ...

Перша версія — Altair BASIC, створена для мікрокомп’ютера Altair 8800 — стала водночас і першим продуктом компанії Microsoft. Написаний Біллом Гейтсом і Полом Алленом у 1975 році, цей інтерпретатор поклав початок лінійці Microsoft BASIC, яку згодом було адаптовано для десятків платформ: від Commodore BASIC і AppleSoft BASIC до GW-BASIC, QBasic і Visual Basic.

Remove ads

Altair BASIC та створення Microsoft

Узагальнити
Перспектива
Thumb
Комп'ютер Altair 8800 зібраний зі збірного набору з популярним телетайпом Model 33 ASR (автоматичне надсилання та отримання) як терміналом, зчитувачем паперової стрічки та перфоратором паперової стрічки

Першою реалізацією мови BASIC від Microsoft став Altair BASIC, розроблений у 1975 році Біллом Гейтсом та Полом Алленом для мікрокомп’ютера Altair 8800. Розробка велася на мейнфреймі PDP-10, де вони створили емулятор процесора Intel 8080, аби писати та тестувати код, не маючи доступу до самого Altair.

Основою для синтаксису Altair BASIC став діалект BASIC-PLUS, який використовувався на комп’ютерах PDP-11 компанії DEC. Початкова версія підтримувала лише цілочисельну арифметику, однак завдяки інженеру Монте Девідоффу, який створив бібліотеку чисел з плаваючою комою, була реалізована підтримка дійсних чисел. Цей формат отримав назву Microsoft Binary Format.

Особливості

Altair BASIC мав багато рис, запозичених із BASIC-PLUS, зокрема:

  • використання символів % для цілих чисел і $ для рядків,
  • розділення операторів у рядку за допомогою :,
  • обробку файлів за допомогою FIELD, GET, PUT, LSET, RSET,
  • доступ до файлів за допомогою дескрипторів #,
  • підтримку прямого доступу до файлів,
  • по-рядкове редагування програм через команду EDIT.

Ранні версії та розширення

Початкова версія Altair BASIC уміщувалася в 4 КБ пам’яті та підтримувала обмежений набір команд. У цій версії не було підтримки рядків, а змінні могли мати лише одно- або дволітерні імена. Подальші розширення додали:

  • підтримку рядкових змінних та функцій роботи з рядками (MID$, LEFT$, RIGHT$),
  • визначення змінних різного типу (% — цілі, ! — одиничної точності, # — подвійної точності),
  • арифметику з плаваючою комою,
  • більш інформативні повідомлення про помилки,
  • підтримку користувацьких функцій (DEF FN),
  • оператори IF...THEN...ELSE, ON...GOTO, ON...GOSUB.

У 12-КБ версії BASIC підтримувались 64-бітові дійсні числа, що було суттєвим покращенням над ранніми 32-бітовими.

Поширення на інші архітектури

На базі Altair BASIC компанія Microsoft створила універсальне ядро, яке пізніше було портовано на інші процесори:

Ці варіанти стали основою для багатьох домашніх комп’ютерів 1970–80-х років. Незалежно від платформи, більшість програм, написаних на Microsoft BASIC, були взаємно сумісними.

Remove ads

Ліцензування Microsoft BASIC для домашніх комп’ютерів

Узагальнити
Перспектива

Успіх Altair BASIC започаткував новий напрямок у бізнесі Microsoft — ліцензування BASIC для інших виробників комп’ютерів. Упродовж кінця 1970-х і всього 1980-х років компанія уклала десятки контрактів на постачання адаптованих версій BASIC для найрізноманітніших систем.

Більшість таких версій вшивалися у постійну пам’ять (ПЗП) комп’ютерів, тож BASIC автоматично завантажувався при ввімкненні пристрою. Таким чином, мова програмування фактично ставала частиною операційного середовища машини, доступною одразу з командного рядка (запитом на кшталт READY).

Унікальна модель розробки

В ті часи будь який програмний продукт доводилось вручну адаптувати до різних архітектур процесорів, що потребувало значних витрат часу. Microsoft же централізовано підтримувала кодову базу BASIC та адаптувала її до десятків процесорів і архітектур. Для цього вона використовувала систему умовної компіляції[1], яка дозволяла з однієї кодової бази згенерувати інтерпретатор для:

Весь процес проходив на комп’ютері DECsystem-20, який Microsoft використовувала для крос-компіляції.

Масштабне поширення

До 1981 року Microsoft BASIC був настільки популярним, що навіть компанії, які мали власні реалізації мови, ліцензували Microsoft BASIC заради сумісності. Наприклад:

  • IBM придбала ліцензію для використання BASIC у своєму IBM PC, попри наявність альтернатив;
  • Atari одночасно постачала Atari Microsoft BASIC і власний Atari BASIC;[2]
  • Commodore отримала безстрокову ліцензію на BASIC за одноразову оплату, що дозволяло їм вільно його модифікувати.

Дон Естридж з IBM з цього приводу сказав:[3]

«Microsoft BASIC має сотні тисяч користувачів по всьому світу. Як ти можеш посперечатися з цим?»

Універсальні й OEM-версії

Microsoft також випускала власні версії BASIC для:

  • операційної системи CP/M — як MBASIC;
  • клонів IBM PC — GW-BASIC, що був аналогом IBM Advanced BASIC (BASICA), але не потребував ROM-модуля;[4]
  • менш відомих систем, зокрема Laser 128 (аналог Apple IIc), що отримав варіант, сумісний з AppleSoft BASIC.[5]

Цей підхід дозволив Microsoft BASIC стати де-факто стандартом серед мов програмування для персональних комп’ютерів свого часу.

Extended BASIC-80 та спеціалізовані версії

Після створення базової 8-КБ версії Microsoft BASIC для процесора Intel 8080, компанія розпочала розробку розширених варіантів для конкретних клієнтів та платформ. Один з таких варіантів отримав назву Extended BASIC-80 — універсальна модифікація, що включала підтримку додаткових команд, удосконалені засоби роботи з рядками, змінними та масивами.

Цей варіант ліцензували кілька виробників, серед яких:

  • Tangerine Microtan 65 (британський комп’ютер початку 1980-х),
  • Spectravideo SV-318 та SV-328 (домашні комп’ютери з графічними розширеннями),
  • NCR — для терміналу введення даних NCR 7200 VI, де використовувався варіант з назвою BASIC Plus 6.[6]

Розробкою деяких таких адаптацій вже займалися перші наймані співробітники Miscrosoft. Наприклад, NCR-версію Extended BASIC-80 адаптував програміст Марк Макдональд у 1976–1977 роках.

Disk BASIC-80 (Дискові версії для CP/M)

Для популярної операційної системи CP/M-80 Microsoft випустила дискову версію BASIC під назвою MBASIC. Цей варіант був апаратно-незалежним і широко застосовувався на Z80-комп’ютерах, що працювали під CP/M.

Хоча MBASIC мав менший функціональний набір, ніж спеціалізовані варіанти, він забезпечував базову сумісність із іншими реалізаціями Microsoft BASIC. Наприклад, CP/M-карта для Apple II містила адаптований MBASIC, який частково підтримував графічні команди з AppleSoft BASIC (такі як HPLOT), хоч і не в повному обсязі.

Standalone Disk BASIC-80

Першу реалізацію Microsoft BASIC з підтримкою файлової системи FAT було створено не для IBM PC, а ще у 1977–1978 роках — для терміналів на базі Intel 8080, випущених компанією NCR (моделі 7200, 7520, 7530). Ця версія отримала назву Standalone Disk BASIC-80 і підтримувала 8-дюймові дисководи.

Саме тут було вперше реалізовано базову структуру FAT, яка згодом стане стандартом для DOS.

BASIC-компілятор

Паралельно з інтерпретаторами, Microsoft розробила і компілятор BASIC, що був відомий під назвою BASCOM. Його використовували на системах з CP/M, і він дозволяв створювати виконувані .COM-файли зі звичних .BAS-програм.[7]

BASCOM підтримував більшість можливостей MBASIC, однак вимагав явного оголошення всіх змінних (DEFINT, DEFSTR тощо) для оптимізації коду.

TRS-80 Level II / III BASIC

Одна з найуспішніших OEM-реалізацій Microsoft BASIC була створена для TRS-80 — серії домашніх комп’ютерів від Tandy/RadioShack.

Перші моделі TRS-80 використовували Level I BASIC, заснований на Tiny BASIC. Однак дуже швидко його замінили на Level II BASIC, який був адаптацією Microsoft BASIC-80. Ця версія додала:

  • повноцінну підтримку рядків і масивів,
  • нові оператори (включно з IF...THEN...ELSE, FOR...NEXT, GOSUB),
  • покращену обробку помилок,
  • збереження програм на дискетах.

У Model 4 використовувалась вдосконалена версія BASIC-80 5.x з підтримкою імен змінних до 40 символів, циклів WHILE...WEND, користувацьких функцій (DEF FN) та викликів до DOS (SYSTEM).

Базова модель включала тільки по-рядковий редактор, однак розширені версії (з LS-DOS) дозволяли виконувати команди на кшталт LIST, RENUM, EDIT та отримали можливості налагодження (TRON, TROFF, CONT).

Remove ads

Реалізації Microsoft BASIC для різних архітектур

Узагальнити
Перспектива

BASIC-86

Після успіху на 8-бітних платформах Microsoft перенесла BASIC на 16-бітні процесори, зокрема на Intel 8086/8088. Першим прикладом став BASIC-86, створений у 1979 році для одноплатного комп’ютера з шиною S-100 від Seattle Computer Products. Ця версія вже включала файлову систему FAT і підтримувала роботу з дисководами — майже за два роки до появи IBM PC.

У 1980 році Microsoft запропонувала Standalone BASIC-86 — окрему, самодостатню версію для комп’ютерів SBC-86 на базі Intel 8086. Ці реалізації стали попередниками GW-BASIC і BASICA, які пізніше увійшли до складу DOS-систем.

BASIC для Texas Instruments

Хоча інтерфейс TI BASIC для комп’ютера TI-99/4A нагадував Microsoft BASIC, фактично він не був розроблений компанією Microsoft. За свідченнями інженера Ханса Шурмана, Microsoft допомагала з BASIC для іншого проєкту (SR-70), але для TI-99/4A мову написала команда Texas Instruments.

TI BASIC базувався на Dartmouth BASIC і відповідав американському стандарту мінімального BASIC (ANSI X3.60-1978). Він був повільнішим за інші BASIC, оскільки працював через інтерпретатор GPL, що взаємодіяв з мовою машинного коду.

6502 BASIC

У 1976 році Microsoft портувала BASIC на 8-бітовий процесор MOS Technology 6502 — популярний у комп’ютерах Apple, Commodore, Atari, Oric та інших.

Ця версія мала деякі відмінності від оригінального BASIC-80:

  • замість 32-бітових чисел з плаваючою крапкою використовувався 40-бітовий формат, який став типовим для платформ на 6502;
  • підтримувалося динамічне виділення пам’яті для рядків (на відміну від попередніх реалізацій, де треба було вказувати обсяг вручну);
  • були обмеження в точності чисел і кількості функцій, однак її можна було конфігурувати — деякі OEM-версії поверталися до 32-бітових чисел, щоб заощадити пам’ять.

Стандартна 9-КБ версія 6502 BASIC мала:

  • типи змінних: рядкові ($), цілі (%), числа з плаваючою крапкою (!);
  • синтаксичний аналіз без обов’язкових пробілів між операторами;
  • обробку клавіш (GET) і підтримку компактного коду в пам’яті;
  • скорочене порівняння імен змінних: важливими вважались лише перші 2 символи.

Розширення в OEM-реалізаціях (наприклад, Commodore BASIC)

У 1980-х більшість виробників додавали до Microsoft BASIC власні розширення. Наприклад, Commodore BASIC (у версіях для C64 та C128) включав:

  • Команди для роботи з дисками: DIRECTORY, DLOAD, DSAVE, SCRATCH, RENAME;
  • Графічні функції: PLOT, DRAW, CIRCLE, PAINT, SCALE;
  • Роботу зі спрайтами;
  • Звукові команди (SOUND, PLAY, ENVELOPE, FILTER);
  • Структуроване програмування: DO...LOOP, EXIT, IF...ELSE, WHILE;
  • Команди налагодження: TRON, TROFF, CONT;
  • Редагування коду: RENUMBER, MONITOR, RREG.

Таким чином, багато OEM-версій перетворили Microsoft BASIC на повноцінне середовище розробки для своєї платформи.

BASIC-68 та BASIC-69

Окрім підтримки процесорів Intel і MOS, Microsoft також створила версії BASIC для мікропроцесорів Motorola 6800 та 6809:

  • BASIC-68 — використовувався в системах на базі 6800 з ОС FLEX;
  • BASIC-69 — став основою для Color BASIC у TRS-80 Color Computer, а також для систем Dragon 32/64.

Ці версії зберігали ядро Microsoft BASIC-80, але адаптувались до архітектури процесора та особливостей машин.

MSX BASIC

У 1983 році Microsoft створила спеціальну версію BASIC для MSX-комп’ютерів — популярного в Японії та Європі стандарту домашніх комп’ютерів на процесорі Z80.

MSX BASIC включав:

  • підтримку графіки та звуку MSX;
  • команди для роботи зі спрайтами, кольорами та звуковими каналами;
  • інтеграцію з дисками в пізніших версіях (MSX-DOS).

Ця версія BASIC була написана в Японії спільно з ASCII Corporation і стала однією з наймасовіших за кількістю встановлень.

Remove ads

Сучасні нащадки Microsoft BASIC

Узагальнити
Перспектива

Visual Basic та VB.NET

У 1991 році Microsoft представила Visual Basic — нове середовище програмування для Windows, яке поєднувало класичний синтаксис BASIC з подійно-орієнтованим програмуванням та візуальним конструктором інтерфейсів. Visual Basic дозволяв створювати графічні застосунки, швидко компонуючи форми, кнопки, меню та інші елементи.

Ця мова набула великої популярності серед корпоративних розробників у 1990-х і стала стандартом для створення ПЗ під Windows до появи .NET-платформи.

У 2002 році Visual Basic еволюціонував у Visual Basic .NET, що стало частиною середовища .NET Framework. Нова версія зберегла синтаксичну схожість, однак мала зовсім іншу архітектуру:

  • повна підтримка об’єктно-орієнтованого програмування,
  • інтеграція з іншими мовами .NET (C#, F#),
  • доступ до бібліотек CLR (Common Language Runtime),
  • можливість створення сучасних Windows Forms, ASP.NET та консольних застосунків.

Попри те, що багато нових розробників обирають C#, Visual Basic .NET досі підтримується і використовується, зокрема в освітніх цілях або у проєктах, які мігрували з класичного VB6.

QBasic, GW-BASIC і спадщина DOS

Останні класичні версії Microsoft BASIC, які використовувалися в середовищі MS-DOS, — це GW-BASIC, QuickBASIC і QBasic.

  • GW-BASIC — інтерпретатор, що працював у текстовому режимі без потреби компіляції;
  • QuickBASIC — IDE з компілятором, підтримував структури, модулі, локальні змінні;
  • QBasic — спрощена безкоштовна версія QuickBASIC, що постачалась разом із MS-DOS 5.0+.

Хоча ці продукти давно не підтримуються офіційно, їх можна знайти в архівах або запустити через емулятори DOS (наприклад, DOSBox).

Small Basic

У 2008 році Microsoft представила Small Basic — спрощене середовище програмування, орієнтоване на новачків і школярів. Small Basic включає лише 14 ключових слів і має інтерфейс, максимально спрощений для початкового навчання.

Платформа дозволяє:

  • створювати прості графічні програми;
  • взаємодіяти з об’єктами на екрані;
  • поступово переходити до Visual Basic через міграційний механізм.

Small Basic і досі використовується в освітніх програмах та рекомендований як вступ до програмування у школах.

Remove ads

Вихідний код Altair BASIC

У 2020 році, з нагоди 45-річчя створення Microsoft, Білл Гейтс публічно оприлюднив оригінальний сирцевий код Altair BASIC, написаний ним і Полом Алленом у 1975 році.

Код, що займає понад 150 сторінок у вигляді сканованих листів з PDP-10, став історичним документом і дає змогу побачити, з чого почалась одна з найбільших технологічних компаній світу.

Варіанти та похідні Microsoft BASIC

  • Altair BASIC (MITS Altair та інші комп'ютери S-100)
  • Amiga BASIC (сімейство Commodore Amiga)
  • Applesoft BASIC (сімейство Apple II)
  • Atari Microsoft BASIC I та II (8-розрядні комп'ютери Atari)
  • Basic 1.0 (сімейство комп'ютерів Thomson)
  • BASICA («BASICA Advanced») (ПК DOS, на IBM PC)
  • Canon X-07 (портативний кишеньковий комп'ютер Canon)
  • Color BASIC (кольоровий комп'ютер TRS-80) Canon X-07
  • Color BASIC та Disk Extended Color BASIC (кольоровий комп'ютер TRS-80 та Dragon 32/64 )
  • Commodore BASIC (сімейство Commodore 8-біт, включаючи C64)
  • FreeBASIC  безкоштовна реалізація, натхненна QuickBASIC
  • Galaksija BASIC (домашній комп'ютер Galaksija)
  • Gambas  безкоштовна реалізація, натхненна Visual Basic
  • GW-BASIC (IBM BASIC для MS-DOS, на ПК-сумісних системах)
  • Програмований термінал HP2640 HP2647 з графічними розширеннями AGL
  • IBM Cassette BASIC (оригінальний ПК IBM, вбудований у ПЗП)
  • Microsoft рівень III BASIC (Tandy/Radio-Shack TRS-80)
  • MBASIC (CP/M, на комп'ютерах на базі 8080, 8085 та Z80)
  • MS BASIC для Macintosh (Mac OS на Apple Macintosh)
  • MSX BASIC (стандартні домашні комп'ютери MSX)
  • N88-BASIC (NEC PC8801/9801)
  • N82-BASIC ( NEC PC-8201/8201A, TRS-80 Модель 100 )
  • Oric Extended Basic ( сімейство Oric 8-біт ) [8]
  • QBasic (ПК DOS/MS-DOS на IBM PC та сумісних комп'ютерах)
  • QuickBASIC (ПК MS-DOS на IBM PC та сумісних системах)
  • КБ64  безкоштовний клон QBasic
  • Small Basic (MS Windows на IBM PC та сумісних)
  • T-BASIC (Toshiba Pasopia) і T-BASIC7 (Toshiba Pasopia 7)
  • TRS-80 BASIC Level II (Tandy/Radio-Shack TRS-80 )
  • Visual Basic ( класичний та .NET ) (ПК DOS/MS-DOS/MS Windows на IBM PC та сумісних комп'ютерах)
  • Video Technology Basic (Laser 350/500/700)
  • WordBasic (до VBA ) (MS Windows)
Remove ads

Див. також

Примітки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads