| 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 до 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) — модуль xSIN (x) — sin xCOS (x) — cos xTAN (x) — tg xATN (x) — arctg xEXP (x) — e 5xLOG (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)
 Также предусмотрены операции отношения и логические операции (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. 
 |