Turbo Basic
| Turbo Basic | |
|---|---|
| | |
| Тип | Интегрированная среда разработки |
| Разработчик | Borland |
| Языки интерфейса | Basic |
| Аппаратная платформа | 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=1a=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)— модуль xSIN (x)— sin xCOS (x)— cos xTAN (x)— tg xATN (x)— arctg xEXP (x)— e^(x)LOG (x)— ln xLOG2(x)— логарифм x по основанию 2LOG10(x)— lg xINT (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)— указывает номер позиции для вывода следующего элемента в списке вывода оператораPRINTSPC (n)— вывод n пробелов, используется в списке вывода оператораPRINTRND [(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.
Примечания[править]
- ↑ We Created Turbo Basic…So Check Out the Upgrade! Архивировано 12 июня 2010 года.
- ↑ Borland Turbo BASIC Owners Handbook 1987
- ↑ Borland Turbo BASIC Owners Handbook 1987
- ↑ Old Borland®/Inprise® Development Tools Features. Дата обращения: 19 июля 2010. Архивировано 4 августа 2010 года.
- ↑ An Introduction to PowerBASIC Архивировано 27 мая 2011 года.
Ссылки[править]
- В. Л. Торхов. Турбо-Бейсик. Справочное руководство (1993)
- Описание Турбо Бейсика
- Turbo Basic 1.1. Руководство пользователя (недоступная ссылка)