Разработано | Майкрософт |
---|---|
Разработчик | Майкрософт |
Впервые появился | 1975 (ср. Altair BASIC ) |
Стабильный релиз | см. Visual Basic .NET / 2018 |
Microsoft BASIC — это базовый программный продукт компании Microsoft , который развился в линейку интерпретаторов и компиляторов BASIC , адаптированных для множества различных микрокомпьютеров . Впервые он появился в 1975 году как Altair BASIC , который был первой версией BASIC, опубликованной Microsoft, а также первым языком программирования высокого уровня, доступным для микрокомпьютера Altair 8800 .
Во время помешательства на домашних компьютерах в конце 1970-х и начале 1980-х годов BASIC был портирован и поставлялся со многими проектами домашних компьютеров. Небольшие изменения для добавления поддержки машинно-специфичных функций, особенно графики, привели к появлению множества родственных проектов, таких как Commodore BASIC и Atari Microsoft BASIC .
Поскольку ранние домашние компьютеры уступили место новым разработкам, таким как IBM Personal Computer и 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 был одним из немногих исключений). Карта CP/M от Microsoft для Apple II включала модифицированную версию MBASIC, которая включала некоторые графические команды из Applesoft BASIC, такие как HPLOT
, но полный набор команд не поддерживается.
Первой реализацией, использующей 8-битный вариант таблицы размещения файлов (FAT), была адаптация BASIC [nb 1] для терминала ввода данных NCR 7200 , [nb 1] 7520 , [nb 1] или 7530 [nb 1] на базе Intel 8080 с 8-дюймовыми дискетами в 1977/1978 годах.
Microsoft предложила компилятор BASIC для BASIC-80 под CP/M, к 1980 году или ранее. Исполняемый файл компилятора назывался BASCOM или BASCOM32. [8]
Компьютер TRS-80 изначально предлагался с адаптацией Tiny BASIC Ли-Чэня Вана ( Level I BASIC ); в течение нескольких месяцев он был заменен портом BASIC-80, который включал некоторые из набора команд Level I BASIC, в частности команды для установки графических символов. Level II BASIC содержал некоторые функции Extended BASIC, хотя из-за необходимости включения команд Level I, таких как SET
и PSET
, другие функции, такие как описательные сообщения об ошибках, все еще пришлось исключить; они были впоследствии добавлены в TRS-80 Disk BASIC.
TRS-80 Model 4 имела более новый дисковый BASIC, который использовал ядро BASIC-80 5.x, включавшее поддержку 40-символьных имен переменных. Таким образом, возможность дробления строк программы (без пробелов между ключевыми словами и аргументами) больше не была возможна, как это было в Level II. Больше не было необходимости резервировать пространство для строк. Новые функции включали определяемые пользователем функции ( DEF FN
) и доступ к системным функциям TRSDOS 6 через SYSTEM
ключевое слово. Модифицированная версия, опубликованная позже поставщиком ОС Logical Systems в обновлении LS-DOS Version 6.3, добавила однобуквенный доступ к функциям управления BASIC (таким как LIST
и EDIT
) и прямой доступ к вызовам супервизора LS-DOS. Среда редактирования программы по-прежнему была ориентирована на строки. Возможность сортировки массивов ( CMD"O"
) в Level II была недоступна; программистам и пользователям приходилось придумывать собственные обходные пути.
Первая реализация в качестве автономной дисковой языковой системы была реализована в 1979 году для процессорной карты Seattle Computer Products S-100 bus 8086. Она использовала 8-битную файловую систему FAT.
В 1980 году Microsoft также предложила версию Standalone BASIC-86 для SBC-86/12 для платформы одноплатного компьютера Intel 8086.
Это версия 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 года; это был в основном прямой порт версии 8K BASIC-80 и включал те же подсказки, спрашивающие размер памяти и хочет ли пользователь включить функции с плавающей точкой или нет (их активация использовала дополнительные 135 байт памяти). Самыми ранними машинами, использовавшими 6502 BASIC, были Ohio Scientific Model 500 и KIM-1 в 1977 году. [9] 6502 BASIC включал некоторые функции из Extended BASIC, такие как определяемые пользователем функции и описательные сообщения об ошибках, но исключал другие функции, такие как переменные двойной точности и оператор. В качестве компенсации за отсутствие переменных двойной точности Microsoft включила поддержку 40- битной плавающей точки вместо 32-битной плавающей точки BASIC-80, а распределение строк было динамическим (таким образом, пользователю не приходилось резервировать пространство для строк, как в BASIC-80). Однако поставщики все еще могли запрашивать BASIC с 32-битной плавающей точкой для немного меньшего объема памяти ; например, Disk BASIC для Atari 8-bit использовал 32-битную плавающую точку вместо 40-битной. [ необходима цитата ]PRINT
USING
Стандартные функции версии 9K Microsoft 6502 BASIC включают:
GET
оператор для обнаружения нажатия клавиши.В 6502 BASIC отсутствовал стандартизированный набор команд для вывода на диск и принтер; их добавление было на усмотрение поставщика, и они значительно различались в зависимости от реализации.
Более поздние реализации 6502 Basic (1983–) имели множество улучшений, специфичных для конкретного поставщика; например, более поздние версии Commodore BASIC имели следующее:
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
.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'Electronique. [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 C# , VB.NET и Visual C++ . [18]