Russian English
   Basic.net
Среда, 23.09.2020, 03:13
Меню сайта
Категории раздела
Basic [44]
Помощь [0]
Облако тегов
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа
Главная » Статьи » Basic

Turbo Basic
Share |
Turbo Basicкомпилятор языка BASIC, а также его диалект, первоначально созданный Робертом «Бобом» Зейлом и впоследствии выкупленный у него компанией Borland.

Роберт «Боб» Зейл в 1987 году на основе своей многолетней разработки BASIC/Z создал Turbo Basic, а затем продал его компании Borland. Журнал Infoworld назвал его одним из самых значительных продуктов того года.

Для данного ПО в период 1987—1988 гг. характерен «чёрный экран» Borland, схожий с Turbo Pascal 4.0, Turbo C 1.0/1.5 и Turbo Prolog 1.1. Borland не применяла свой фирменный «голубой экран» в IDE вплоть до периода 1989 г., когда были выпущены Turbo C 2.0, Turbo C++ 1.1 и др. К этому времени Turbo Basic и Turbo Prolog уже больше не продавались.

  • Turbo Basic 1.0 поставлялся на двух 5.25" дискетах с файлами, датированными 20 апреля 1987 года 01:00.
  • Turbo Basic 1.01 также поставлялся на двух 5.25" дискетах, но в комплект входило руководство на 466 страницах. Файлы были датированы 4 ноября 1987 года 01:10.

В отличие от большинства реализаций Бейсика того периода, Turbo Basic был полным компилятором, генерировавшим родной код для MS-DOS. Прочие реализации были или лишь интерпретаторами, или сильно зависели от библиотеки времени исполнения (англ. runtime library). В самой IDE можно было запускать программы на языке Бейсик «изнутри» для традиционной отладки Бейсик-кода (см. пример ниже), или генерировать отдельный исполнимый файл для MS-DOS, который можно было запускать на других системах без установки Turbo Basic или библиотек для запуска.

Когда Borland приняла решение прекратить выпуск этого продукта, Зейл выкупил его обратно, в 1990 году переименовав его в PowerBASIC, и основал PowerBASIC Inc. для продолжения его поддержки и развития.


Описание языка

Структура кода

Основной структурной единицей кода является строка. Одна строка может содержать один или несколько операторов, разделенных двоеточием (допускается перенос оператора на другую строку при помощи знака переноса _). Пример:

a=1:b=1
a=1:b_
=1

Допускается необязательная нумерация строк, а также использование меток для перехода в нужные части программы. Метка размещается в отдельной строке, начинается с буквы и содержит любое количество букв и цифр. После метки ставится двоеточие. Пример:

aaa:
x=x+1
...
GOTO aaa

Имена переменных, меток или процедур образуются из букв от A до Z (или от a до z), знака подчеркивания _ и цифр от 0 до 9, и должны начинаться с буквы.

Комментарии обозначаются при помощи апострофа (') в начале строки.

Типы данных

Допускаются следующие типы данных: целый (значения от −32767 до 32767, занимает 2 байта); длинный целый (от −25310 до 25310, 4 байта); вещественный (4 байта); вещественный двойной точности (8 байт); символьный (последовательность любых символов, каждый символ занимает 1 байт).

Тип переменной определяется типом данных, которые она представляет (определяется специальным символом). Если знак после имени отсутствует, то эта переменная считается по умолчанию вещественной обычной точности.

Массивы

В Turbo Basic допускается создание одномерных и двумерных массивов при помощи оператора DIM с указанием размеров. В описании массива вместо константы может использоваться переменная (например, DIM a(n)), но значение n должно быть предварительно определено. При помощи оператора ERASE можно освободить память, выделенную под массив, и вернуть ее для дальнейшего

Выражения

Предусмотрена поддержка двух типов выражений: символьные и числовые. Символьные выражения состоят из символьных констант (последовательность символов, заключенная в кавычки), символьных переменных, символьных функций, соединенных знаком + (конкатенация, или объединение). При помощи функций LEFT$, RIGHT$, MID$ можно выбрать часть символьной переменной слева, справа или из середины.

Числовые выражения включают в себя константы, переменные, функции, соединенные знаками арифметических операций, при этом могут использоваться величины разных типов.

Также поддерживаются приоритеты для арифметических операций.

Стандартные функции

В Turbo Basic присутствует набор из нескольких стандартных операций:

  • ABS (x) — модуль x
  • SIN (x) — sin x
  • COS (x) — cos x
  • TAN (x) — tg x
  • ATN (x) — arctg x
  • EXP (x) — e 5x
  • LOG (x) — ln x
  • LOG2(x) — логарифм x по основанию 2
  • LOG10(x) — lg x
  • INT (x) — целая часть х
  • SGN (x) — знак х (+1 при х > 0, 0 при х=0, −1 при x < 0)
  • SQR (x) — квадратный корень из х
  • LEN (а$) — количество символов а$
  • LEFT$(a$,n) — выбирает из a$ n символов, начиная с первого
  • MID$ (a$,m, n) — выбирает из a$ n символов, начиная с m-го
  • RIGHT$ (a$,n) — выбирает n символов а$, начиная с последнего
  • STR$ (x) — преобразует число к символьному виду
  • VAL (a$) — определяет числовое значение а$
  • ASC (a$) — определяет код первого символа а$
  • TAB (n) — указывает номер позиции для вывода следующего элемента в списке вывода оператора PRINT
  • SPC (n) — вывод n пробелов, используется в списке вывода оператора PRINT
  • RND [(x)] — выдает случайное число из интервала (0,1)

Также предусмотрены операции отношения и логические операции (AND (логическое и), OR (логическое или), XOR (исключающее или), EQV (эквивалентность), IMP (импликация)). Кроме этого, присутствует некоторая библиотека стандартных процедур.

Примеры кода

Нижеследующая программа представляет собой пример Алгол-подобного диалекта Бейсика, поддерживаемого Turbo Basic. В отличие от традиционного Бейсика, использующего нумерацию строк и обладающего ограниченными управляющими структурами без поддержки подпрограмма в стиле Алгола, новые диалекты Бейсика, появившиеся в этот период, были расширены для обеспечения совместимости языка с новой теорией структурного программирования путем отказа от нумерации строк и добавлением управляющих структур и подпрограммных определений, необходимых для структурного программирования.

 INPUT "Ваше имя:", A$
PRINT "Привет "; A$
DO
S$ = ""
INPUT "Сколько звезд вы хотите напечатать?"; S
FOR I = 1 TO S
S$ = S$ + "*"
NEXT I
PRINT S$
DO
INPUT "Хотите ли вы напечатать еще звезд?"; Q$
LOOP WHILE LEN(Q$) = 0
Q$ = LEFT$ (Q$, 1)
LOOP WHILE (Q$ = "Y") OR (Q$ = "y")
PRINT "До свидания "; A$

Как и в других продуктах Borland этого периода, код исполнялся внутри самой IDE.


Категория: Basic | Добавил: Admin (07.12.2010)
Просмотров: 9638 | Рейтинг: 2.7/3
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Наш опрос
Какую версию Basic вы предпочитаете?
Всего ответов: 2028

© Basic.ucoz.net, 2020