БЕЙСИК-8
Парадигма | императив |
---|---|
Разработчик | Декабрь |
Впервые появился | 1969 год |
ТЫ | ТСС/8 |
Под влиянием | |
Дартмут БЕЙСИК | |
Под влиянием | |
БЕЙСИК-ПЛЮС , Microsoft БЕЙСИК |
BASIC-8 — это язык программирования BASIC для Digital Equipment (DEC) PDP-8 серии миникомпьютеров . Это был первый диалект BASIC, выпущенный компанией, и его успех побудил DEC создать новые BASIC для своих будущих машин, в частности BASIC-PLUS для серии PDP-11 . Принятие DEC BASIC закрепило использование этого языка в качестве стандартного образовательного и служебного языка программирования той эпохи, что в сочетании с небольшими системными требованиями сделало BASIC основным языком во время запуска микрокомпьютеров в середине 1970-х годов.
История
[ редактировать ]Дэвид Ал присоединился к расширяющемуся отделу продаж образовательных услуг компании Digital Equipment (DEC) в 1969 году. Основная задача этого подразделения заключалась в продаже PDP-8 миникомпьютера средним школам и колледжам . [1] Они еще не получили широкого распространения; типичная однопользовательская машина конца 1960-х годов стоила порядка 10 000 долларов (что эквивалентно 87 600 долларам в 2023 году), не считая запоминающих устройств и других периферийных устройств . [2] Примерно в это же время и Hewlett-Packard (HP), и Honeywell представили новые 16-разрядные миникомпьютеры с разделением времени , которые становились популярными на образовательных рынках. В частности, 16-битный процессор HP 2100 с HP Time-Shared BASIC был очень популярен, что привело к тому, что HP выпустила его как HP2000 для продаж на рынках программирования и образования. [3] Хотя HP2000 был даже дороже, чем PDP-8, из-за разделения доступа между многими пользователями, обычно до 16 одновременно, эффективная стоимость была намного ниже, чем у однопользовательских машин.
В то время DEC активно продвигала свой собственный язык для образовательных целей — FOCAL , урезанную версию JOSS . Язык имел ряд особенностей, которые позволяли ему работать в чрезвычайно ограниченной памяти, включая 4 КБ основной памяти PDP-8 . Концептуально он был похож на BASIC, особенно в интерактивном методе набора программ и общем расположении программ. Аль собрал программы FOCAL, представленные пользователями, и опубликовал их в информационном бюллетене отдела EDU. [1]
Аль обнаружил, что потенциальные клиенты не интересовались FOCAL, по крайней мере, за пределами Бостона , где располагалась компания DEC. К этому времени BASIC уже широко использовался, и становилась доступной растущая библиотека образовательных программ и игр на BASIC. Они публиковались в формате информационного бюллетеня , почти всегда на диалекте HP2000, а сам объем программ BASIC ошеломлял FOCAL. Аль не обнаружил никакого интереса со стороны руководства DEC или отдела разработки программного обеспечения к созданию BASIC. [2] ни какого-либо интереса к поддержке FOCAL на других машинах в их линейке. Он также отметил растущую враждебность к идее разрешить любой другой компании создавать версию языка. [1]
Придя к выводу, что PDP-8 необходим BASIC, чтобы позволить ему конкурировать на рынке образовательных услуг, он нанял программиста из Бруклина для его разработки. [1] Это стало BASIC-8. Чтобы способствовать ее распространению, Аль лично портировал несколько популярных программ FOCAL, в частности игры Lunar Lander и The Sumerian Game , которые он переименовал в Hamurabi . [4] BASIC-8 сразу же стал бестселлером, и к началу 1970-х годов компания снова стала популярным выбором на образовательных рынках. Компания начала упаковывать системы, аналогичные HP2000, с линейкой Edusystems, адаптированной к различным потребностям. [5]
Хотя DEC продолжала продвигать FOCAL, его использование почти мгновенно прекратилось с выпуском BASIC-8. В конечном итоге DEC предложит пять различных BASIC для PDP-8, каждый из которых компенсирует ограничения исходной минимальной реализации. С выпуском PDP-11 в 1970 году был предложен совершенно новый и значительно расширенный диалект — BASIC-PLUS . [1] Покупатели жаловались на различия между диалектами, но позже Аль утверждал, что, если бы он был приверженцем таких деталей, на выпуск продукции ушло бы еще два года. [2]
Аль также заметил еще один любопытный факт; Когда они начали публиковать информационный бюллетень EDU, они ожидали, что у них будет от 2000 до 3000 подписчиков, примерно по 10 на каждый из 300 образовательных сайтов DEC. За 18 месяцев тираж достиг 20 000 экземпляров, что значительно больше, чем у всех компьютеров в сфере образования. Когда он поинтересовался, то обнаружил, что у многих подписчиков даже не было компьютера, не говоря уже о компьютере DEC, и они читали его в поисках идей о том, как компьютеры можно использовать в образовании. Это привело к раннему рассмотрению вопроса о независимом компьютерном журнале, ориентированном на образование. [2] Неизменно самым популярным разделом EDU были списки BASIC, особенно игры. Это привело к его решению собрать самые популярные программы, особенно Super Star Trek 1973 года , в виде книги под названием «101 BASIC Games» . Были проданы десятки тысяч экземпляров тремя тиражами. [1] [6]
Несмотря на некоторый успех со стороны образовательного подразделения, в начале рецессии 1973–1975 годов DEC решила сократить размер группы. Когда Аль пожаловался, что дивизию следует оставить в покое, его начальник включил его в список людей, подлежащих увольнению . Еще до того, как он получил свою последнюю зарплату, его снова приняли на работу в недавно сформированную группу по производству оборудования. [6] Они выпустили два небольших прототипа компьютеров: один «все в одном», основанный на PDP-8, и немного более крупную систему, основанную на более новом PDP-11 . Другие подразделения компании забеспокоились, что это может повлиять на их собственные продажи, и начали агитацию против этих систем. В конечном итоге это дошло до стола Кена Олсена , который, наконец, заявил, что не может понять, почему кому-то может понадобиться компьютер для личного использования. [6] Проект был убит. [1]
Ал покинул компанию и присоединился к AT&T отделу продаж образовательных услуг . Аль продолжал издавать EDU до того, как покинул DEC, но с его уходом было опубликовано еще только одно или два издания, прежде чем компания отказалась от него. В результате рынок остался за HP, которая к тому времени широко распространяла свои программы BASIC в информационном бюллетене People's Computer Company и в быстро растущей коллекции Minnesota Educational Computing Consortium (MECC). Заметив отсутствие информационного бюллетеня, такого как EDU, предназначенного специально для рынка образования, Ал вскоре основал журнал Creative Computing , а затем покинул AT&T, чтобы выпускать его на постоянной основе. [1] В 1975 году он приобрел у DEC права на 101 BASIC Games и перезапустил ее под названием BASIC Computer Games . Эта книга стала первой компьютерной книгой, проданной миллионным тиражом. [1] [6]
Диалект HP лег в основу многих ранних реализаций BASIC для персональных компьютеров , включая Integer BASIC и Atari BASIC, среди других. Билл Гейтс использовал BASIC-PLUS в старшей школе, и это легло в основу того, что в 1975 году стало Altair BASIC. Продолжающаяся разработка и продажа разновидностей Microsoft BASIC для нескольких платформ привели к тому, что диалект DEC в конечном итоге стал фактическим стандартом на домашних компьютерах. чем версия HP. [1]
Описание
[ редактировать ]Как и большинство версий BASIC, BASIC-8 мог работать в «немедленном режиме», когда пользователи вводят команды и немедленно получают ответ (как в ручном калькуляторе), или в «отложенном режиме», когда записи сохранялись для последующего выполнения. используя команду RUN
. Отложенный режим активируется путем ввода номера строки в начале строки текста. В BASIC-8 номера строк могут варьироваться от 1 до 2046; [7] PDP-8 был 12-битной машиной и обычно содержал значение от -2048 до +2047 в одном слове . [8]
Как это было принято во многих минимальных реализациях BASIC той эпохи, IF
операторы могли использоваться только для выполнения ветвления; THEN
за ним должен был идти номер строки для перехода, он не мог содержать произвольные операторы, как это было распространено в более поздних версиях BASIC. [9] Таким образом IF X=10 THEN 150
был действительным, IF X=10 THEN X=X+1
не было. Альтернативная форма была IF X=10 GO TO 150
. Пробел в GO TO не является обязательным, как это было в некоторых диалектах, либо в IF
или как отдельное заявление. [10] Подпрограммы поддерживались с помощью GOSUB...RETURN
, [11] но не удалось позвонить из IF
заявления. [а] Циклы могут выполняться с помощью IF...THEN
или используя FOR...TO...STEP...NEXT
. [10]
В отличие от большинства Бейсиков, LET
не был обязательным и должен был использоваться во всех заданиях. [12] Имена переменных могут состоять из одной буквы или буквы и одной цифры. [13] DIM
может использоваться для определения одномерных и двумерных массивов. [14] Формат чисел с плавающей запятой имел 8 значащих цифр и показатель степени от -38 до +38. [15] Для арифметических операций использовались стандартные математические символы. +
, -
, *
, /
и ^
(на телетайпе модели 33 представлен в виде стрелки вверх), [16] и он включал стандартные функции SIN
, COS
, TAN
, ATN
, EXP
, LOG
, ABS
, SQR
, INT
, RND
и SGN
. [17] Не было поддержки строковых переменных или функций. Булевы сравнения в IF
заявления включены =
, <
, >
, >=
, <=
и <>
. [13] DEF FN
поддерживался для пользовательских функций. [18]
PRINT
поддерживаются как запятые, так и точки с запятой, которые можно использовать для разделения нескольких выходных данных в табличном формате или без пробела соответственно. [19] INPUT
поддерживался и мог читать несколько входных данных в одном операторе, но подсказки не поддерживались. [20] Из-за отсутствия команд для работы с файлами любые данные в программе можно было ввести только с помощью DATA
утверждения и прочитайте, используя READ
. [21] RESTORE
вернул READ
вернуться к началу DATA
список; не было необязательного номера строки, как это видно в некоторых диалектах. [22]
REM
, STOP
и END
завершить список команд. [13]
Выполнение
[ редактировать ]В отличие от большинства конкурирующих систем на базе миникомпьютеров и ранних домашних компьютеров , где BASIC представлял собой всю среду, видимую пользователю, BASIC-8 был одной из многих программ, которые можно было запускать из командной строки базовой TSS/8. операционной системы система . [23] Таким образом, команды, которые обычно связаны с самим BASIC, например RUN
или LIST
, не являются частью самого языка, а являются частью оболочки и поэтому не могут использоваться в программах. Это было типично для многих ранних сред BASIC, где редактор и среда выполнения представляли собой совершенно разные программы. [24]
В программы BASIC можно было войти, запустив BASIC-8 из командной строки и набрав, или запустив текстовый редактор, такой как EDIT-8, и набрав код в виде текстового файла. В обоих случаях код BASIC сохранялся в виде чистого текста и сохранял любые дополнительные символы, вводимые пользователем — код можно было вводить без пробелов, чтобы сделать файл более компактным. [7] или добавьте дополнительные пробелы для отступов в циклах. [25]
Когда BASIC был запущен, можно было набрать NEW
очистить любую существующую программу или OLD
для загрузки существующего файла. В любой момент можно было SAVE
рабочий файл или UNSAVE
чтобы удалить существующий сохраненный файл. CATALOG
выдал список сохраненных файлов программы. [24] LIST
распечатал исходный код и может быть ограничен использованием двух значений, разделенных запятыми, для номеров начальной и конечной строк, например LIST 10,200
. [26] [б] DELETE
удалил ряд строк из программы, RUN
начал выполнение и BYE
вышел из BASIC и вернулся в командную строку TSS/8. [27]
Внутри система состояла из пяти отдельных подпрограмм, которые загружались по мере необходимости, чтобы минимизировать использование памяти. Это были EDITOR
, COMPILER
, LOADER
, INTERPRETER
и ERROR
. КОМПИЛЕР не был компилятором в современном смысле этого слова, поскольку он не генерировал язык более низкого уровня ; в современных терминах его можно было бы назвать «токенизатором» или интерфейсом. Его целью было проанализировать исходный код BASIC и преобразовать его в серию «токенов», чисел из одного слова, представляющих различные ключевые слова и команды. Затем результат оставался в памяти, пока INTERPRETER было дано указание начать выполнение полученного токенизированного кода. ERROR отображает номера ошибок в BASIC в текстовый вывод. Таблица в памяти SYPTBA содержала указатели на расположение программ на диске. [28]
Примечания
[ редактировать ]- ^ Альтернативная форма «GO SUB» также не была разрешена.
- ^ Синтаксис, разделенный запятыми, использовался в нескольких других диалектах, таких как Atari BASIC , но большинство использовало версию MS BASIC со знаком минус;
LIST 10–200
.
Ссылки
[ редактировать ]Цитаты
[ редактировать ]- ^ Jump up to: а б с д и ж г час я дж Ахл 2013 .
- ^ Jump up to: а б с д Андерсон 1984 , с. 70.
- ^ «Компьютеры Хьюлетт/Паккард» .
2000A была первой системой таймшера HP 2000, представленной на рынке ок. 1969 год
- ^ Маккракен, Гарри (29 апреля 2014 г.). «Пятьдесят лет BASIC, языка программирования, сделавшего компьютеры персональными» . Время .
- ^ Руководство по образовательной системе (PDF) . ДЕКАБРЬ. Январь 1973 года.
- ^ Jump up to: а б с д Андерсон 1984 , с. 72.
- ^ Jump up to: а б Руководство 1969 года , с. 2.2.
- ^ «Блокбастер DEC: PDP-8» . Музей истории компьютеров .
- ^ Руководство 1969 г. , с. 2.15.
- ^ Jump up to: а б Руководство 1969 года , с. 2.16.
- ^ Руководство 1969 г. , с. 3.6.
- ^ Руководство 1969 г. , с. 2.13.
- ^ Jump up to: а б с Руководство 1969 года , с. 2.8.
- ^ Руководство 1969 г. , стр. 2.11, 2.17.
- ^ Руководство 1969 г. , с. 2.7.
- ^ Руководство 1969 г. , с. 2.5.
- ^ Руководство 1969 г. , с. 2.6.
- ^ Руководство 1969 г. , с. 3.5.
- ^ Руководство 1969 г. , с. 3.1.
- ^ Руководство 1969 г. , с. 3.7.
- ^ Руководство 1969 г. , с. 2.4.
- ^ Руководство 1969 г. , с. 3.9.
- ^ Руководство 1969 г. , с. 1.1.
- ^ Jump up to: а б Руководство 1969 года , с. 4.1.
- ^ Руководство 1969 г. , с. 2.12.
- ^ Руководство 1969 г. , с. 4.2.
- ^ Руководство 1969 г. , с. Б.1.
- ^ Руководство 1969 г. , с. Д.1.
Библиография
[ редактировать ]- БЕЙСИК-8 . ДЕКАБРЬ. Март 1969 года.
- Ахль, Дэвид; Ахль, Бетси (3–4 апреля 2013 г.). «Дэйв Ал и Бетси Ал» (Интервью). Беседовал Кевин Савец. ANTIC: 8-битный подкаст Atari.
- Андерсон, Джон Дж. (ноябрь 1984 г.). «Дэйв рассказывает Алу историю Creative Computing» . Творческие вычисления . стр. 66–74.