Бейсик Вильнюс
| Класс языка: |
алгоритмическое, процедурное |
|---|---|
| Тип исполнения: | |
| Появился в: |
1985 |
| Расширение файлов: |
BAS |
| Типизация данных: |
нестрогая |
| Испытал влияние: |
Бейсик Вильнюс (также известен как BASIC-86) в реализация языка программирования Бейсик для 16-разрядных домашних и учебных компьютеров с процессорами архитектуры PDP-11. Разработан в вычислительном центре Вильнюсского государственного университета (ВЦКП ВГУ) в 1985 году. Использовался на компьютерах: ДВК, БК-0010/БК-0011, УКНЦ, Немига.
По-видимому, Бейсик Вильнюс был разработан под сильным влиянием MSX BASIC: совпадают названия большинства операторов и функций, а также коды сообщений об ошибках. Но в Бейсик Вильнюс нет возможности записи нескольких операторов в одной строке, нет оператора PLAY и некоторых других возможностей. Кроме того, изображение символа с кодом 36, которое в кодировке ASCII соответствует символу доллара ($), заменено на изображение общего знака денежной единицы (¤). Поэтому все строковые переменные и функции со строковым результатом пишутся через ¤, например, функция MID$ превратилась в MID¤.
Содержание |
[править] Исполнение
При запуске программы командой RUN происходила компиляция программы в промежуточный, так называемый шитый код. Шитый код, по сути, представляет собой последовательность адресов вызова подпрограмм и данные для вызовов. Команда кодируется в памяти числом, а параметры команды следуют за ней текстом. При выполнении программы, исполняющая система производит вызовы указанных подпрограмм и передаёт им подготовленные данные. Таким образом, шитый код выполняется намного быстрее чем обычная интерпретация, но в несколько раз медленнее чем программа в машинном коде.
[править] Варианты
Бейсик Вильнюс для БК-0010/БК-0011 занимает 24 КБ ПЗУ. В целях экономии памяти тексты ошибок не были зашиты в ПЗУ; ошибки выдаются не текстом, а кодами, например: «Ошибка 2 в строке 10».
Существует три варианта Бейсик Вильнюс для УКНЦ в версия в кассете ПЗУ занимает 24 КБ, версия для загрузки через сеть (сетевая) в 28 КБ, дисковая версия в 30 КБ. Дисковая и сетевая реализации отличаются наличием текстовых сообщений об ошибках. Последние варианты датируются сентябрём 1988 года.
[править] Взгляд на язык
Пример простейшей программы:
10 CLS 20 PRINT "Привет, мир!" 30 END
Программа состоит из набора нумерованных строк, в каждой строке записывается один оператор. Работа по редактированию текста программы происходит в режиме командной строки. Команды:
RUNв запуск программы на выполнениеCONTв продолжение работы программы после остановкиCSAVE,CLOADв запись/чтение программы на магнитную ленту и с неё, расширение файла.CODLISTв вывод текста программы на экран.в вызов строки на редактированиеDELETEв удаление строкNEWв удаление всей программыRENUMв перенумерация строкAUTOв ввод программы с автонумерацией строк
Операторы языка:
BEEP CALL CIRCLE CLEAR CLOSE CLS COLOR DATA DEF DEF FN DEF USR DIM DRAW END FOR GOSUB GOTO IF INPUT KEY LET LINE LOCATE ON OPEN OUT NEXT PAINT POKE PRESET PRINT PSET READ REM RESTORE RETURN STOP TROFF TRON
Есть возможность сокращать операторы до трех символов (например: CIRCLE можно сократить до CIR), а некоторые, первые два символа которых не совпадают ни с одним другим оператором в до двух (POKE в PO). Также есть возможность использовать цепочную конструкцию IF в THEN в ELSE IF, пользуясь при этом сокращениями TH, EL и ELIF. При этом максимальная длина одной строки программы ограничивается 254 символами.
Функции:
SQR SIN COS TAN ATN PI EXP LOG ABS FIX INT SGN RND FRE CINT CSNG CDBL PEEK INP BIN¤ OCT¤ HEX¤ CHR¤ ASC LEN STRING¤ INKEY¤ STR¤ VAL MID¤ CSRLIN POS LPOS EOF POINT
Бейсик Вильнюс включает в себя возможности вызова подпрограмм в машинном коде. Для этого используется конструкция DEF USR. Машинный код может загружаться командой BLOAD либо формироваться оператором POKE.
[править] Интересные факты
- В Бейсик Вильнюс использовался популярный в то время алгоритм генерации случайных чисел RANDU, и пользователями БК был замечен существенный недостаток алгоритма[1] в например, при отрисовке большого паллетного количества точек, координаты которых получены функцией
RND(), было хорошо видно разделение точек по диагональным плоскостям.
[править] Литература
- Программное обеспечение микро-ЭВМ «Электроника БК-0010». Язык «Бейсик». Описание языка. в ВЦ Вильнюсского госуниверситета, 1985. в 95 с.
- Программное обеспечение комплекса вычислительного учебного «Электроника МС 0202». Бейсик. Описание языка. в 1987. в 98 с.
- Авсеев В., Авсеев А. Особенности транслятора с языка Бейсик для БК-0010.01 // Информатика и образование. в 1990. в в„– 2. в С. 42в46.
- Митрюхин В. К., Донской А. Н., Михайлов А. В., Немов А. М. Программирование на БК-0010-01. в Чебоксары: РИО Чебоксарской типографии в„–1, 1993. в 1993 с.
[править] Примечания
- в‘ М. Максимов. Случайны ли случайные числа? в Журнал «Наука и жизнь», в„–10, 1986.
[править] Ссылки
- Исходный код Бейсик Вильнюс 1985 для БК на MACRO-11
- Исходный код Бейсик Вильнюс 1987 для БК на MACRO-11
| Это заготовка статьи о компьютерных языках. Вы можете помочь проекту, исправив и дополнив её. |
| Диалекты языка программирования Бейсик | |
|---|---|
| Классические |
Altair BASIC Applesoft BASIC Atari BASIC (ST) BASIC Programming Color BASIC Commodore BASIC Dartmouth BASIC Family BASIC G-BASIC GFA BASIC GW-BASIC HP BASIC for OpenVMS IBM (BASICA Cassette Disk) Integer BASIC Locomotive BASIC Mallard BASIC Microsoft BASIC MSX BASIC ScriptBasic Sinclair BASIC STOS BASIC TI BASIC (TI 99/4A калькуляторы) Tiny BASIC Turbo-Basic XL UBASIC Бейсик Вильнюс |
| Переходные | |
| Процедурные | |
| Объектные | |
| Мобильные | |