Turbo basic

Роберт «Боб» Зейла в 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 або бібліотек для запуску.

структура коду

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

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

Імена змінних, міток або процедур утворюються з букв від 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) - модуль 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. На відміну від традиційного Бейсика, що використовує нумерацію рядків і володіє обмеженими керуючими структурами без підтримки підпрограм в стилі Алгола, нові діалекти Бейсика, що з'явилися в цей період, були розширені для забезпечення сумісності мови з новою теорією структурного програмування шляхом відмови від нумерації рядків і додаванням керуючих структур і подпрограммних визначень, необхідних для структурного програмування.

Як і в інших продуктах Borland цього періоду, код виконувався всередині самої IDE.