Microsoft BASIC — это базовый программный продукт компании Microsoft , который превратился в линейку интерпретаторов и компиляторов BASIC , адаптированных для множества различных микрокомпьютеров . Впервые он появился в 1975 году как Altair BASIC , который был первой версией BASIC , опубликованной Microsoft, а также первым языком программирования высокого уровня , доступным для микрокомпьютера Altair 8800 .
Во время повального увлечения домашними компьютерами в конце 1970-х - начале 1980-х годов BASIC был перенесен на многие модели домашних компьютеров и поставлялся с ними. Небольшие изменения, направленные на добавление поддержки функций, специфичных для машины, особенно графики, привели к появлению множества связанных проектов, таких как Commodore BASIC и Atari Microsoft BASIC .
Когда первые домашние компьютеры уступили место более новым разработкам, таким как персональный компьютер IBM и Macintosh , BASIC больше не использовался так широко, хотя и сохранил много последователей. Выпуск Visual Basic возобновил его популярность, и он по-прежнему широко используется на платформах Microsoft Windows в своем последнем воплощении — Visual Basic .NET .
Интерпретатор Altair BASIC был разработан основателями Microsoft Полом Алленом и Биллом Гейтсом с использованием самописного эмулятора Intel 8080 , работающего на миникомпьютере PDP-10 . [1] Диалект MS создан по образцу BASIC-PLUS от Digital Equipment Corporation на PDP-11 , который Гейтс использовал в старшей школе . [2] Первые версии поддерживали только целочисленную математику, но Монте Давидофф убедил их, что арифметика с плавающей запятой возможна, и написал библиотеку, которая стала Microsoft Binary Format .
Altair BASIC поставлялся на бумажной ленте и в оригинальной версии занимал 4 КБ памяти. Были доступны следующие функции и операторы:
LIST
, NEW
, PRINT
, INPUT
, IF...THEN
, FOR...NEXT
, SQR
, RND
, SIN
, LET
, USR
, DATA
, READ
, REM
, CLEAR
, STOP
, TAB
, RESTORE
, ABS
, END
, INT
, RETURN
, STEP
, , GOTO
и GOSUB
.
В 4K BASIC не было строковых переменных, а единственным поддерживаемым числовым типом была 32-битная плавающая запятая одинарной точности. Имена переменных состояли из одной буквы (A–Z) или одной буквы, за которой следовала одна цифра (0–9), что позволяло использовать до 286 числовых переменных.
Для машин с большим объемом памяти в версию 8 КБ добавлено 31 дополнительный оператор и поддержка строковых переменных и связанных с ними операций, таких как MID$ и конкатенация строк . Строковые переменные обозначались суффиксом $, который остался в более поздних версиях языка. Позже Microsoft выпустила 12K Extended BASIC, который включал 64-битные переменные двойной точности, IF
... THEN
... ELSE
структуры, определяемые пользователем функции, более сложные команды редактирования программ и описательные сообщения об ошибках, а не номера ошибок. Числовые переменные теперь имели три основных типа: % обозначал 16-битные целые числа, # обозначал 64-битные двойные числа и ! обозначал 32-битные синглы, но это был формат по умолчанию, поэтому ! редко встречается в программах.
Расширенная версия размером 8 КБ затем была обобщена в BASIC-80 (8080/85, Z80 ) и портирована на BASIC-68 ( 6800 ), BASIC-69 ( 6809 ) и 6502 -BASIC. У 6502 был несколько менее плотный ассемблерный код , и его размер увеличился до чуть менее 8 КБ для версии с одинарной точностью или до 9 КБ для версии, использующей промежуточный 40-битный формат с плавающей запятой вместо исходной 32-битной версии. Этот новый 40-битный формат стал наиболее распространенным, поскольку использовался на большинстве машин на базе 6502 той эпохи. Он также был портирован на 16-битный BASIC-86 ( 8086/88 ).
Последней основной версией BASIC-80 была версия 5.x, которая появилась в 1981 году и в нее была добавлена поддержка 40-символьных имен переменных, WHILE
... WEND
циклов, динамического выделения строк и ряда других функций. В BASIC 5.x удалена возможность сокращения строк программы.
Базовый набор команд и синтаксис одинаковы во всех реализациях Microsoft BASIC, и, вообще говоря, программу можно запускать в любой версии, если она не использует аппаратные функции или числа двойной точности (не поддерживаются в некоторых реализациях).
После первоначального успеха Altair BASIC, Microsoft BASIC стал основой прибыльного бизнеса по лицензированию программного обеспечения, который был портирован на большинство многочисленных домашних и других персональных компьютеров 1970-х и особенно 1980-х годов и постепенно расширялся. В отличие от исходного Altair BASIC, большинство BASIC для домашних компьютеров постоянно находятся в ПЗУ и, таким образом, доступны на машинах при включении питания в виде характеристики " READY
". быстрый. Следовательно, Microsoft и другие варианты BASIC составляют значительную и видимую часть пользовательского интерфейса простейших операционных систем многих домашних компьютеров .
К 1981 году Microsoft BASIC был настолько популярен, что даже компании, у которых уже был BASIC, лицензировали этот язык , такие как IBM для своего персонального компьютера [3] и Atari , которая продавала как Atari Microsoft BASIC, так и свой собственный Atari BASIC . [4] Дон Эстридж из IBM сказал: «У Microsoft BASIC были сотни тысяч пользователей по всему миру. Как вы собираетесь с этим спорить?» [3] Microsoft лицензировала аналогичные версии компаниям, конкурировавшим друг с другом. Например, после лицензирования IBM Advanced BASIC (BASICA) для IBM, Microsoft лицензировала совместимый GW-BASIC производителям клонов ПК и продавала копии розничным покупателям. [5] Компания аналогичным образом лицензировала Applesoft -совместимый BASIC для VTech для своего клона Laser 128 . [6]
Известные варианты:
MBASIC доступен для CP/M-80 и ISIS-II . Также доступно для TEKDOS .
MBASIC — это урезанная версия BASIC-80, имеющая только аппаратно-нейтральные функции. Однако из-за популярности CP/M подавляющее большинство машин Z80 работало под управлением MBASIC, а не версии, адаптированной для конкретного оборудования (TRS-80 BASIC был одним из немногих исключений). Карта Microsoft CP/M для Apple II включала модифицированную версию MBASIC, которая включала некоторые графические команды из Applesoft BASIC, такие как HPLOT
, но полный набор команд не поддерживается.
Первой реализацией, в которой использовался 8-битный вариант таблицы размещения файлов (FAT), была адаптация BASIC [nb 1] для NCR 7200 на базе Intel 8080 , [nb 1] 7520 , [nb 1] или 7530 [nb 1]. ] терминал ввода данных с 8-дюймовыми дискетами, 1977/1978 год.
Microsoft предложила компилятор BASIC для BASIC-80 под CP/M к 1980 году или раньше. Исполняемый файл компилятора назывался BASCOM или BASCOM32. [8]
Компьютер TRS-80 изначально предлагался как адаптация Tiny BASIC Ли-Чэня Вана ( Level I BASIC ); в течение нескольких месяцев он был заменен портом BASIC-80, который включал в себя часть набора команд BASIC уровня I, особенно команды для настройки графических символов. Уровень II BASIC содержал некоторые функции Extended BASIC, хотя из-за необходимости включения команд уровня I, таких как SET
и PSET
, другие функции, такие как описательные сообщения об ошибках, все же пришлось исключить; впоследствии они были добавлены в TRS-80 Disk BASIC.
Модель TRS-80 Model 4 имела более новый дисковый BASIC, в котором использовалось ядро BASIC-80 5.x, которое включало поддержку 40-символьных имен переменных. Таким образом, возможность сокращать строки программы (без пробелов между ключевыми словами и аргументами) больше не была возможна, как это было на уровне II. Больше не было необходимости резервировать строковое пространство. Новые функции включали пользовательские функции ( DEF FN
) и доступ к системным функциям TRSDOS 6 с помощью SYSTEM
ключевого слова. Модифицированная версия, опубликованная позже поставщиком ОС Logical Systems, в обновлении LS-DOS версии 6.3, добавила однобуквенный доступ к функциям управления BASIC (например, LIST
и EDIT
) и прямой доступ к вызовам супервизора LS-DOS. Среда редактирования программы по-прежнему была линейно-ориентированной. Доступная на уровне II возможность сортировки массивов ( CMD"O"
) была недоступна; программистам и пользователям приходилось разрабатывать собственные обходные пути.
Первая реализация в качестве автономной дисковой языковой системы была для платы ЦП Seattle Computer Products S-100 с шиной 8086 в 1979 году. В ней использовалась 8-битная файловая система FAT.
Microsoft также предложила версию Standalone BASIC-86 для SBC-86/12 для одноплатной компьютерной платформы Intel 8086 в 1980 году.
Это версия BASIC, используемая на домашнем компьютере TI-99/4A . Хотя он очень похож на Microsoft BASIC, он не был написан Microsoft, как ходили слухи. По словам инженера TI Х. Шуурмана, «с ними (в лице Боба Гринберга из Microsoft) был заключен контракт на разработку BASIC для SR-70 (который также иногда называют 99/7), но BASIC для 99 /4 был разработан собственными силами». TI-99/4 BASIC основан на Dartmouth BASIC и соответствует американскому национальному стандарту минимального BASIC (ANSI X3.60-1978).
Microsoft перенесла BASIC-80 на 6502 летом 1976 года; в основном это был прямой порт версии BASIC-80 для 8K и включал в себя те же запросы, запрашивающие размер памяти и то, хочет ли пользователь включить или отключить функции с плавающей запятой (когда они активны, используются дополнительные 135 байт памяти). Самыми ранними машинами, использовавшими 6502 BASIC, были Ohio Scientific Model 500 и KIM-1 в 1977 году. [9] 6502 BASIC включал в себя определенные функции расширенного BASIC, такие как определяемые пользователем функции и описательные сообщения об ошибках, но не включал другие функции, такие как переменные двойной точности. и PRINT
USING
заявление. В качестве компенсации за отсутствие переменных двойной точности Microsoft включила поддержку 40-битных чисел с плавающей запятой вместо 32-битных чисел с плавающей запятой в BASIC-80, а распределение строк было динамическим (таким образом, пользователю не нужно было резервировать строковое пространство, как в BASIC-80). Однако производители по-прежнему могут запрашивать BASIC с 32-битной плавающей запятой для немного меньшего объема памяти ; Например, Disk BASIC для 8-битной версии Atari использовал 32-битную версию с плавающей запятой, а не 40-битную. [ нужна цитата ]
Стандартные функции версии Microsoft 6502 BASIC 9K включали:
GET
оператор для обнаружения нажатия клавиши.В 6502 BASIC не было стандартизированного набора команд для вывода на диск и принтер; их добавлял поставщик, и они сильно различались в зависимости от реализации.
Более поздние реализации 6502 Basic (1983–) были улучшены во многих аспектах.
DIRECTORY
, DSAVE
, DLOAD
, BACKUP
, HEADER
, SCRATCH
, COLLECT
, DVERIFY
, COPY
, DELETE
, RENAME
, и т.д.)CIRCLE
, DRAW
, BOX
, COLOR
(фона, границы и т. д.), PAINT
, SCALE
)SSHAPE
и GSHAPE
с OR
, AND
, XOR
и т.д.)VOL
, SOUND
), позже в C=128 Музыкальные команды (программирование фильтров ADSR и SID ( ENVELOPE
и FILTER
), PLAY
, TEMPO
команды)IF
– THEN
– ELSE
, DO
– LOOP
– WHILE
/ UNTIL
– EXIT
, ON
–GOSUB
JOY
функциональные клавиши.STOP
, CONT
, TRON
, TROFF
,RESUME
WINDOW
RENUMBER
, NEW
, MONITOR
,RREG
В каталогах Microsoft 1980-х годов также указывается наличие BASIC-68 и BASIC-69 для микропроцессоров Motorola 6800 и 6809 соответственно, работающих под управлением операционных систем FLEX , а также упоминаются OEM-версии для Perkin-Elmer , Ohio Nuclear , Pertec и Societe Occitane d. «Электронные системы. [10] Похоже, что это также является основой Microsoft/Epson BASIC в портативном компьютере Epson HX-20 , который имеет два процессора Hitachi 6301, которые по сути представляют собой «улучшенную» версию 6801. Большинство основных функций в BASIC-68 и BASIC-69 были скопированы непосредственно из BASIC-80. [ оригинальное исследование? ]
Лицензия на BASIC-69 также была передана компании Tandy, где он сформировал ядро Color BASIC на цветном компьютере TRS-80 . [ нужна ссылка ] Не путать с BASIC09 , совершенно другим BASIC, созданным Microware в качестве основного языка для своей OS-9 , другой ОС, доступной на цветном компьютере (Microware также написала версию 2.0 Extended Color BASIC, когда Microsoft отказалась сделай это). Microsoft BASIC также был включен в компьютеры Dragon 32/64, которые производились в Уэльсе и пользовались некоторым ограниченным успехом на рынке домашних компьютеров Великобритании в начале 1980-х годов. Компьютеры Dragon были в некоторой степени совместимы с Tandy TRS-80, поскольку были построены на очень похожем оборудовании.
Microsoft выпустила MSX BASIC на базе ПЗУ для использования в домашних компьютерах MSX , в которых использовался процессор Z80. Эта версия поддерживала графическую и звуковую системы компьютеров MSX; некоторые варианты также имели поддержку дисководов.
Никакая разновидность Microsoft BASIC ( BASICA , GW-BASIC , QuickBasic , QBasic ) в настоящее время не распространяется с Microsoft Windows или DOS . Однако версии, которые по-прежнему будут работать на современных машинах, можно загрузить с различных сайтов Интернета или найти на старых дисках DOS.
Последним воплощением Microsoft BASIC является Visual Basic .NET , который включает в себя некоторые функции C++ и C# и может использоваться для разработки веб-форм, форм Windows, консольных и серверных приложений. Большинство примеров кода .NET представлены на VB.NET, а также на C#, и VB.NET по-прежнему пользуется популярностью у бывших программистов Visual Basic .
В октябре 2008 года Microsoft выпустила Small Basic . [11] В языке всего 14 ключевых слов. [12] Версия Small Basic 1.0 (12 июня 2011 г.) [13] была выпущена вместе с обновленным веб-сайтом Microsoft MSDN, который включал полную учебную программу для учителей, [14] Руководство по началу работы, [15] и несколько электронных книг. [16] Small Basic существует для того, чтобы помочь учащимся в возрасте восьми лет [17] изучить основы компьютерного программирования, а затем перейти на Visual Basic с помощью загружаемого программного обеспечения Visual Studio Express , где они могут продолжать закладывать основы, изучая Visual Basic . C# , VB.NET и Visual C++ . [18]