Turbo Basic (Turbo Basic)

Перейти к навигации Перейти к поиску
Turbo Basic
Скриншот программы Turbo Basic
Среда разработки Turbo Basic
Тип Интегрированная среда разработки
Разработчик Borland
Написана на Бейсик
Операционная система MS-DOS
Языки интерфейса Basic
Первый выпуск 1987
Аппаратная платформа x86
Последняя версия 1.1
Состояние Abandonware
Лицензия Проприетарная

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

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

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

Для данного ПО в период 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 страницах[2][3]. Файлы были датированы 4 ноября 1987 года 01:10.[4]

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

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

Описание языка[править | править код]

Структура кода[править | править код]

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

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

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

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

Имена переменных, меток или процедур образуются из букв от A до Z (или от a до z), знака подчеркивания _ и цифр от 0 до 9 и должны начинаться с буквы. В отличие от имён переменных и функций, имена процедур не должны заканчиваться знаками типа: "%", "&", "!", "#" и "$".

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

Типы данных[править | править код]

Допускаются следующие типы данных: целый (значения от −32 768 до 32 767, занимает 2 байта); длинный целый (от −2 147 483 648 до +2 147 483 647, 4 байта); вещественный (4 байта); вещественный двойной точности (8 байт); символьный (последовательность любых символов, каждый символ занимает 1 байт).

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

Специальные символы и соответствующие типы переменных
Символ определения типа Тип переменной
% Целое число
& Длинное целое
! Вещественное число
# Вещественное число двойной точности
$ Строка

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

В Turbo Basic допускается создание до 8-мерных массивов при помощи оператора 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^(x)
  • 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)

Также предусмотрены операции отношения и логические операции: NOT (логическое не), 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.

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

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