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.
У1975Microsoft(тоді, це лише двоє —Білл ГейтсіПол Аллен,за участі Monte Davidoff) випустилиAltair BASIC.Потім його версії з'явились на іншій платформі під ліцензією і незабаром використовувались вже мільйони копій та варіантів; одним з варантів став стандартною мовою наApple II.В1979Microsoft обговорювала з кількома постачальниками комп'ютерів (включно з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 службових слів.
![](https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Pn-pravez-class-5.jpg/220px-Pn-pravez-class-5.jpg)
Мову бейсик розробили співробітникиДармутськогоколеджу (США) у 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. — ISSN0097-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.ISBN0-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.ISBN0-201-13433-0.(англ.)
- Sammet, Jean E. (1969).Programming languages: History and fundamentals.Englewood Cliffs, N.J.: Prentice-Hall.(англ.)