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).

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

В проектуванні мови використовувались такі вісім принципів: нова мова має

  1. бути простою у використанні для початківців;
  2. бути мовою програмування загального призначення;
  3. надавати можливість розширення функціональності, доступу досвідченим програмістам;
  4. бути інтерактивною;
  5. надавати ясні повідомлення про помилки;
  6. швидко працювати на невеликих програмах;
  7. не вимагати розуміння роботи апаратного забезпечення;
  8. захищати користувача від операційної системи.

Мова частково ґрунтувалась на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.

У1975Microsoft(тоді, це лише двоє —Білл ГейтсіПол Аллен,за участі Monte Davidoff) випустилиAltair BASIC.Потім його версії з'явились на іншій платформі під ліцензією і незабаром використовувались вже мільйони копій та варіантів; одним з варантів став стандартною мовою наApple II1979Microsoft обговорювала з кількома постачальниками комп'ютерів (включно зIBM) ліцензування інтерпретатора Бейсик на їхніх машинах. Одну з версій було включено до мікросхеми постійної пам'яті IBM PC — комп'ютер міг автоматично завантажуватись в Бейсик.

Зрілість

[ред.|ред. код]

В той період було створено кілька нових версій Бейсика. Microsoft продавала кілька версій для MS-DOS/PC-DOS, включаючи BASICA, GWBASIC (модифікація BASICA, що не вимагала ПЗП від IBM) і Quick BASIC. Borland, відома своїмTurbo Pascal1985випустила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 службових слів.

Плакат у російській школі «Train Basic everyday!»

Мову бейсик розробили співробітникиДармутськогоколеджу (США) у 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;
  • символів математичних операцій (+,-,*,/,^);
  • символів відношення (=, <,> та інших);
  • розділових символів (крапка, кома, двокрапка, крапка з комою, лапки, круглі дужки, пропуск);
  • спеціальних символів (!,#,$,%,^,& та інших).

Алфавіти можуть несуттєво відрізнятися в різних версіях мови. За допомогою символів алфавіту будуть елементи мови: службові слова, імена змінних,числа,вирази, імена,функціїта інші.

Службові слова та команди мови

[ред.|ред. код]

Програмискладається з команд. Іноді команди називаютьсяоператорами,вказівками, реченнями. За призначенням команди поділяють на такі групи:

  • описові команди, які використовують для опису даних, типів змінних, розмірів масивів, нестандартних функцій тощо;
  • команди введення-виведення даних, які використовують для введення виведенняінформації,зокрема, для організації діалогу користувача з комп'ютером.
  • команди для обчислень і керування процесами опрацювання інформації: команди надання значення, переходу, розгалуження, циклів тощо;
  • інші команди, які забезпечують додаткові можливості: команди для роботи з файлами даних, команди для графічних побудов, отримання звукових ефектів тощо.

Команди складаються з неподільних елементів мови (літералів): службових слів, чисел, символів операції тощо.

Синтаксис

[ред.|ред. код]

Типові ключові слова BASIC

[ред.|ред. код]

Операції з даними

[ред.|ред. код]
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»

Виноски

[ред.|ред. код]
  1. Gürer D.Pioneering women in computer science//SIGCSE bulletin— 2002. — Vol. 34, Iss. 2. — P. 175. — ISSN0097-8418;2331-3927doi:10.1145/543812.543853
  2. https://www.computinghistory.org.uk/det/47364/Sister-Mary-Kenneth-Keller/
  3. http://www.lingvo.ua/uk/Search/uk-uk/%E1%E5%E9%F1%E8%EA[недоступне посилання з червня 2019]
  4. KeyPgAsm.FreeBasic Wiki.Архіворигіналуза 2 серпня 2017.Процитовано 2 серпня 2017.
  5. Inline x86 ASM.Pure Basic.Архіворигіналуза 2 серпня 2017.Процитовано 2 серпня 2017.
  6. Using assembly-language in your code.Power Basic.Архіворигіналуза 2 серпня 2017.Процитовано 2 серпня 2017.

Джерела

[ред.|ред. код]