BASIC
BASIC Бейсик | |
---|---|
Парадигма | структурна, потім процедурна |
Дата появи | 1963 |
Творці | Джон Кемені і Томас Курц |
Розробник | Томас Курц, Джон Кемені і Mary Kenneth Kellerd[1][2] |
Система типізації | статична, жорстка, безпечна |
Основні реалізації | Apple BASIC, BBC BASIC, Microsoft BASIC |
Під впливом від | ALGOL 60, FORTRAN II |
Вплинула на | COMAL, Visual Basic, Visual Basic .NET, Gambas |
Звичайні розширення файлів | .bas |
BASIC (бейсик[3]; від англ. basic — початковий, елементарний) — мова програмування високого рівня, метою створення якої було отримати просту в користуванні мову для початківців. Мова набула поширення у 1980-х, і лишається популярною й досі, маючи чимало діалектів. Мову було створено у 1963 професорами Дартмутського коледжу Джоном Кемені і Томасом Курцом.
Назва мови є акронімом від фрази англ. Beginner's All-purpose Symbolic Instruction Code, що означає «універсальний код символьних інструкцій для початківців».
До середини 1960-х комп'ютери були надто дорогими машинами, що використовувались лише для особливих задач, і виконували лише одну задачу за раз (так звана пакетна обробка). Однак, протягом 1960-х, ціна на комп'ютери стала падати так, що навіть невеликі компанії могли їх собі дозволити. Швидкість комп'ютерів збільшувалась, і настав час, коли вони часто почали простоювати, не розв'язуючи задач.
Мови програмування тієї ери, як і комп'ютери, на яких вони використовувались, були розроблені для специфічних задач, таких як наукові обчислення. Оскільки машини були дорогими і лише одне завдання могло виконуватись за раз, то й машинний час був дорогим — тому швидкість обчислення стояла на першому місці.
У той же час зростала популярність систем із розділенням часу. В таких системах, процесорний час розділявся і всі користувачі почергово отримували короткий відрізок цього часу. Машини були досить швидкими для того, щоб в результаті кожен користувач за терміналом відчував себе так, ніби він працює з системою один. Теоретично, розділення часу радикально знижувало вартість машинного часу, оскільки одна машина могла спільно використовуватись сотнями користувачів.
Оригінальний Бейсик було вигадано у 1963 році Джоном Кемені і Томасом Курцом в Дартмутському коледжі, і, під їхнім керівництвом було реалізовано командою студентів коледжу. З часом, коли з'явились інші діалекти, цей «початковий» діалект стали називати Дартмутським Бейсиком (Dartmouth BASIC).
Бейсик було спроектовано так, щоб студенти могли писати програми, використовуючи термінали із розділенням часу. Він створювався, як вирішення проблем, пов'язаних зі складністю старіших мов. Він призначався для користувачів з простішими задачами, не стільки зацікавлених у швидкості обчислень, скільки в можливості використовувати комп'ютер для вирішення своїх задач.
В проектуванні мови використовувались такі вісім принципів: нова мова має
- бути простою у використанні для початківців;
- бути мовою програмування загального призначення;
- надавати можливість розширення функціональності, доступу досвідченим програмістам;
- бути інтерактивною;
- надавати ясні повідомлення про помилки;
- швидко працювати на невеликих програмах;
- не вимагати розуміння роботи апаратного забезпечення;
- захищати користувача від операційної системи.
Мова частково ґрунтувалась на FORTRAN II і, частково, на ALGOL 60, з додатками, які робили мову зручнішою для роботи в режимі розділення часу, і, пізніше, обробки тексту та матричної арифметики. Спершу Бейсик було реалізовано на мейнфреймі GE-265 з підтримкою великої кількості терміналів. Всупереч розповсюдженій думці, на момент своєї появи це була компіляторна мова. Кількома роками пізніше, дуже поважний спеціаліст у галузі програмування Едсгер Дейкстра висловив думку, що використання оператора GOTO, що існував у багатьох мовах, в тому числі, в Бейсику, сприяло поганій практиці програмування. Дехто також висміював Бейсик за його повільність і простоту.
Автори мови вирішили, що вона має належати громадськості, тому мова швидко набула поширення. Також, чимало часу автори витрачали на популяризацію мови. В результаті, знання мови Бейсик стало досить поширеним, і її було реалізовано численною кількістю виробників. Особливої популярності мова набула на нових мінікомп'ютерах на зразок DEC PDP та Data General Nova. На цих машинах мову було реалізовано як інтерпретатор, а не як компілятор.
Попри те, що мова вже використовувалася на кількох мінікомп'ютерах, її справжнє розповсюдження розпочалось з появи на мікрокомп'ютері Altair 8800. Більшість мов програмування були надто великими, щоб вміститись у невелику пам'ять, яку користувачі цих машин могли собі дозволити. Для машин з таким повільним носієм, як паперова стрічка (пізніше — аудіо-касета), і відсутністю належного текстового редактора, така невелика мова, як Бейсик, була чудовою знахідкою. BASIC, також, мав ту перевагу, що, завдяки зусиллям Кемені та Курца, він був добре знаний юними програмістами, що цікавились мікрокомп'ютерами в ті часи. Одним з перших для цієї машини був Tiny BASIC, проста реалізація Бейсика, написана доктором Лі-Чен Ванґом і, пізніше, перенесена на Altair Деннісом Еллісоном на прохання Боба Альберта (він пізніше заснував Dr. Dobb's Journal). Повний код Tiny BASIC було опубліковано у 1976 у Dr. Dobb's Journal.
У 1975 Microsoft (тоді, це лише двоє — Білл Гейтс і Пол Аллен, за участі Monte Davidoff) випустили Altair BASIC. Потім його версії з'явились на іншій платформі під ліцензією і незабаром використовувались вже мільйони копій та варіантів; одним з варантів став стандартною мовою на Apple II. В 1979 Microsoft обговорювала з кількома постачальниками комп'ютерів (включно з IBM) ліцензування інтерпретатора Бейсик на їхніх машинах. Одну з версій було включено до мікросхеми постійної пам'яті IBM PC — комп'ютер міг автоматично завантажуватись в Бейсик.
В той період було створено кілька нових версій Бейсика. Microsoft продавала кілька версій для MS-DOS/PC-DOS, включаючи BASICA, GWBASIC (модифікація BASICA, що не вимагала ПЗП від IBM) і Quick BASIC. Borland, відома своїм Turbo Pascal, в 1985 випустила Turbo BASIC 1.0 (його нащадки пізніше продавались під назвою PowerBASIC). На домашніх комп'ютерах з'явились різні розширення Бейсика, зазвичай так, що включали засоби для роботи із звуком, графікою, виконанням команд операційної системи, а також, засоби структурного програмування. Деякі інші мови використовували добре відомий синтаксис Бейсика як основу, на якій будувалась зовсім інша система (наприклад, GRASS).
Однак, починаючи з кінця 1980-х, нові комп'ютери були набагато складнішими, і надавали можливості (такі, як графічний інтерфейс користувача), які робили Бейсик вже не таким зручним для програмування. Бейсик почав здавати свої позиції, попри те, що величезна кількість його версій ще використовувалась і продавалась.
Фортуна знову повернулась до Бейсика з появою Visual Basic від Microsoft (скорочено MS VB). Хоча і важко погодитись, що ця мова справді є Бейсиком (незважаючи на велику кількість звичних ключових слів), з часом вона стала однією з мов, що використовуються найчастіше на платформі Windows — деякий час вона використовувалась на 70-80% всіх комерційних розробок. Microsoft створила варіант під назвою WordBasic та використовувала його в MS Word до появи Word 97. Microsoft вбудувала Visual Basic for Applications (VBA) в Excel 5.0 в 1993 році, потім в Access 95 в 1995, а, також, у всі інші інструменти, що входять в пакет Office — в 1997. Internet Explorer 3.0 і вище, а також Microsoft Outlook включали інтерпретатор мови VBScript. У повний варіант пакету OpenOffice також включено інтерпретатор Бейсика.
Apple
Microsoft
Інші
|
Вважають, що назва мови утворена з перших букв англійських слів Beginner's All-purpose Symbolic Instruction Code. У вільному перекладі це означає «мова програмування для початківців». Англійське слово Basic перекладають як елементарний, базовий (наприклад, набір знань). Перша версія мови налічувала 14 службових слів.
Мову бейсик розробили співробітники Дармутського коледжу (США) у 1964 р. з метою навчання студентів, і відразу здобула широке визнання. У 80-х роках інтерес до мови зменшився, оскільки її різноманітні версії не задовольняли вимог структурного програмування. Цей недолік було подолано у версіях мови Turbo Basic, Quick Basic та Power Basic. Спрощена версія Швидкого Бейсика (Quick Basic) - Qbasic - увійшла до комплекту програм операційної системи MS-DOS корпорації Microsoft.
Мова бейсик постійно розвивається. Вона суттєво оновлюється після створення корпорацією Microsoft програмно середовища Visual Basic (VB), яке дає змогу користувачам засобами візуального програмування складати власні програми для операційної системи Windows.
Для розширення можливостей таких програм, як MS Word, MS Excel, MS Access ті інших корпорація Microsft розробила версію VB під назвою Visual Basic for Applications )VBA).
Наступне удосконалення мови - Visual Basic .NET, що є складовою інтегрованого середовища створення програм Visual Studio .NET. Середовище - це програмний комплекс, що автоматизує процеси створення, налагодження та виконання програм користувача.
Visual Basic .NET дає змогу не лише створювати типові навчальні програми, що можна робити і в середовищі Qbasic, чи типові Windows-проекти, для чого достатньо середовища Visual Basic, але й високопрофесійні програми для роботи в локальній мережі, а також в інтернеті з характерним web-інтерфейсом, що запускаються з сервера, доступ до яких здійснюється за допомогою браузера.
Алфавіт мови складається з таких символів:
- латинських літер від A до Z та літер кирилиці;
- цифр від 0 до 9;
- символів математичних операцій (+,-,*,/,^);
- символів відношення (=, <,> та інших);
- розділових символів (крапка, кома, двокрапка, крапка з комою, лапки, круглі дужки, пропуск);
- спеціальних символів (!,#,$,%,^,& та інших).
Алфавіти можуть несуттєво відрізнятися в різних версіях мови. За допомогою символів алфавіту будуть елементи мови: службові слова, імена змінних, числа, вирази, імена, функції та інші.
Програми складається з команд. Іноді команди називаються операторами, вказівками, реченнями. За призначенням команди поділяють на такі групи:
- описові команди, які використовують для опису даних, типів змінних, розмірів масивів, нестандартних функцій тощо;
- команди введення-виведення даних, які використовують для введення виведення інформації, зокрема, для організації діалогу користувача з комп'ютером.
- команди для обчислень і керування процесами опрацювання інформації: команди надання значення, переходу, розгалуження, циклів тощо;
- інші команди, які забезпечують додаткові можливості: команди для роботи з файлами даних, команди для графічних побудов, отримання звукових ефектів тощо.
Команди складаються з неподільних елементів мови (літералів): службових слів, чисел, символів операції тощо.
LET
- надає значення (що може бути результатом виразу) змінній.
DATA
- декларує список значень, які можна зчитати у змінні командою READ.
IF ... THEN ... {ELSE}
- оператор розгалуження.
FOR ... TO ... {STEP} ... NEXT
- повторення секції програми дану кількість разів (цикл). Змінна, що слугує лічильником, доступна всередині оператора
WHILE ... WEND
іREPEAT ... UNTIL
- повторення секції коду поки дана умова має місце. Умова перевіряється або перед кожною ітерацією циклу, або після
DO ... LOOP {WHILE}
або{UNTIL}
- повторення коду (нескінченне або з перевіркою умови)
GOTO
- перехід до рядка (задається номером або, у новіших версіях, міткою з двокрапкою)
GOSUB
- виклик процедури; повернення з процедури виконується оператором
RETURN
ON ... GOTO/GOSUB
- вибір рядка для виконання на основі деякої умови. Інші форми описано у оператор вибору
DEF FN
- пара ключових слів, доданих до BASIC у 1960-х роках, і призначена для означення простих однорядкових функцій. Імена функцій були як правило обмежені однією літерою (наприклад,
DEF FNA
,DEF FNB
і т.д.)
LIST
- показує повний лістинг поточної програми
PRINT
- показує повідомлення на екрані (або іншому стандартному пристрої введення)
INPUT
- очікує від користувача введення даних з термінала (клавіатури). Можна вивести повідомлення-підказку
TAB
абоAT
- використовується з
PRINT
для встановлення позиції наступного надрукованого символа
ABS
- Абсолютне значення
ATN
- Арктангенс (результат у радіанах)
COS
- Косинус (аргумент у радіанах)
EXP
- Піднесення до степеня
INT
- Ціла частина
LOG
- Натуральний логарифм
RND
- Генерація випадкового числа
SIN
- Синус (аргумент у радіанах)
SQR
- Квадратний корінь
TAN
- Тангенс (аргумент у радіанах)
REM
- коментар
USR
- запуск програми у машинному коді з даної адреси
TRON
- трасування: вмикає режим, коли показується кожен виконаний рядок коду (англ. TRace ON)
TROFF
- вимикання режиму трасування
ASM
- деякі компілятори, такі як Freebasic,[4] Purebasic,[5] і Powerbasic[6] підтримують inline assembly[en], дозволяючи програмістові змішувати асемблерний і BASIC-код
- ANSI X3.60-1978 «FOR MINIMAL BASIC»
- ISO/IEC 6373:1984 «DATA PROCESSING — PROGRAMMING LANGUAGES — MINIMAL BASIC»
- ANSI X3.113-1987 «PROGRAMMING LANGUAGES FULL BASIC»
- ISO/IEC 10279:1991 «INFORMATION TECHNOLOGY — PROGRAMMING LANGUAGES — FULL BASIC»
- ANSI X3.113 INTERPRETATIONS-1992 «BASIC TECHNICAL INFORMATION BULLETIN # 1 INTERPRETATIONS OF ANSI 03.113-1987»
- ISO/IEC 10279:1991/ Amd 1:1994 «MODULES AND SINGLE CHARACTER INPUT ENHANCEMENT»
- ↑ Gürer D. Pioneering women in computer science // SIGCSE bulletin — 2002. — Vol. 34, Iss. 2. — P. 175. — ISSN 0097-8418; 2331-3927 — doi:10.1145/543812.543853
- ↑ https://www.computinghistory.org.uk/det/47364/Sister-Mary-Kenneth-Keller/
- ↑ http://www.lingvo.ua/uk/Search/uk-uk/%E1%E5%E9%F1%E8%EA[недоступне посилання з червня 2019]
- ↑ KeyPgAsm. FreeBasic Wiki. Архів оригіналу за 2 серпня 2017. Процитовано 2 серпня 2017.
- ↑ Inline x86 ASM. Pure Basic. Архів оригіналу за 2 серпня 2017. Процитовано 2 серпня 2017.
- ↑ Using assembly-language in your code. Power Basic. Архів оригіналу за 2 серпня 2017. Процитовано 2 серпня 2017.
- A Manual for BASIC, the elementary algebraic language designed for use with the Dartmouth Time Sharing System (PDF). Dartmouth College Computation Center. 1964. Архів оригіналу (PDF) за 16 липня 2012. Процитовано 6 липня 2011.(англ.)
- Lien, David A. (1986). The Basic Handbook: Encyclopedia of the BASIC Computer Language (вид. 3rd ed.). Compusoft Publishing. ISBN 0-932760-33-3.(англ.)
- Kemeny, John G.; Kurtz, Thomas E. (1985). Back To BASIC: The History, Corruption, and Future of the Language. Addison-Wesley. с. 141 pp. ISBN 0-201-13433-0.(англ.)
- Sammet, Jean E. (1969). Programming languages: History and fundamentals. Englewood Cliffs, N.J.: Prentice-Hall.(англ.)