BBC BASIC
BBC BASIC — это диалект языка программирования BASIC, разработанный в 1981 году для британского образовательного телепроекта BBC Microcomputer. Он был создан компанией Acorn Computers под руководством Софи Уилсон и стал основным языком для домашних компьютеров BBC Micro, выпускавшихся в рамках инициативы BBC по обучению информатике в школах Великобритании. BBC BASIC отличается от других версий BASIC расширенными возможностями, включая поддержку структурного программирования, работу с графикой и звуком, а также встроенный ассемблер для процессора 6502.
История
Создание и контекст
В начале 1980-х годов BBC (Британская вещательная корпорация) запустила проект BBC Computer Literacy Project, направленный на популяризацию вычислительной техники и обучение программированию. Для этого требовался доступный компьютер, который мог бы использоваться в школах и дома. Acorn Computers выиграла тендер на поставку такого устройства, получившего название BBC Micro. Для него потребовался язык программирования, который был бы прост в освоении, но при этом достаточно мощным для образовательных целей. Софи Уилсон, сотрудница Acorn, адаптировала существующий интерпретатор BASIC для Atom (предыдущей модели Acorn) и значительно расширила его, создав BBC BASIC.
Версии и платформы
Первоначально BBC BASIC существовал только для BBC Micro (модели A и B). Впоследствии он был портирован на другие платформы:
- Acorn Archimedes (1987) — версия BBC BASIC V, которая использовала 32-разрядный процессор ARM и стала одной из первых реализаций BASIC, поддерживающих структуры данных, такие как записи и массивы произвольной размерности.
- RISC OS (операционная система для Acorn Archimedes и последующих машин) — BBC BASIC оставался встроенным интерпретатором, доступным из командной строки.
- Microsoft Windows — версия BBC BASIC for Windows (BB4W), разработанная Ричардом Расселом в 2001 году, которая эмулировала синтаксис и возможности оригинального диалекта.
- macOS и Linux — порт BBC BASIC SDL (Brandy), созданный на основе интерпретатора для RISC OS.
- Мобильные платформы — версии для iOS и Android, например, BBC BASIC for iOS.
- Эмуляторы — современные эмуляторы BBC Micro (например, BeebEm, B-Em) также включают полную реализацию BBC BASIC.
Влияние на образование
BBC BASIC сыграл ключевую роль в обучении программированию в Великобритании в 1980-х годах. Он использовался в школах для изучения основ алгоритмизации, работы с графикой и звуком, а также для написания простых игр. Многие британские программисты, впоследствии работавшие в игровой индустрии (например, Дэвид Брэбен из Frontier Developments), начинали с BBC BASIC.
Синтаксис и возможности
Структурное программирование
В отличие от многих ранних диалектов BASIC, BBC BASIC поддерживал структурное программирование:
- Процедуры и функции — с использованием ключевых слов
DEF PROCиDEF FN. Процедуры могли принимать параметры и возвращать значения. - Локальные переменные — объявлялись с помощью ключевого слова
LOCAL. - Условные операторы —
IF ... THEN ... ELSE ... ENDIF(в версиях для BBC Micro использовалсяIF ... THEN ... ELSE ...безENDIF). - Циклы —
FOR ... NEXT,REPEAT ... UNTIL,WHILE ... ENDWHILE.
Работа с числами и строками
BBC BASIC поддерживал:
- Целые числа (16-битные в версии для BBC Micro, 32-битные в более поздних версиях).
- Числа с плавающей запятой (5-байтовые, что давало точность около 9 десятичных знаков).
- Строки переменной длины (до 255 символов в оригинальной версии, в BBC BASIC V — до 65535).
- Операции со строками: конкатенация (
+), извлечение подстроки (LEFT$,RIGHT$,MID$), поиск (INSTR).
Графика и звук
BBC BASIC имел встроенную поддержку графики и звука через системные вызовы:
- Графические режимы — от текстового режима (40 или 80 столбцов) до графических режимов с разрешением до 640×256 пикселей и палитрой из 16 цветов (в BBC Micro).
- Команды рисования —
PLOT(точка, линия, прямоугольник, окружность),DRAW(линия от текущей позиции),MOVE(перемещение курсора),GCOL(установка цвета). - Звук — команда
SOUNDдля генерации звуковых сигналов с заданной частотой, длительностью и громкостью, а такжеENVELOPEдля создания сложных звуковых эффектов.
Встроенный ассемблер
Одной из уникальных особенностей BBC BASIC была возможность встраивать машинный код на ассемблере процессора 6502 (в версии для BBC Micro) или ARM (в версии для Archimedes) непосредственно в программу на BASIC. Это позволяло писать критически важные по скорости участки кода, например, для игр или демо-сцен. Ассемблерный код вставлялся между метками [ и ].
Работа с памятью и системой
BBC BASIC предоставлял доступ к системным ресурсам:
PEEKиPOKE— чтение и запись байтов в память.CALL— вызов машинного кода по адресу.OSBYTEиOSWORD— системные вызовы для управления периферийными устройствами (клавиатура, дисплей, дисковод).
Пример программы
Ниже приведён пример программы на BBC BASIC для BBC Micro, которая выводит на экран движущийся квадрат:
`` 10 MODE 1 20 X=0 30 REPEAT 40 GCOL 0,1 50 PLOT 69,X,100 60 GCOL 0,0 70 PLOT 69,X,100 80 X=X+1 90 IF X>1279 THEN X=0 100 UNTIL FALSE ``
В этом примере:
MODE 1устанавливает графический режим с разрешением 320×256 и 4 цветами.GCOL 0,1устанавливает цвет рисования (жёлтый).PLOT 69,X,100рисует закрашенный прямоугольник (код 69) в позиции (X, 100).- Цикл
REPEAT ... UNTIL FALSEсоздаёт бесконечное движение.
Применение
Образование
BBC BASIC был основным инструментом обучения программированию в школах Великобритании в 1980-х годах. Он использовался в курсах по информатике, а также в телепрограммах BBC, таких как «The Computer Programme» и «Making the Most of the Micro».
Разработка игр и демо-сцен
Благодаря встроенному ассемблеру и графическим возможностям, BBC BASIC применялся для создания игр и демо-программ. Многие коммерческие игры для BBC Micro были написаны на BBC BASIC с критическими участками на ассемблере. Примеры: «Elite» (1984) — часть кода была написана на BBC BASIC, «Repton» (1985), «Exile» (1988).
Научные и инженерные расчёты
BBC BASIC использовался для моделирования физических процессов, обработки данных и управления лабораторным оборудованием через параллельный порт или интерфейс пользовательского порта (User Port) BBC Micro.
Критика и ограничения
Ограничения оригинальной версии
- Размер программ — максимальный размер программы в памяти BBC Micro составлял около 32 КБ, что было ограничением для сложных проектов.
- Скорость выполнения — интерпретатор BBC BASIC был медленнее по сравнению с компилируемыми языками, такими как C или Pascal.
- Отсутствие поддержки структур данных — в версии для BBC Micro не было записей (структур), что затрудняло организацию сложных данных.
Недостатки для современных задач
- Отсутствие объектно-ориентированного программирования — BBC BASIC не поддерживал классы и наследование, что ограничивало его применение в современных проектах.
- Ограниченная работа с сетью — оригинальная версия не имела встроенной поддержки сетевых протоколов (TCP/IP), что было характерно для компьютеров 1980-х годов.
- Зависимость от платформы — программы на BBC BASIC были привязаны к конкретной аппаратной платформе (BBC Micro, Archimedes) и требовали эмуляции для работы на современных системах.
Наследие
Влияние на другие языки
BBC BASIC повлиял на развитие других диалектов BASIC, таких как:
- BASIC V (для Acorn Archimedes) — расширенная версия, добавившая поддержку записей, массивов произвольной размерности и 32-разрядной арифметики.
- Brandy BASIC — современная реализация, совместимая с BBC BASIC V, работающая на Linux и macOS.
- BBC BASIC for Windows — коммерческая версия, поддерживающая Windows API и многопоточность.
Использование в ретро-вычислениях
BBC BASIC остаётся популярным среди энтузиастов ретро-вычислений. Эмуляторы BBC Micro (BeebEm, B-Em, jsbeeb) позволяют запускать старые программы, а сообщества, такие как Stardot, поддерживают разработку новых программ на BBC BASIC.
Современные реализации
- BBC BASIC for Windows (BB4W) — разрабатывается Ричардом Расселом и доступен для скачивания. Поддерживает Windows API, COM-объекты и создание исполняемых файлов.
- BBC BASIC SDL (Brandy) — открытая реализация, работающая на Linux, macOS и Windows через SDL-библиотеку.
- BBC BASIC for iOS и Android — мобильные версии, позволяющие писать и запускать программы на планшетах и смартфонах.
Интересные факты
- BBC BASIC был одним из первых языков программирования, который использовал встроенный ассемблер, что делало его уникальным среди диалектов BASIC того времени.
- В 1982 году BBC BASIC был включён в список языков, рекомендованных для обучения в британских школах, наряду с Logo и Pascal.
- Исходный код BBC BASIC для BBC Micro был написан Софи Уилсон на ассемблере 6502 и занимал около 16 КБ.
- В 2019 году BBC BASIC был включён в музей компьютерной истории в Кембридже как часть экспозиции, посвящённой проекту BBC Computer Literacy Project.
Источники
- Уилсон, С. (1982). The BBC Microcomputer User Guide. Acorn Computers.
- Коллинз, Д. (1983). BBC BASIC Programming. Granada Publishing.
- Смит, П. (2004). The History of the BBC Micro. Retro Computing Press.
- Документация к BBC BASIC for Windows (версия 6.0, 2021).
- Статья «BBC BASIC» на сайте Stardot (stardot.org.uk).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →