stringtranslate.com

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

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 от Acorn для Archimedes сторонние компании выпустили скомпилированные версии языка. Разработка и поддержка новых компьютеров на базе ARM продолжались после закрытия компании Acorn Computers Ltd. BBC BASIC теперь доступен на других платформах либо в виде эмуляторов, например, в MS Windows , либо в исходном виде.

История

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

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

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

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

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

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

Вместе Пол Аллен и Билл Гейтс разработали BASIC для Altair 8800 . Развитием продолжали становиться BASIC A от IBM и 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#EDITTIME$ON PROCVDU

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», поэтому следующее (используемое до возникновения какой-либо ошибки) позволит отличить одно от другого:

ЕСЛИ INSTR ( REPORT$ , "VI" ), ТОГДА НАПЕЧАТАЙТЕ "BASIC64", ЛИБО НАПЕЧАТАЙТЕ "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 .

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

Графические команды были полностью обратно совместимы , звук — в меньшей степени; например, 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] ) в январе 2002 года была выпущена версия BBC BASIC для ZX Spectrum со многими улучшениями, внесенными в последующие выпуски.

Для систем на базе ПК 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 в виде апплетов на веб-странице через Веб-сборка кадр [ временные рамки? ] электронная работа.

Также доступен клон BBC BASIC под лицензией GPL под названием 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 .

Версия Shado для Commodore 64 была выпущена небольшой компанией по разработке программного обеспечения 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]

Примечания

Смотрите также

Рекомендации

  1. ^ «Фортран (история)» . ИБМ . Проверено 7 января 2024 г.
  2. ^ "Джон Маккарти". Музей МТИ . Проверено 7 января 2024 г.
  3. ^ «Введение в LISP». Гики для Гиков . Проверено 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 разжигает воспоминания о революции» . Новости BBC. 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:  [email protected] . Проверено 14 июня 2011 г.
  27. ^ «Тема: команда конверта в Basic V» .
  28. ^ BBC BASIC - MDFS::Software.$.BBCBasic
  29. ^ BBC BASIC для PDP-11
  30. ^ «Бренди». Архивировано из оригинала 17 июля 2011 года . Проверено 6 июля 2011 г.
  31. ^ "Интерпретатор Brandy 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 г.

Внешние ссылки