Loading AI tools
Из Википедии, свободной энциклопедии
Turbo Basic — компилятор языка Бейсик, а также его диалект, первоначально созданный Робертом «Бобом» Зейлом и впоследствии выкупленный у него компанией Borland.
Turbo Basic | |
---|---|
![]() Среда разработки Turbo Basic | |
Тип | Интегрированная среда разработки |
Разработчик | Borland |
Написана на | Бейсик |
Операционная система | MS-DOS |
Языки интерфейса | Basic |
Первый выпуск | 1987 |
Аппаратная платформа | x86 |
Последняя версия | 1.1 |
Состояние | Abandonware |
Лицензия | Проприетарная |
Роберт «Боб» Зейл в 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 был полным компилятором, генерировавшим родной код для 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)
— модуль 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)
— указывает номер позиции для вывода следующего элемента в списке вывода оператора 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.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.