Топ питань
Часова шкала
Чат
Перспективи
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
Узагальнити
Перспектива

Першою реалізацією мови 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 створила універсальне ядро, яке пізніше було портовано на інші процесори:
- BASIC-80 для Intel 8080/8085 та Zilog Z80,
- BASIC-86 для Intel 8086/8088,
- BASIC-68 для Motorola 6800,
- BASIC-69 для Motorola 6809,
- 6502 BASIC для процесора MOS 6502 (використовувався в Apple, Commodore, Atari та ін.).
Ці варіанти стали основою для багатьох домашніх комп’ютерів 1970–80-х років. Незалежно від платформи, більшість програм, написаних на Microsoft BASIC, були взаємно сумісними.
Remove ads
Ліцензування Microsoft BASIC для домашніх комп’ютерів
Узагальнити
Перспектива
Успіх Altair BASIC започаткував новий напрямок у бізнесі Microsoft — ліцензування BASIC для інших виробників комп’ютерів. Упродовж кінця 1970-х і всього 1980-х років компанія уклала десятки контрактів на постачання адаптованих версій BASIC для найрізноманітніших систем.
Більшість таких версій вшивалися у постійну пам’ять (ПЗП) комп’ютерів, тож BASIC автоматично завантажувався при ввімкненні пристрою. Таким чином, мова програмування фактично ставала частиною операційного середовища машини, доступною одразу з командного рядка (запитом на кшталт READY
).
Унікальна модель розробки
В ті часи будь який програмний продукт доводилось вручну адаптувати до різних архітектур процесорів, що потребувало значних витрат часу. Microsoft же централізовано підтримувала кодову базу BASIC та адаптувала її до десятків процесорів і архітектур. Для цього вона використовувала систему умовної компіляції[1], яка дозволяла з однієї кодової бази згенерувати інтерпретатор для:
- Intel 8080, 8085, 8086, 8088
- Zilog Z80
- MOS 6502
- Motorola 6800, 6809
- та інших процесорів
Весь процес проходив на комп’ютері 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
Див. також
- Atari BASIC
- Integer BASIC
- Відкритий лист до любителів
Примітки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads