Jump to content

Би-би-си БЕЙСИК

Би-би-си БЕЙСИК
Разработчик Желудь Компьютерс Лтд.
Впервые появился 1981 год ; 43 года назад ( 1981 )
Платформа Микрокомпьютер BBC (6502)
Желудь Архимеда (ARM)
ПК Acorn RISC (ARM / StrongARM)
ТЫ Желудь 6502 МОС
ОС Acorn RISC
Под влиянием
Сторонние порты для MS Windows
Продолжение поддержки ARM сторонними организациями

BBC BASIC — это интерпретированная версия языка программирования BASIC . Он был разработан компанией Acorn Computers Ltd выбрала их , когда BBC для поставки компьютера для своего проекта BBC Literacy Project в 1981 году.

Первоначально он поставлялся в составе установленного ПЗУ для микрокомпьютера BBC , в котором использовался микропроцессор 6502 . Когда Acorn выпустила компьютер Archimedes , в котором использовался процессор ARM , были созданы и другие версии BBC BASIC. Acorn включила встроенный ассемблер сначала для процессора 6502, а затем для процессора ARM2 .

Изначально BBC указала совместимость с Microsoft BASIC . Acorn уже расширяли свой более ранний Atom BASIC , включив в него конструкции структурированного программирования . В частности, на более поздних компьютерах Archimedes, поскольку ограничения памяти уменьшились, BBC BASIC включил более полный набор конструкций структурированного программирования, обычно встречающихся в ALGOL 60 группе компьютерных языков .

Наряду с версией BBC BASIC для Archimedes, разработанной Acorn, сторонние компании выпустили скомпилированные версии языка. Разработка и поддержка новых компьютеров на базе ARM продолжались после закрытия компании Acorn Computers Ltd. BBC BASIC теперь доступен на других платформах либо в виде эмуляторов , например, в MS Windows , либо в исходном виде.

Языки-предшественники

[ редактировать ]

До 1957 года программирование осуществлялось с использованием машинного кода или ассемблерного кода . Они были предназначены для процессора и не были портативными.

Затем были разработаны языки программирования высокого уровня, позволяющие легче переносить программы между компьютерами:

В период 1960–1980 годов было разработано гораздо больше компьютерных языков. Сейчас немногие из них используются регулярно. Наиболее известными были АЛГОЛ W. [6] в Стэнфордском университете , Паскаль [7] [8] плюс ПОП-2 [9] в Эдинбургском университете .

К&Р С [10] был разработан как язык для написания операционной системы UNIX . Это было формализовано как ANSI C. [11] [12] из которого позже были созданы C++ и JAVA .

В Дартмутском колледже два профессора математики [13] хотел, чтобы все студенты могли программировать на своем новом компьютере в колледже. Существующие языки высокого уровня использовались профессионалами. В 1964 году они создали Dartmouth BASIC. [14] (сокращение от » начинающих символический «Универсальный код инструкций для ) , чтобы стать компьютерным языком, который мог бы использовать каждый. структуру , основанную на формулах, Имея синтаксическую это упрощенный FORTRAN.

Вместе Пол Аллен и Билл Гейтс разработали BASIC для Altair 8800 . Развитием продолжали становиться IBM от BASIC A и BASIC от Microsoft . [15]

участие BBC

[ редактировать ]

В 1970-х годах Департамент непрерывного образования BBC рассматривал вопрос о том, как достижения в области компьютерных технологий повлияют на британское общество. Их отчет по микроэлектронике [16] в 1979 году Комиссии по трудовым ресурсам официально описывает свою обеспокоенность по поводу растущей поляризации и отчуждения на рабочем месте, которую 43 года назад Чарльз Чаплин продемонстрировал с комическим эффектом в «Новых временах» .

BBC требовался микрокомпьютер , который можно было бы использовать для демонстрации своих программ, который могла бы купить широкая публика, чтобы дать зрителю возможность экспериментировать самостоятельно. Они решили, что такой микрокомпьютер должен быть надежным, иметь возможности расширения и реализацию BASIC, совместимую с Microsoft BASIC VN5 . [17]

Совместно правительство и BBC организовали кампанию по информированию и просвещению общественности. Этот проект компьютерной грамотности (1980–1989) [18] использовал выбранный BBC микрокомпьютер BBC производства Acorn Computers Ltd. BBC BASIC занимал центральное место в пользовательском программировании.

Участие Acorn

[ редактировать ]

Acorn впервые разработала System BASIC и Atom BASIC для своих ранних 6502 . микропроцессорных компьютеров [19] которые были проданы покупателям комплектов. Разрабатывая Proton в качестве интерфейсного процессора , компания Acorn стремилась обеспечить более мощные вычисления.

Чтобы создать компьютер, соответствующий спецификации BBC, Proton стал микрокомпьютером BBC, который можно было использовать как автономный компьютер. Сохранив возможность подключения к компьютеру Z80 , Acorn смогла удовлетворить требования к компьютеру, поддерживающему CP/M . [20]

Софи Уилсон разработала реализацию BASIC в Acorn. Диалект на микрокомпьютере BBC стал совместимым с Microsoft BASIC и поэтому был приемлем для BBC. В нем уже были функции группы компьютерных языков ALGOL 60, которые Уилсон добавил, чтобы можно было использовать некоторую методологию структурированного программирования.

Платформы и версии

[ редактировать ]

Би-би-си микро

[ редактировать ]
Подсказка BASIC на BBC Micro после включения или аппаратного сброса

Полный список версий доступен здесь: [21]

BASIC I, первоначальная версия, поставлялась на ранних версиях BBC Micros .

BASIC II использовался в Acorn Electron и BBC Micros, выпущенных после 1982 года, включая модель B. Он добавил OPENUP и OSCLI ключевые слова, а также смещенная сборка и исправления ошибок. [22]

BASIC III был выпущен как в версии для Великобритании, так и в версии для рынка США для неудачной попытки Acorn выйти на трансатлантический компьютерный рынок. Помимо нескольких исправлений ошибок, единственным изменением по сравнению с BASIC II было то, что COLOUR команду также можно написать COLOR: независимо от того, что было введено, в британской версии это всегда указывалось как COLOUR, версия для США как COLOR. Основное место, где можно найти BASIC III, — это версия HI-BASIC для внешнего второго процессора.

BASIC IV, также известный как CMOS BASIC, доступный на машинах BBC Master , был изменен для использования новых инструкций, доступных в процессоре 65SC12, что уменьшило размер кода и, следовательно, позволило включать LIST IF, EXT# как заявление, EDIT, TIME$, ON PROC, | в VDU операторы и более быстрая операция с плавающей запятой. Исправления ошибок снова были включены.

BASIC IV (1986) был дальнейшим усовершенствованием BASIC IV и был включен в машину Master Compact. Версия BASIC для Compact включала перекодированные математические процедуры, которые, как утверждается, обеспечивают увеличение скорости на 30% по сравнению с версией, включенной в остальную часть серии Master. [23]

HI-BASIC был доступен в двух версиях: первая на основе BASIC III, а вторая — на BASIC IV. Оба были созданы для работы с более высоким адресом (&B800) на втором процессоре, а не с обычным адресом &8000 на BBC B. Это позволило получить больше программного пространства как на внешнем, так и на внутреннем 6502-секундном процессоре. Была представлена ​​версия для поддержки второго процессора Zilog Z80 . [24]

Другая версия BBC BASIC, названная BAS128, поставлялась на пленке и диске вместе с BBC Master и Master Compact; он загружался в основную ОЗУ и использовал 64 КБ боковой ОЗУ для пользовательских программ. Это обеспечивало поддержку гораздо более крупных программ, но было намного медленнее, чем обычная версия на базе ПЗУ.

Интерпретатор может работать как с языком ассемблера BASIC, так и с языком ассемблера 6502, который может быть включен между символами [ и ]. Это способствовало популярности системы среди промышленных и исследовательских инженеров. [25]

Дополнительная информация/определение версии BASIC

[ редактировать ]

Поскольку ОС BBC MOS и RISC обычно поставлялись в ПЗУ, можно предположить, что конкретная версия операционной системы содержала определенную версию BASIC. Таким образом, не существует простого способа определить, какая версия BASIC на самом деле работает, кроме как запросить идентификатор операционной системы и, таким образом, сделать предположение.

Обратите внимание, что все микрокомпьютеры Electrons, а позже и BBC имеют BASIC2: более ранние микрокомпьютеры BBC имеют BASIC1. Если вы не уверены, какая версия BASIC установлена ​​на вашем компьютере, введите REPORT после запуска BASIC (после BREAK или *BASIC), чтобы распечатать сообщение об авторских правах. Если дата 1981 г., устанавливается BASIC1; если это 1982 год, у вас есть BASIC2. Американские машины или машины со вторым процессором могут иметь US BASIC или HIBASIC: процедуры ПЗУ для этих ПЗУ не будут находиться в одном и том же месте.
— РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ БАЗОВОЙ ПЗУ

См. также статью BeebWiki для INKEY.

В семействе BBC можно запускать как стандартный BASIC , так и расширенный HIBASIC на втором процессоре 6502. Определить, работает ли программа на втором процессоре, можно, проверив начальное значение PAGE. При использовании второго процессора оно будет равно &800. Чтобы отличить BASIC от HIBASIC, следует изучить начальное значение HIMEM. Это будет &8000 для BASIC, работающего на втором процессоре, и &B800 для HIBASIC, работающего на втором процессоре.

Аналогичная ситуация существует в ОС RISC , где может быть обычный BASIC или BASIC64 (который обеспечивает более высокую точность математических вычислений). Обычный BASIC идентифицирует себя как «BASIC V», а BASIC64 идентифицирует себя как «BASIC VI», поэтому следующее (используемое до возникновения какой-либо ошибки) позволит отличить одно от другого:

IF INSTR(REPORT$,"VI") THEN PRINT "BASIC64" ELSE PRINT "BASIC"

Есть лучшие способы сделать это. [ по мнению кого? ] См . BeebWiki . Почти во всех случаях вам не нужно тестировать, на каком BASIC или платформе работает ваша программа, просто сделайте вызов и прочитайте все возвращаемые данные и обработайте их. [ оригинальное исследование? ]

Желудь Архимеда (ОС RISC)

[ редактировать ]

С переходом на 32-битный процессор ARM и снятием ограничения на размер кода BASIC в 16 КБ было добавлено множество новых функций. [26] BASIC V версии 1.04 имел длину 61 КБ. Текущий [ когда? ] версии ОС RISC по-прежнему содержат интерпретатор BBC BASIC V. Исходный код версии BBC BASIC V для RISC OS 5 был выпущен под лицензией Apache 2.0 компанией RISC OS Open .

Среди новых поддерживаемых команд и функций были:

  • WHILE-ENDWHILE
  • IF-THEN-ELSE-ENDIF
  • CASE-OF-WHEN-OTHERWISE-ENDCASE,
  • RETURN параметры в процедурах,
  • локальные массивы,
  • библиотеки процедур ( LIBRARY, INSTALL и OVERLAY),
  • LOCAL DATA и LOCAL ERROR обработчики,
  • родственник RESTORE,
  • операции с массивами ,
  • новые операторы,
  • STEP TRACE,
  • Команды для новой звуковой системы, мыши, графики.

Графические команды были полностью обратно совместимы , звук — в меньшей степени; например, ENVELOPE Ключевое слово, начиная с BASIC V, — это команда, которая принимает четырнадцать числовых параметров и фактически ничего не делает — как и в более старых версиях, она вызывает OS_Word 8, но она ничего не делает в ОС RISC. [27] Встроенный ассемблер 6502 был заменен ассемблером ARM . Acorn назвал BASIC V «безусловно самым быстро интерпретируемым BASIC в мире» и «вероятно, самым мощным BASIC на любом компьютере».

BASIC VI — это версия BASIC V, которая поддерживает действительные числа в 8-байтовом формате IEEE 754 , в отличие от стандартного 5-байтового формата, представленного в BASIC I.

BBC BASIC V и VI поставлялись в стандартной комплектации для Acorn Archimedes и RiscPC . Также была доступна версия BBC BASIC V для работы на втором процессоре ARM для BBC Micro.

Компилятор для BBC BASIC V был создан Полом Феллоузом, руководителем группы разработки ОС Arthur, под названием Archimedes BASIC Compiler и первоначально опубликован DABS Press. [ нужна ссылка ] ABC удалось реализовать почти весь язык, за очевидным исключением функции EVAL, которая неизбежно требовала программной интерпретации во время выполнения. В качестве доказательства своей полноты он мог поддерживать встроенный синтаксис ассемблера. Компилятор был написан на BBC BASIC V. Компилятор (работавший под управлением интерпретатора на ранних стадиях разработки) мог компилироваться сам, а распространяемые версии представляли собой самокомпилируемый объектный код. [ оригинальное исследование? ] Многие приложения, изначально написанные для работы под интерпретатором, получили выгоду от прироста производительности, который это дало, что поставило BBC BASIC V в один ряд с другими языками для серьезной разработки приложений.

Другие платформы

[ редактировать ]

BBC BASIC также был портирован на многие другие платформы. [28]

Версия BBC BASIC NS32016 поставлялась с сопроцессором Acorn 32016 и Acorn ABC.

В дополнение к версии BBC BASIC, поставляемой со вторым процессором Zilog Z80 BBC Micro , также существует версия BBC BASIC на базе Z80 для CP/M систем на базе . Версия BBC BASIC для Zilog Z80 также использовалась на настольном компьютере Tiki 100 , портативном компьютере Cambridge Z88 и ноутбуках Amstrad NC100 и Amstrad NC200 . Данная версия реализована на TI-83 Plus и TI-84 Plus серий графических калькуляторах . Благодаря усилиям Дж. Г. Харстона (также ответственного за PDP-11) . версию [29] ) версия BBC BASIC для ZX Spectrum была выпущена в январе 2002 года, в последующие выпуски было внесено множество улучшений.

Для систем на базе ПК BBC BASIC также был реализован для DOS как BBCBASIC (86) , нацеленный на максимальную совместимость с BBC Micro, и BBasic , сконцентрированный на языке BASIC, с собственными улучшениями на основе BASIC II.

Версия BBC BASIC, интегрированная с Microsoft Windows графическим пользовательским интерфейсом , BBC BASIC для Windows, созданная Ричардом Расселом , разработчиком версий Z80 и x86 , была выпущена в 2001 году. Эта версия все еще находится в активной разработке и в настоящее время широко используется в промышленности. Хотя версия для Windows практически полностью поддерживает исходную спецификацию BBC BASIC (BASIC IV), она поддерживает большую часть синтаксиса BASIC V/VI, а также некоторые собственные расширенные функции. Уникальные функции BBC BASIC для Windows включают поддержку интерпретатора для типов записей/структур, а также возможность вызова подпрограмм Windows API или процедур из внешней DLL . Последние версии включают расширенные функции, сравнимые с такими языками, как C , а во внешней библиотеке недавно добавлена ​​поддержка объектов.

BBC BASIC для SDL также был разработан Ричардом Т. Расселом и поддерживает Windows, Linux и ряд мобильных устройств, поддерживающих библиотеку SDL, а также версию, которая позволяет запускать программы BBC BASIC в виде апплетов на веб-странице через Фрейм веб-сборки [ временные рамки? ] электронная работа.

клон лицензией GPL BBC BASIC под под названием Brandy , написанный на портативном языке C. Также доступен [30] [31] Ее форк, Matrix Brandy , все еще находится в активной разработке. [32]

Эмулятор BBC Micro для Commodore Amiga был произведен компанией Ariadne Software для CBM (Великобритания). Хотя он был чрезвычайно быстрым, он не эмулировал 6502 на полной скорости, поэтому ассемблерный код работал медленнее, чем настоящий BBC, в то время как программы BASIC работали намного быстрее. Благодаря взаимодействию оптимизированного BASIC и эмуляции 6502 коммерческие игры почти не запускались, но хорошо работающий код и образовательное программное обеспечение в целом работали. Кроме того, он использовал немного менее точный числовой формат с плавающей запятой . Некоторое время он был включен в специальный академический пакет Amiga 500 в надежде, что школы заменят свои устаревшие BBC B на Amiga 500.

Версия BBC BASIC V (Z80) также была создана TI-83/84+ Texas Instruments Бенджамином Райвсом для семейств калькуляторов .

Версия Commodore 64 для Shado была выпущена небольшой компанией по разработке программного обеспечения Aztec Software в начале 1980-х годов. [33] Исправленные версии HI-BASIC на базе Acorn 6502 также экспериментально запускались на C64 с интерфейсом к ядру C64, заменяя вызовы Acorn MOS, выполненные в противном случае.

Также были предприняты попытки сделать версию BBC BASIC на базе 6502 доступной на Apple II . Applecorn – одна из таких попыток.

BBC BASIC — это язык программирования, используемый в Agon Light, с открытым исходным кодом 8-битном Z80 на базе одноплатном компьютере и микроконтроллере , разработанном Бернардо Каструпом и выпущенном в 2022 году. [34]

Пример кода

[ редактировать ]
REM Acorn Archimedes version
ON ERROR : ON ERROR OFF : PRINT REPORT$; " at line ";ERL : END
MODE MODE : REM clears the screen
PROC_triangle(700,700,500,200,500,900,"F")
END

DEF PROC_triangle(x1%,y1%,x2%,y2%,x3%,y3%,fill$)
LOCAL triangle_fill_plot_code%
triangle_fill_plot_code% = &55
MOVE x1%,y1%
DRAW x2%,y2%
IF fill$="F" THEN
PLOT triangle_fill_plot_code%,x3%,y3%
ELSE
DRAW x3%,y3% : DRAW x1%,y1%
ENDIF
ENDPROC : REM of PROC_triangle()

Примечания

[ редактировать ]

См. также

