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.