AmigaBASIC

Из Википедии, бесплатной энциклопедии

AmigaBASIC
Тип Microsoft BASIC
Разработчик Microsoft
Операционная система AmigaOS с 1.1 по 1.3
Аппаратные платформы Amiga / m68k
Последняя версия 1.2

AmigaBASIC — диалект языка программирования BASIC для ПК Amiga разработанный и написанный компанией Microsoft. AmigaBASIC поставлялся с ранними версиями AmigaOS с 1.1 по 1.3. Он сменил MetaComCo ABasic который был включён в AmigaOS 1.0 и 1.1, и сам был заменён на ARexx (диалект языка программирования REXX от компании IBM), начиная с AmigaOS 2.0 и старше.

Особенности реализации[править | править код]

AmigaBASIC стал одной из первых реализаций интерпретатора Бейсик в котором разработчики отказались от поддержки нумерации строк. Это было сделано для поддержки концепции структурного программирования, также реализованной компанией Microsoft в MacBASIC. Пользователи привыкшие к устоявшемуся синтаксису языка Бейсик в дартмутском диалекте не спешили переходить на новые реализации, а поглощение существующей кодовой базы ПО на языке Бейсик новыми реализациями от Microsoft было затруднительным из-за несовместимости. Также, было очевидно что AmigaBASIC от Microsoft практически не позволяет использовать обширные возможности платформы Amiga (по сравнению, например, с AMOS). Программы на AmigaBASIC могут получить доступ к системным библиотекам AmigaOS, однако работа с ними оказывается настолько громоздкой и подверженной ошибкам, что практической ценности эта возможность не представляет.

Ограничения и проблемы[править | править код]

AmigaBASIC считался сырым программным продуктом, но прежде всего слишком медленным. Производительность алгоритмов описанных на AmigaBASIC была оценочно в 1000 раз медленней, чем при реализации на C++ или ассемблере. Это косвенно подтверждалось тем, что простой холостой цикл на 1000 прогонов выполнялся AmigaBASIC за 800 мс, в то время как Commodore Basic на Commodore 64 (имеющем десятикратно менее производительный процессор по сравнению с Amiga) справлялся с этой задачей за 1000 мс. При этом, AmigaBASIC 1.0 предлагал пользователю от 10 до 25 Кб ОЗУ для хранения программ, что значительно меньше чем даже в базовом Commodore 64, не говоря уже о младшей Amiga 1000 (имевшей 256 Кб в базовой поставке и 512 Кб в расширенной).

Когда в продаже появились ПК Amiga с ОЗУ 1Мб и более, выяснилось что AmigaBASIC ограничен 24-битным адресным пространством, что соответствует 16 Мб ОЗУ и этот факт связан с его портированием на Amiga с Apple Macintosh. Программы на AmigaBASIC вышедшие из-за своего размера за этот искусственный предел просто не выполнялись.

Кроме того, продажи AmigaBASIC пострадали из-за очень плохой репутации языка Бейсик (в академических кругах). Поэтому большинство пользователей Amiga быстро переходили на C++, ассемблер или Модула-2, поскольку уже существовали производительные пакеты компиляторов для этих языков и только таким образом можно было использовать все возможности предоставляемые платформой. Сторонние производители несколько раз пытались обновить поддержку для языка Бейсик на Amiga путём перехода от интерпретатора к компилятору (например, HiSoft Basic Compiler, GFA-BASIC, MaxonBASIC), но с переменным успехом. Однако окончательным «смертным приговором» для AmigaBASIC стал спор о стоимости лицензии возникший когда компания Microsoft выставила счета корпорации Commodore. Поэтому Commodore отказались от дальнейших поставок AmigaBASIC пользователям.

Значение[править | править код]

Несмотря на относительно широкое распространение, этот диалект Бейсик никогда не играл коммерческой роли. Тем не менее, AmigaBASIC стал символом того времени, когда исходные коды программ и небольших игр для Amiga печатались в популярных периодических изданиях и газетах. Старые, возможно, любимые программы на AmigaBASIC проще всего переносить на QBasic или FreeBASIC, это требует небольших доработок.

Переход на ACE[править | править код]

Попытки создания компилятора для Бейсик совместимого с AmigaBASIC завершились с появлением компилятора ACE. Этот бесплатный компилятор был создан австралийцем Дэвидом Бенном из города Лонсестон на острове Тасмания и может создавать исполняемые файлы используя инструментарий a68k (ассемблер) и Blink (компоновщик). Таким образом, стало возможным написание программ с синтаксисом AmigaBASIC, способных использовать графический интерфейс Intuition и превосходящих по производительности оригинальную реализацию Microsoft. Последняя версия 2.4 (17 сентября 1996 г.) доступна для загрузки из хранилища Aminet.

Примеры программ[править | править код]

' Hello World for AmigaBASIC PRINT "Hello world!" 

Программист может получить больше используя следующий синтаксис:

SAY TRANSLATE$ ("HELLO WORLD") 

В этом случае Amiga не только напечатает текст на экране, но и произнесёт "Hello world" используя речевой синтезатор AmigaOS.

dr=3.14/180  FOR r=30 TO 330 STEP 2 FOR t=0 TO 355 STEP 5 x=r*COS(t*dr)*.5 y=r*SIN(r*dr)*.3 z=r*SIN(t*dr)*.5 xp=xp+(COS(15*dr)*z) yp=yp+(SIN(15*dr)*z) xp=xp+320 yp=50-yp PSET (xp,yp) NEXT t NEXT r 

Пример инженерной графики AmigaBASIC (построение 3d-поверхности)

См. также[править | править код]

Источники[править | править код]

Ссылки[править | править код]