[ редактировать ]
  1. ^ «Фортран (история)» . ИБМ . Проверено 7 января 2024 г.
  2. ^ «Джон Маккарти» . Музей МТИ . Проверено 7 января 2024 г.
  3. ^ «Введение в ЛИСП» . Гики для Гиков . Проверено 7 января 2024 г.
  4. ^ «Рождение КОБОЛа» . Пенсильванский университет . Проверено 7 января 2024 г.
  5. ^ «Пересмотренный отчет об алгоритмическом языке АЛГОЛ 60» . Ассоциация вычислительной техники (ACM) . Проверено 7 января 2024 г.
  6. ^ «Описание языка Algol W» (PDF) . Проверено 7 января 2024 г.
  7. ^ «Паскаль (язык программирования)» . Проверено 7 января 2024 г.
  8. ^ Майкл Шейв (1975). Структуры данных . МакГроу-Хилл. стр. 132–136. ISBN  0-07-084059-8 .
  9. ^ Р. М. Берстолл; Дж. С. Коллинз; Р. Дж. Попплстоун. «Документы POP-2» (PDF) . Оливер и Бойд, ООО . Проверено 7 января 2024 г.
  10. ^ Керниган, Брайан В.; Ричи, Деннис М. (1978). Язык программирования C (1-е изд.). Энглвуд Клиффс, Нью-Джерси: Прентис-Холл. ISBN  0-13-110163-3 .
  11. ^ Брайан В. Керниган; Деннис М.Ричи (1988). Язык программирования C (2-е изд.). Прентис Холл. ISBN  0-13-110362-8 .
  12. ^ Ричи, Деннис М. «Развитие языка C» . Ассоциация вычислительной техники, Inc. Проверено 7 января 2024 г.
  13. ^ «История событий» . Дартмутский колледж . Проверено 7 января 2024 г.
  14. ^ «Руководство по базовому обучению Дартмутского колледжа» (PDF) . Дартмутский колледж . Проверено 7 января 2024 г.
  15. ^ Маккракен, Гарри (29 апреля 2014 г.). «Пятьдесят лет BASIC, языка программирования, сделавшего компьютеры персональными» . Проверено 7 января 2024 г.
  16. ^ «Отчет по микроэлектронике» (PDF) . Департамент непрерывного образования BBC . Проверено 14 января 2024 г.
  17. ^ «Спецификация микрокомпьютера BBC» . Би-би-си . Проверено 14 января 2024 г.
  18. ^ «Проект компьютерной грамотности» . Би-би-си . Проверено 14 января 2024 г.
  19. ^ Ян Синклер (апрель 1981 г.). «Атомные исследования» (PDF) . Вычисления сегодня. стр. С21-24 . Проверено 21 января 2024 г.
  20. ^ «BBC Micro разжигает воспоминания о революции» . Новости Би-би-си. 21 марта 2008 года . Проверено 21 января 2024 г.
  21. ^ Список версий BBC BASIC
  22. ^ «Старое и новое» . Продвинутый курс домашнего компьютера . № 52. Орбис Паблишинг Лимитед. 1984. стр. 1037–1039. ISSN   0265-2919 . Проверено 11 мая 2024 г.
  23. ^ «Снимаем крышку с Master Compact» . Пользователь Желудя . Октябрь 1986 г., стр. 15, 17–18 . Проверено 5 сентября 2020 г.
  24. ^ Смит, Брюс (ноябрь 1984 г.). А и Б вычисления . Лондон: Публикации специалистов Argus. п. 6.
  25. ^ Марш, Дэвид (5 декабря 2005 г.). «ARM нацелена на доминирование в автомобильной и промышленной сфере» . ЭДН Европа . Проверено 1 августа 2012 г.
  26. ^ Роджер Уилсон (3 июля 1989 г.). «Изменения в BASIC V 1.02 по сравнению с 1.04 (для Ричарда Ллойда!)» . Группа новостей : eunet.micro.acorn . Usenet:   [электронная почта защищена] . Проверено 14 июня 2011 г.
  27. ^ «Тема: команда конверта в Basic V» .
  28. ^ BBC BASIC - MDFS::Software.$.BBCBasic
  29. ^ BBC BASIC для PDP-11
  30. ^ "Бренди" . Архивировано из оригинала 17 июля 2011 года . Проверено 6 июля 2011 г.
  31. ^ «Интерпретатор бренди Basic V» . Проверено 6 июля 2011 г.
  32. ^ «Матрикс Бренди БЕЙСИК VI» . Проверено 21 августа 2023 г.
  33. ^ «Commodore 64 BBC BASIC — MDFS::Software.BBCBasic.C64» .
  34. ^ «Olimex Forks Agon Light Бернардо Каструпа предлагает усовершенствованную конструкцию одноплатного компьютера Z80» . Хакстер.io . Проверено 24 декабря 2022 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: a407c27cce5fdaeca3e858f5640ee004__1718925840
URL1:https://arc.ask3.ru/arc/aa/a4/04/a407c27cce5fdaeca3e858f5640ee004.html
Заголовок, (Title) документа по адресу, URL1:
BBC BASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)