Share to: share facebook share twitter share wa share telegram print page

Microsoft BASIC

Microsoft BASIC
Дата появи1975 (Altair BASIC)
ТворціMicrosoft
РозробникMicrosoft
Останній релізVisual Basic .NET (2018)

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

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

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

Комп'ютер 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, були взаємно сумісними.

Ліцензування 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 для:

Цей підхід дозволив 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).

Реалізації 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 і стала однією з наймасовіших за кількістю встановлень.

Сучасні нащадки 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 і досі використовується в освітніх програмах та рекомендований як вступ до програмування у школах.

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

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

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

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

Див. також

Примітки

  1. Goldklang, Ira (21 серпня 2009). TRS-80 Computers: TRS-80 Model 4 – Ira Goldklang's TRS-80 Revived Site. Ira Goldklang's TRS-80 Revived (амер.). Процитовано 8 січня 2025.
  2. Cherry, Charles (June 1987). Basic Bonanza. Antic. Процитовано 4 серпня 2019.
  3. Curran, Lawrence J.; Shuford, Richard S. (November 1983). IBM's Estridge. BYTE. с. 88—97. Процитовано 19 березня 2016.
  4. PC Tutor. PC. 13 січня 1987. с. 325. Процитовано 18 січня 2015.
  5. Grevstad, Eric (December 1986). Laser 128 / An Affordable Compatible. inCider. с. 58. Процитовано 29 червня 2014.
  6. NCR Mini, Micro Among Debuts Made on NRMA Convention Floor. Computerworld. 17 січня 1977. Процитовано 4 червня 2014. (Mentions an 8080-based cassette-based NCR 7200 model VI with NCR Basic Plus 6 (Extended BASIC) to be delivered in Q1/1977. The NCR 7200 model I and model IV were already released in 1975-11, but did not came with BASIC.)
  7. http://www.bitsavers.org/pdf/microsoft/cpm/Microsoft_BASIC_Compiler_1980.pdf
  8. Steil, Michael (30 вересня 2008). Bill Gates' Personal Easter Eggs in 8 Bit BASIC. pagetable.com. Процитовано 4 лютого 2015.
Kembali kehalaman sebelumnya