Turbo Basic

Ця стаття про компіляторі компанії Borland; про діалекті мови для Atari 400/800 см.: Turbo-Basic XL.
Безимянний.png

Turbo Basic - компілятор мови Бейсік, а також його діалект, спочатку створений Робертом "Бобом" Зейлом і згодом викуплений у нього компанією Borland.


1. Історія

Роберт "Боб" Зейл в 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 сторінках. Файли були датовані 4 листопада 1987 1:10. [2]

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

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


2. Опис мови

2.1. Структура коду

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

 a  =  1  : B  =  1 
 a  =  1  : B_  =  1 

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

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

Імена змінних, міток або процедур утворюються з букв від A до Z (або від a до z), знака підкреслення _ і цифр від 0 до 9 і повинні починатися з букви.

Коментарі позначаються за допомогою апострофа ( ') на початку рядка.


2.2. Типи даних

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

Тип змінної визначається типом даних, які вона представляє (визначається спеціальним символом). Якщо знак після імені відсутній, то ця змінна вважається за замовчуванням речової звичайної точності.


2.3. Масиви

В Turbo Basic допускається створення до 8-ми мірних масивів за допомогою оператора DIM із зазначенням розмірів. В описі масиву замість константи може використовуватися змінна (наприклад, DIM a(n)), але значення n повинно бути попередньо визначене. За допомогою оператора ERASE можна звільнити пам'ять, виділену під масив, і повернути її для подальшого використання.

2.4. Вирази

Передбачена підтримка двох типів виразів: символьні і числові. Символьні вирази складаються з символьних констант (послідовність символів, укладена в лапки), символьних змінних, символьних функцій, з'єднаних знаком + (конкатенація, або об'єднання). За допомогою функцій LEFT$, RIGHT$, MID$ можна вибрати частину символьної змінної ліворуч, праворуч або з середини.

Числові вирази містять у собі константи, змінні, функції, сполучені знаками арифметичних операцій, при цьому можуть використовуватися величини різних типів.

Також підтримуються пріоритети для арифметичних операцій.


2.5. Стандартні функції

В Turbo Basic присутній набір з декількох стандартних операцій:

  • ABS (x) - модуль x
  • SIN (x) - sin x
  • COS (x) - cos x
  • TAN (x) - tg x
  • ATN (x) - arctg x
  • EXP (x) - e 5x
  • 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)

Також передбачені операції відносини і логічні операції: AND (логічне і), OR (логічне або), XOR (виключає або), EQV (еквівалентність), IMP (імплікація). Крім цього, присутня деяка бібліотека стандартних процедур.


3. Приклади коду

Нижченаведена програма являє собою приклад Алгол -подібного діалекту Бейсіка, підтримуваного Turbo Basic. На відміну від традиційного Бейсіка, що використовує нумерацію рядків і володіє обмеженими керуючими структурами без підтримки підпрограм в стилі Алгол, нові діалекти Бейсіка, що з'явилися в цей період, були розширені для забезпечення сумісності мови з новою теорією структурного програмування шляхом відмови від нумерації рядків і додаванням керуючих структур і подпрограммних визначень, необхідних для структурного програмування.

 INPUT  "Ваше ім'я:"  ,  A $  PRINT  "Привіт"  ; A $  DO  S $  =  ""  INPUT  "Скільки зірок ви хочете надрукувати?"  ; S  FOR  I  =  1  TO  SS $  =  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.


Примітки

  1. We Created Turbo Basic ... So Check Out the Upgrade! - www.powerbasic.com / welcome / turbobasic.html
  2. Old Borland / Inprise Development Tools Features - www.emsps.com / OLDTOOLS / borver.htm
  3. An Introduction to PowerBASIC - www.powerbasic.com / aboutpb.asp