Turbo Basic
| Turbo Basic | |
|---|---|
|  Среда разработки Turbo Basic | |
| Тип | Интегрированная среда разработки | 
| Разработчик | Borland | 
| Написана на | Assembly language | 
| Операционная система | 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].
В средних и в больших программах иногда возникает сбой в синтаксическом анализаторе, Turbo Basic перестаёт распознавать операторы комментариев ' и REM и выдаёт сообщение Error 416: Statement expected. Из-за этой ошибки и других ошибок и из-за ограничений в размере памяти TurboBasic не годится для средних и больших проектов, но из-за простоты может быть использован на Windows cовместно c DOSBox 0.74 для небольших и простых вычислений, как инструмент для эскизов и набросков.
Описание языка
[править | править код]Структура кода
[править | править код]Основной структурной единицей кода является строка. Одна строка может содержать один или несколько операторов, разделенных двоеточием (допускается перенос оператора на другую строку при помощи знака переноса _). Пример:
a=1:b=1
a=1:b_
=1
Допускается необязательная нумерация строк, а также использование меток для перехода в нужные части программы. Метка размещается в отдельной строке, начинается с буквы и содержит любое количество букв и цифр. После метки ставится двоеточие. Пример:
aaa:
x=x+1
...
GOTO aaa
Имена переменных, меток или процедур образуются из букв от A до Z (или от a до z), знака подчеркивания _ и цифр от 0 до 9 и должны начинаться с буквы. В отличие от имён переменных и функций, имена процедур не должны заканчиваться знаками типа: "%", "&", "!", "#" и "$".
Комментарии обозначаются при помощи апострофа (') или оператора REM в начале строки.
Типы данных
[править | править код]Допускаются следующие типы данных: целый (значения от −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.
Недостатки и их устранение
[править | править код]Иногда синтаксический анализатор перестаёт опознавать строки комментариев, начинающиеся со знака ' или оператора REM. Неисправность устраняется удалением всех строк комментариев или оформлением комментариев в виде строки символов (С$="Text of comment"). Часто неисправность устраняется перезагрузкой TurboBasic'а или обновлением копии TurboBasic'а.
Примечания
[править | править код]- ↑ 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. Руководство пользователя (недоступная ссылка)
- Borland Turbo BASIC Owners Handbook 1987
