Мова програмування бейсик та його історія. Мова програмування Basic (Бейсік) Мова програмування бейсік рік

💖 Подобається?Поділися з друзями посиланням

Мова Бейсік (він же Бейсік, він же BASIC) входить до сімейства мов програмування високого рівня.

BASIC- це абревіатура, яка розшифровується так: B eginner’s A ll-purpose S ymbolic I nstruction C ode – універсальний код символічних інструкцій для початківців).

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

Ця мова свого часу була дуже популярною і розплодилася по світу комп'ютерів у вигляді різних діалектів, в основному, як мова для домашніх комп'ютерів.

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

Починаючи з 1960-х років комп'ютери ставали дедалі доступнішими. На комп'ютерах могли працювати вже не лише вчені-програмісти, а й школярі та студенти, які не були програмістами. Однак у цих школярів та студентів вже з'явилися завдання, які треба було вирішувати за допомогою комп'ютерів.

Готових програм тоді майже не було. Тому під кожне завдання треба було створювати окрему програму. І робити це на комп'ютерах тих років, використовуючи наявні тоді мови програмування, було дуже складно (частково тому раніше мови програмування створювалися для вирішення конкретних завдань, наприклад, ПРОЛОГ був орієнтований на створення систем зі штучним інтелектом, ФОРТРАН - для роботи з математичними формулами в наукових та інженерних обчисленнях тощо).

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

У результаті в 1964 році викладачами Дартмутського Коледжу Джоном Кемені і Томасом Курцем було вигадано мову Бейсік, і під їх керівництвом був реалізований командою студентів коледжу. Згодом, коли почали з'являтися інші діалекти, початкову реалізацію почали називати Dartmouth BASIC.

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

При розробці мови Бейсік використовувалися наступні вісім принципів:

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

При створенні Бейсіка за основу були взяті частково Фортран II і частково Алгол 60. Спочатку Бейсік був реалізований на мейнфреймі GE-265 з підтримкою безлічі терміналів (мейнфрейм - це великий високопродуктивний сервер від відмови).

Незважаючи на те, що мова вже використовувалася на кількох міні-комп'ютерах, її справжнє поширення почалося з впровадження на мікрокомп'ютері Альтаїр 8800.

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

1975 року Microsoft (тоді це були лише двоє - і Пол Аллен, за участю Монте Давидова), випустила Altair BASIC. Потім його версії з'явилися на іншій платформі під ліцензією і незабаром у використанні були вже мільйони копій та різних варіантів. Один з варіантів, Applesoft BASIC, став стандартною мовою. Для операційної системи CP/M було створено діалект BASIC-80, який надовго випередив свій час.

До речі, Білл Гейтс говорив, що Бейсік – це його улюблена мова програмування.

Найбільш бурхливо та успішно Бейсік розвивався протягом 1970-х та на початку 1980-х років. У цей час багато персональних комп'ютерів мали власний інтерпретатор Бейсика, який часто зашивався прямо в ПЗУ. У найпростіших комп'ютерах він виконував функції операційної системи.

Майже все більш сильні комп'ютери також мали інтерактивні Бейсік-системи. Було створено кілька нових версій Бейсіка для платформи IBM PC та сумісних. Microsoft продавала Бейсик для MS-DOS/PC DOS, включаючи BASICA, GW-BASIC (модифікація BASICA, яка не вимагає "прошивки" від IBM) та QuickBASIC.

Компанія Borland, що здобула широку популярність завдяки (з яким вона і вийшла вперше на ринок) у 1985 році випустила засновану на тому ж програмному середовищі систему Turbo Basic 1.0 (його спадкоємці згодом продавалися іншою компанією під ім'ям PowerBASIC).

До кінця 1980-х років персональні комп'ютери стали набагато потужнішими і надавали нові можливості (такі, як графічний інтерфейс користувача). Використовувати ці нові можливості у Бейсику було вже не так просто і не так зручно. Крім того, з'явилися недорогі компілятори більш просунутих мов (таких як Паскаль і Сі), які, до того ж, мали натиснуті на той час і додаткові бібліотеки з готовими (наприклад, Borland Pascal з бібліотекою Turbo Vision).

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

Особливості мови Бейсік

Ранні версії Бейсіка (такі як BASICA, GW-BASIC) дуже відрізняються від сучасних діалектів і сьогодні практично не використовуються. Причому відрізняються настільки сильно, що програміст-початківець не кожну програму на старому Бейсіку зможе перевести на сучасний Бейсік.

Структура програми на ранніх версіях Бейсіка багато в чому формувалася з урахуванням того, що він призначався для програмування з малим редактором тексту. У такому редакторі користувач не міг відображати весь текст на екрані (у вікні), не міг переміщатися по ньому в будь-яких напрямках за допомогою клавіатури та/або миші. У рядкових редакторах користувач для зміни рядка тексту повинен дати команду зміни рядка із заданим номером, потім ввести новий текст зазначеного рядка (ось була житуха у програмістів))).

Для вставки нового рядка потрібно дати команду вставки, знову вказавши номер. Рядки, що вводяться, відображаються на екрані послідовно (незалежно від номерів). Щоб побачити зроблені зміни, застосовується команда виведення тексту, яка виводить рядки у правильному порядку (за зростанням номерів).

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

«Розсунути» рядки було неможливо, якщо потрібно вставити новий рядок між рядками із сусідніми номерами, доводилося повторно вводити ці рядки з іншими номерами, щоб забезпечити розрив у нумерації (або застосовувати спеціальну команду RENUM, яка змінювала номери всіх вже введених рядків із постійним кроком) .

Як ви розумієте, при створенні більш-менш складної програми практично неможливо передбачити, скільки в ній буде рядків і в якому порядку вони слідуватимуть.

Тому для забезпечення подальшого редагування програми стало прийнято нумерувати рядки з кроком 10 (іноді й більше). Це дозволяло в більшості випадків без проблем вставляти нові рядки без зміни номерів, які були введені раніше.

Приклад розглянемо трохи пізніше, коли познайомимося із синтаксисом мови Бейсік.

Синтаксис мови Бейсік

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

Найпростіша програма на Бейсіку:

10 PRINT “Hello, WORLD!”

Бейсік - не чутлива до регістру мова. Тобто для Бейсіка слова PRINT та print – це одне й теж. Це стосується як ключових слів, а й імен змінних. Хоча деякі реалізації мови є чутливими до регістру повністю або частково (наприклад, Liberty BASIC).

Імена змінних повинні починатися з літери та можуть складатися з латинських літер та цифр. Для створення змінної рядкового типу потрібно було після назви вказати знак долара ($).

Наприклад:

X = 100 'Числова змінна X$ = “Hello” 'Строкова змінна

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

Оголошувати прості змінні не потрібно. Просто у будь-якому місці програми пишемо ім'я змінної, і все. Щоправда, масиви треба оголошувати.

Нижче перераховані основні конструкції мови, які були реалізовані практично в будь-якій Бейсік-системі кінця 1970-х років (багато з цих конструкцій підтримуються і сучасними реалізаціями мови Бейсік):

LIST
Виведення на монітор тексту програми у правильній послідовності рядків.

RUN
Запуск поточної програми з першого оператора рядка з найменшим номером.

REM
Коментар. Текст, що знаходиться після ключового слова до кінця рядка, є коментарем. Багато інтерпретаторів також підтримують як знак початку коментаря одиночну лапку. Деякі інтерпретатори допускають використовувати слово REM, тільки якщо воно знаходиться на самому початку рядка.

INPUT
Виводить на монітор текст запрошення та очікує, доки користувач введе значення та натисне ENTER.

PRINT
Виводить дані на монітор (текст та значення змінних).

CLS
Очищує екран.

DIM
Опис масиву. На відміну від звичайних змінних масиви вимагають попереднього оголошення.

GOTO Мітка
Команда безумовного переходу на Мітку.

IF … THEN …
Звичайний оператор розгалуження. Після IF розміщується логічна умова, після THEN - оператор, який має бути виконаний за істинності цієї умови.

END
Завершення виконання програми. Система виходить в інтерпретатор та користувачеві видається запрошення на введення команд.

SAVE
Команда інтерактивного режиму, яка зберігає поточну програму у файлі зовнішнього носія.

LOAD
Команда інтерактивного режиму, яка завантажує на згадку програму з файлу на зовнішньому носії. При цьому зазвичай з пам'яті видаляється раніше завантажена програма та дані.

Приклад програми на Бейсику:

10 CLS "Очистити екран 20 PRINT "Привіт, СВІТ!!!" 30 X = 100 "Присвоїти 100 змінної Х 40 INPUT "Введіть число: "; Y 50 PRINT Y; "*"; X; "="; X * Y 60 END

Інтерпретатори Бейсік

Один з найвідоміших інтерпретаторів мови Бейсік – це QBasic від Microsoft. Багато років він безкоштовно постачався разом із операційними системами MS-DOS та Windows. QBasic мав непогані на той час графічні та звукові можливості. Тому на QBasic створювалися навіть ігри (один мій знайомий це робив - не те, що на картинці, але щось на кшталт того))).

Бейсик пізніх версій (починаючи з Turbo Basic та Visual Basic) дуже відрізняється від ранніх реалізацій. По суті це нова мова, яка вже більше схожа на Фортран або Паскаль, ніж на вихідний Бейсік (хоча багато конструкцій підтримуються).

Друге життя Бейсік отримав із появою Visual Basic від Microsoft. Але, незважаючи на популярність, в 2001 році Microsoft відмовилася від подальшої підтримки Visual Basic (якщо не помиляюся, остання версія Visual Basic була 6.5) на користь принципово нової мови Visual Basic .NET, де мова була знову "перекроєна" і "перешитий", орієнтований на крос-платформну технологію. NET, і в поточному стані практично збігається за набором можливостей з мовою C #. Відмінності тільки в синтаксисі та ключових словах.

Так Basic переріс із засобу створення програм любителями-непрофессионалами до повноцінного кошти створення програм.

Крім написання повноцінних програм, Бейсик широко застосовується як основа для різних мов скриптів (наприклад, макроси в пакеті Microsoft Office пишуться на діалекті VBA, мова сценаріїв VBScript використовується в SCADA-системах та інших подібних програмах).

Скільки людей стільки й думок

Навіть у свої найкращі часи (1970...1980 роки) Бейсік зазнав жорсткої критики (втім, як і майже всі інші мови програмування - критикувати у нас люблять).

Звичайно, у Бейсіка було чимало недоліків. Але ж він такий і був задуманий! Так, з вадами. Зате простий і доступний для розуміння навіть гуманітарію.

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

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

Незважаючи на авторитет Дейкстри, я з ним у цьому не згоден. Те, що приписують до недоліків Бейсіка, насправді є його перевагами. Недоліки Бейсика (якщо мати на увазі ранні діалекти) виявляються при спробі професійної розробки на ньому складних і великих програм і при використанні його як базової мови для навчання програмістів, але для жодного з цих застосувань ця мова не призначалася. Його основним завданням було надати студентам-непрограмістам можливість після мінімального навчання самостійно писати найпростіші програми для потреб, щоб не відволікати на цю роботу фахівців. Це завдання мову вирішує цілком успішно.

Якщо ж говорити про сучасні діалекти і реалізації Бейсика, то вони настільки далеко втекли від первісної форми мови, що все вищесказане навряд чи можна вважати таким, що відноситься до них. Сучасні діалекти Бейсика є досить структурованими мовами, вони можна порівняти з можливостями з такими мовами, як Сі, Паскаль тощо.

Мова Бейсік (навіть перші його реалізації, такі як QBasic), цілком придатна для навчання, тому що на мій погляд немає зовсім ніяких проблем, при необхідності, вивчити потім іншу мову. Можливо у 60-ті роки минулого століття це й було проблемою – не знаю (я народився у 1969). Але зараз – ні.

До того ж сьогодні і переучуватися особливо не потрібно, тому що можна створювати свої класні програми, наприклад, Visual Basic.

DONKEY.BAS. Входить до комплекту IBM PC в 1981. Співавтор - Білл Гейтс

Назва BASIC з'явилася як скорочення від "Beginner"s All-purpose Symbolic Instruction Code", що в дослівному перекладі означає "багатоцільова мова символічних команд для початківців". Це той випадок, коли дослівний переклад абсолютно точно передавав суть. Ключовою особливістю BASIC"а була не лише його простота, а й можливість знаходити розв'язання задач у режимі діалогу з комп'ютером.

Для багатьох комп'ютерів кінця 60-х BASIC позиціонувався як єдина мова програмування високого рівня загального призначення, і згодом це призвело до появи різних його модифікацій. Поворотним моментом у розвитку мови стала поява Visual Basic.

Передісторія

У 1950-х років роль програмування в машинних кодах стала зменшуватися. З'явилися мови вищого рівня – Fortran, Algol, Cobol тощо.

Першим і одним із найпоширеніших був Фортран (FORTRAN, від FORmula TRANslator – перекладач формул), розроблений групою програмістів фірми IBM 1954 року (перша версія). Ця мова була спрямована на науково-технічні розрахунки математичного характеру.

Назва мови Algol (ALGOrithmic Language), перша версія якого з'явилася в 1958 році, підкреслює те, що він призначений для запису алгоритмів. Завдяки чіткій логічній структурі Алгол став стандартним засобом запису алгоритмів у науковій та технічній літературі.

Тоді мов програмування високого рівня характерна предметна орієнтація. Крім того, подібні мови були надто складні для розробників-початківців, особливо, якщо вони не були інженерами. Тому зрозуміло, що з часом з'явилася мова програмування для «простих смертних».

BASIC. Просто BASIC

З ідеєю створення цієї мови програмування асоціюють відому історію для англійського місіонера.
У XIX столітті одному англійському місіонеру, який шукав можливість полегшити і спростити контакт з тубільцями, спало на думку геніальна думка - вичленувати з англійської найпростішу його частину, що практично не має граматики, і містить близько 300 найпоширеніших слів. Цей урізаний підвид англійської мови був названий BASIC ENGLISH, і як показала практика - він справді виявився дуже простим для засвоєння, і незабаром завоював популярність не тільки серед тубільного населення, а й серед іммігрантів, для яких англійська не була рідною мовою.
Сто років тому аналогічний шлях обрали співробітники математичного факультету Дартмутського коледжу. Вони вирішили полегшити взаємодію між комп'ютером та непрофесійним користувачем за допомогою «спрощеної» мови програмування.

У 1964 році Томас Курц та Джон Камені створили спеціалізовану мову програмування, яка складалася з простих слів англійської мови. Нову мову назвали BASIC.

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

Серйозний вплив на BASIC справили Fortran II та Algol 60. Крім того, розробники реалізували в ньому механізми роботи для систем з режимом поділу часу, а також обробки тексту та матричної арифметики. Спочатку компілятор мови було написано для мейнфрейму GE-265.

Розквіт

У 70-х з'явилися компактні комп'ютери (ПК). Цю обставину вдало використали Білл Гейтс та Пол Аллен, засновники Microsoft.

Вони створили нову версію BASIC для перших комп'ютерів Альтаїр (MITS Altair), здатну працювати в 4КБ оперативної пам'яті. Згодом саме ця версія і перетворилася на одну з найпопулярніших мов програмування у світі.


Altair

Періодом найбільшого розквіту та розвитку вихідного BASIC можна вважати кінець 1970-х – першу половину 1980-х років. Його версії з'явилися на інших платформах, і незабаром почали розходитися мільйонними тиражами зі всілякими змінами та доопрацюваннями. Однією з найпопулярніших версій був Applesoft BASIC, який став стандартною мовою Apple II.

Applesoft BASIC був написаний фірмою Microsoft як заміна системі Integer BASIC, яка використовувалася в першій моделі Apple II і мала дуже обмежені можливості. Applesoft BASIC був прошитий у ПЗУ всіх моделей Apple II, починаючи з Apple II+, і всіх клонів Apple II. Також більш рання та урізана версія Applesoft BASIC була доступна на касетах для першої моделі Apple II.

Для операційної системи CP/M було створено діалект BASIC-80, який надовго визначив розвиток мови.

Коли з'явилися перші персональні комп'ютери IBM PC, саме він став стандартом програмування, але вже у вигляді GW-Basic.

У середині 1980-х BASIC став основною мовою у складних моделях програмованих калькуляторів, які якраз на той час досягли потужності, що допускає застосування повноцінної мови високого рівня. BASIC був вбудований в радянський калькулятор «Електроніка МК-85» і всі його пізніші моделі.

Також у 1985 році з'явилася IDE Quick Basic - інтегроване середовище розробки та компілятор мови програмування BASIC, яке розроблялося компанією Microsoft з 1985 по 1988 рік. Існували версії для DOS та Mac OS. Використовуваний діалект BASIC був заснований на вдосконаленому діалекті GW-BASIC: була реалізована підтримка типів користувачів, конструкцій структурного програмування, значно розширена підтримка графічних та дискових операцій.

Роберт "Боб" Зейл у 1987 році на основі своєї багаторічної розробки BASIC/Z створив Turbo Basic, а потім продав його компанії Borland. Журнал Infoworld назвав його одним із найзначніших продуктів того року.

На відміну від більшості реалізацій BASIC того періоду Turbo Basic був повним компілятором, що генерував рідний код для MS-DOS.

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

Друге життя

На початку 90-х з'явилася операційна система Microsoft Windows із новим графічним інтерфейсом користувача.

Щоб створити просту програму, розробникам доводилося писати кілька сторінок коду: прописувати об'ємні блоки коду меню і вікон, шрифтів, очищати пам'ять, «малювати» кнопки тощо. Однак переваги нового інтерфейсу були досить сильними, і у Windows з'явилися реальні перспективи стати повсюдно популярною.

У Microsoft розуміли, що потрібно якось полегшити життя розробників. Тому компанія запустила кілька паралельних проектів щодо створення нової мови програмування та середовища розробки для Windows.

Друге життя BASIC одержав, коли Microsoft випустила Visual Basic. Він став логічним завершенням еволюції мови і, незважаючи на збереження звичних ключових слів, за структурою та набором можливостей був ближчим до Pascal, ніж до початкового BASIC.

1991 року з'явилася перша версія нової IDE Microsoft Visual Basic. Однак у той момент Microsoft досить скромно оцінювала можливості цієї системи, орієнтуючи її, все ж таки, на категорію початківців і непрофесійних програмістів.

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

Система програмування, створена розробниками Visual Basic, дозволяла абстрагуватись від внутрішньої структури Windows. Меню, вікна, списки, кнопки, поля введення тексту та інші елементи інтерфейсу Windows додавалися в програму за допомогою найпростіших операцій drag&drop, і більшість коду для їх ініціалізації та налаштування генерувалася автоматично.

Свою першу програму VB-програмісти могли створити вже за кілька хвилин після початку вивчення цієї мови. Більше того, Visual Basic дозволяв розробникам створювати нові елементи графічного інтерфейсу, які могли використовуватися в програмах нарівні зі стандартними.

Незважаючи на те, що багато С-розробників не сприймали серйозно спроби Microsoft зробити простий і зрозумілий інструмент розробки Windows-програм, решта учасників ІТ-спільноти покладала на Visual Basic великі надії.

1994 року компанія випустила Visual Basic for Applications. Саме в цей час, після включення VBA до складу Microsoft Office, Basic став одним із основних стандартів програмування для Windows.

Visual Basic від Microsoft, що спочатку замислювався як іграшка, неймовірно швидко завоював програмістський світ. Його популярність обумовлена ​​двома причинами: відносною простотою та продуктивністю.

Програми на VB працювали повільніше своїх аналогів на C/C++, але все ж таки вони досить швидкі для багатьох ділових цілей і вимагають набагато менше часу на розробку. Форми були тією абстракцією, що заощаджує зусилля, яку запропонував VB програмістам Windows.

IDE VB дозволила розробляти вікна графічно, перетягуючи елементи керування, такі як кнопки та списки, з панелі інструментів у форму. Отримавши задовільний вигляд форми, можна було переходити до кодової частини і писати обробники подій для кожного елемента управління форми.

Розробка програми в VB, таким чином, складалася зі створення декількох форм, які взаємодіяли один з одним.

З точки зору написання коду важливою відмінністю від того ж C + + стала відмова від покажчиків. Так вирішив Білл Гейтс ще під час розробки перших версій Microsoft BASIC. Хоча покажчики корисні, оскільки дозволяють прямий доступом до пам'яті за будь-якою адресою, їх використання пов'язані з помилками у разі, якщо вони застосовуються неакуратно. Оскільки мова створювалася для «простих смертних», це рішення виглядає цілком виправданим.

Основні версії Visual Basic

У першій версії (1991 рік) Алан Купер реалізував принцип зв'язку мови та графічного інтерфейсу.

Починаючи з третьої версії (1993), у VB з'явилася підтримка MS Access.

Visual Basic 4.0 (1995) - версія, в якій з'явилася можливість створювати як 32 так і 16-розрядні Windows-додатки. Крім того, до мови були додані класи.

Починаючи з VB 5.0 (1997) з'явилася можливість розробляти власні COM-компоненти. Крім того, з'явилася нова віртуальна машина, реалізована у динамічній бібліотеці MSVBVM50.DLL. Компілятор VB для трансляції використовував багатопрохідний режим, але зрештою покладався на компілятор Microsoft C++ для отримання вихідного машинного коду після компіляції в проміжну мову. Використання бібліотеки часу виконання та внутрішнього інтерфейсу C++ стало відправною точкою для формування технології .NET.

VB версії 6 - це вже потужна мова, яку можна використовувати для створення розподілених програм із застосуванням компонентів СОМ і Microsoft Transaction Server. Microsoft запропонувала трирівневий підхід для архітектур «клієнт-сервер», в якому «тонкі» інтерфейси користувача взаємодіяли з віддаленими компонентами VB для отримання даних з бази даних або з іншої машини.

Більше того, VB6 (1998) можна було використовувати для створення елементів керування Active-X, що працюють разом із Internet Explorer.

2002 року з'явився перший випуск Visual Basic .NET. З цього моменту зворотна сумісність із класичною версією Visual Basic виявилася порушеною.

З 2005 року Visual Basic входить до складу IDE Microsoft Visual Studio 2005. До цього дня мова розвивається разом із IDE – аж до поточної версії – MS Visual Studio 2015.

Мови Basic і Visual Basic пройшли серйозний шлях і зазнали суттєвих, можна сказати, незворотних змін. Від їхньої початкової простоти мало що залишилося. В результаті VB перетворилася на «звичайну» об'єктно-орієнтовану мову програмування високого рівня.

ОСНОВИ ПРОГРАМУВАННЯ НА МОВІ BASIC

Мова BASIC (Beginner's All-purpose Symbolic Instruction Code) розроблена Джоном Кіміні і Томасом Куртцем у Дартмутському коледжі.США, у середині 1960-х рр.

BASIC займає особливу увагу серед усіх мов високого рівня. З самого початку він замислювався як універсальна мова для початківців, і засоби програмування на BASIC досі включаються до комплекту постачання ПК, як обов'язковий елемент технології.

Ось деякі переваги BASIC (з погляду масового користувача):

Простота синтаксису;

Простота організації даних та керуючих структур;

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

Примітка.В інших мовах цих цілей доводиться залучати спеціальні процедури та функції, які розробляються (або розшукуються) самим користувачем.

Особливою перевагою BASIC слід вважати можливість роботи в режимі інтерпретації,який різко спрощує процес налагодження програм: виконання майже кожної команди можна перевірити одразу після написання. Справді, навряд чи знайдете іншу мову, програма якого (завершена програма!) могла б складатися з єдиного оператора. Print «привіт»

Щоб написати та виконати таку програму мовою С чи Pascal, необхідно оформити текст, скомпілювати програму (створити об'єктний модуль з розширенням, OBJ); відредагувати її (створити модуль, що виконується з розширенням.ЄХЕ); виконати програму; перейти на вихідний екран, щоб побачити результати.

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

У середовищі QBASIC для вирішення того ж завдання ви можете просто набрати PRINT "Доброго дня, Світ!" та натиснути (Shift+F5).

Деякі фахівці виділяють три основні покоління в історії розвитку мови BASIC, і типовими представниками цих поколінь є:

GW-BASIC – система програмування, що працювала в режимі інтерпретації та входила до складу застарілих версій MS-DOS;

QuickBASIC (є декілька версій) - самостійна система програмування фірми Microsoft, що включає як інтерпретатор, так і компілятор мови;

Visual BASIC - потужна об'єктно-орієнтована система програмування (Microsoft), яка застосовується як професіоналами розробки складних сучасних додатків, і користувачами (наприклад, під час підготовки макросів для Excel чи Word).

Ми вивчатимемо систему програмування QBASIC, - вона входить до складу MS-DOS, починаючи з версії 5.0, і обслуговується утилітою QBASIC.ЕХЕ. Цю систему можна вважати спрощеною версією автономної системи QuickBASIC.

Система працює в режимі інтерпретації, вкрай проста у вивченні та експлуатації, не потребує значних обчислювальних ресурсів нарешті. - Є на всіх машинах.

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

Тому ми вважаємо, що QBASIC є оптимальним засобом навчання програмування в рамках загальноосвітньогокурс інформаційної технології.

Середовище програмування QBASIC

Об'єктом обробки QBASIC є текстовий файл "канонічного" формату, що містить вихідний текст програми мовою BASIC. Після завантаження QBASIC. EXE на екрані з'являється вікно текстового редактора системи, показане на рис. 3.1.

У цьому вікні ви проводите всі операції з програмою – набираєте та редагуєте текст, зберігаєте текст у файлі, відкриваєте для роботи готовий файл, налагоджуєте та виконуєте програму тощо.

Файлу можна надати довільне ім'я з довільним розширенням, але рекомендується розширення.BAS,

За допомогою пунктів головного меню File, Edit, View, Searchви працюєте з вихідним текстом програми за допомогою пункту Run- Виконуєте, а за допомогою пункту Debug- налагоджуєте програму.

Текстовий редактор QBASIC працює так само,як і простий редактор MS-DOS Editor (основний стандарт редагування, операції з фрагментами тексту). Тому ми не повторюємо викладення техніки редагування, - додамо тільки, що для видалення рядка, під яким знаходиться курсор, можна натиснути клавіші (Ctrl+Y).

Примітка.Деякі користувачі воліють користуватися більш зручними (з їхньої точки зору) редакторами. Ніхто вам не заважає підготувати вихідний текст програми у своєму улюбленому редакторі, а потім працювати з ним та середовищем QBASIC. Службові слова, якщо це зручно, можна набирати малими літерами. - QBASIC сам виправить їх на великі.

Загальні поняття QBASIC

Команди у мові BASIC

Як ви вже знаєте, програма, написана будь-якою мовою програмування, являє собою якийсь набір інструкцій,описує процес виконання алгоритмузавдання. Інструкції записуються за певними правилами, передбаченими вимогами мови та угодами конкретного компілятора (інтерпретатора), та оформляються у вигляді текстового файлу "канонічного" формату.

Такий файл часто називають вихідним текстомпрограми. Спеціальна програма (у нашому випадку QBASIC.EXE) переглядає вихідний текст і, якщо в ньому немає формальних (синтаксичних) помилок, або виконує інструкції негайно (режим інтерпретації), або переводить їх у машинну форму та оформляє у вигляді незалежного виконуваногофайл з розширенням.EXE (режим компіляції).

Інструкції вихідної програми називають по-різному: командами, операторами, пропозиціями, розпорядженнями, операціями.

У нашому курсі кожну інструкцію BASIC ми називаємо командою(Англійський еквівалент - statement).

За функціями, що виконуються у програмі, команди умовноможна розділити на чотири групи:

1) команди описи(даних, функцій тощо);

2) команди дії,

3) команди управлінняходом виконання програми;

4) команди введенняі висновкуданих.

1. Наприклад, команда DEFINT I-K повідомляє QBASIC, що змінні, імена яких починаються з букв I, J і К, приймають цілі числові значення в діапазоні від -32768 до 32767. У команді DATA 5, 9, 18, 24 записано кілька чисел, значення яких надалі будуть надані якимось змінним за допомогою команди введення READ. Команда DEF FNsig(x)=SIN(x*3.14159/180!) описує функцію,яка надалі обчислюватиме синус кута, заданого в градусахі т.п.

2. За командою діїПрограма виконує конкретну операцію (щось обчислює, щось робить). Наприклад, за командою

змінною, позначеною ім'ям А, буде присвоєнодобуток значень змінних В і С мінус значення змінної D. За командою ВЄЄР динамік комп'ютера видасть короткий "писк" тощо.

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

4. Команди введення та виводу дозволяють нам вводити дані з клавіатури або файлу, виводити результати на дисплей, принтер або файл. Наприклад, команда

INPUT "Введіть коефіцієнт А=", а!

запропонує вам ввести кілька з клавіатури. Значення цього числа буде присвоєно змінній з іменем а, а команда

PRINT a!

виведе те число на дисплей.

Зверніть увагу на деяку умовність нашої класифікації: команди введення та виведення також можна вважати командами дії.

Команди можна розділити на виконувані та нездійснювані. Зрозуміло, що команди першої групи - нездійснювані: з допомогою ми просто повідомляємо програмі, як треба організувати дані та функції.

Алфавіту basic.

Алфавіт (набір символів) включає:

Всі латинські малі та великі літери.

Арабські цифри 0 – 9

Службові знаки які використовуються як суфікси, знаки операцій та спеціальні символи.

Суфікси імен змінних визначають тип даних:

% - ціле число

&- довге тире

! – дійсне число звичайної точності

# - дійсне число подвійної точності.

$ - рядок символів

знаки операцій

*- множення

/ - розподіл

Додавання

· - віднімання

^ - Зведення в ступінь.

Знак присвоювання та знак відношення

< - меньше чем

> - більше ніж

. – десяткова точка

спеціальні символи

‘ – знак коментаря

; - роздільник в операторах PRINT та INPUT

Розділювач в операторах PRINT та INPUT

: - роздільник команд набраних в одному рядку.

Константи

Існує два типи констант: рядкові та числові.

Строкова константа є послідовністю до 255 символів, укладених у лапки.

Приклади рядкових констант:

"HELLO"

"-25,00.00"

"A+B*200"

Числові константи є позитивними і негативними числами. Числові константи в Бейсику не можуть містити коми.

Існує 5 типів числових констант:

1) цілі константи;

2) константи з фіксованою точкою;

3) константи з плаваючою точкою;

4) шістнадцяткові константи;

5) вісімкові константи.

Цілі константи є цілими числами в діапазоні від -32768 до +32767. Цілі константи що неспроможні містити десяткову точку.

Константи з фіксованою точкою - позитивні чи негативні речові числа, тобто. числа з десятковою точкою.

Константи з плаваючою точкою мають експоненційну форму. Ці константи складаються з цілого чи речового числа (мантиси) та літери E (або D), за якою слідує ціле число (експонента). Якщо необхідно, мантиса та експонента можуть мати знак. Константи з плаваючою точкою мають діапазон уявлення від 10-38 до 10+38.

Шістнадцяткова константа є шістнадцятковим числом з префіксом &H.

Восьмерична константа представляється вісімковим числом з префіксом & або &О.

Числові константи можуть бути звичайною або подвійною точністю. Константи звичайної точності видаються 7 цифрами, а константи

подвійний точності -16 цифр.

Константою звичайної точності є будь-яка числова константа, яка має одну з таких ознак:

менше 8 цифр;

Експонентна форма з використанням E;

Закінчується знаком оклику.

Константою подвійної точності є будь-яка числова константа, яка має одну з наступних ознак:

Більше 7 цифр;

Експонентна форма з використанням D;

Закінчується символом "#".

Приклади числових констант:

645 - ціла константа;

1.09E-06 – константа звичайної точності;

22.5! - Константа нормальної точності;

1.09432D -05 – константа подвійної точності;

345692811 – константа подвійної точності;

&H32F - шістнадцяткова константа;

&0347 - вісімкова константа;

&1234 - вісімкова константа;

Змінні

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

Значення змінної може бути безпосередньо присвоєно програмістом, або може визначатися в результаті обчислень у програмі. Перш ніж змінної буде присвоєно значення, вона приймається рівною нулю.

Імена змінних у Бейсику можуть бути будь-якої довжини, однак розпізнавання змінної здійснюється за першими 40 символами. Для позначення імені змінної можна використовувати літери, цифри та десяткову точку, причому першим символом імені має бути буква. Крім того, можна використовувати спеціальні символи оголошення типу, про які буде сказано нижче.

Ім'я змінної може бути зарезервованим ім'ям. До зарезервованих імен у Бейсику належать імена директив, операторів, функцій та операцій.

Змінні можуть означати чисельні величини, чи рядки. Ім'я рядкової змінної має закінчуватися символом "$". Символ "$" у разі є символом оголошення, що вказує на те, що змінна є рядковою.

Імена числових змінних можуть означати цілі числа, числа звичайної та подвійної точності. Для завдання типу числової змінної використовуються такі символи:

% - Ціла змінна;

Змінна звичайна точність;

# - змінна подвійна точність.

За умовчанням числові змінні мають уявлення зі звичайною точністю.

Приклади імен змінних:

A$ - ім'я рядкової змінної;

PI# - ім'я змінної подвійної точності;

MINIMUM – ім'я змінної звичайної точності;

LIMIT% - ім'я цілої змінної;

ABC – ім'я змінної звичайної точності.

У Бейсику існує й інший спосіб оголошення типу змінної. Для цього використовуються оператори DEFINT, DEFSTR, DEFSNG та DEFDBL, які будуть описані нижче.

Для розміщення в пам'яті цілої змінної необхідно 2 байти, для змінної звичайної точності - 4 байти, а для змінної подвійної точності - 8 байт.

Для розміщення рядкової змінної в пам'яті необхідно 3 байти плюс кількість байт, що дорівнює кількості символів у рядку.

Арифметичні операції

Арифметичні операції у Бейсику мають порядок старшинства, наведений у таблиці 1.

Таблиця 1

| Порядок |||

| старшин. Операція | приклад|

| 1 | Зведення на ступінь| X^Y|

| 2 | Заперечення | -X |

| 3 | Множення та розподіл | X * Y X / Y |

| 4 | Цілочисельне розподіл | X\Y|

| 5 | Модуль числа | X MOD Y |

| 6 | Додавання та віднімання| X + Y X - Y |

|Для зміни порядку виконання операцій застосовуються дужки.

Операції усередині дужок виконуються першими у порядку старшинства.

При виконанні операції цілісного поділу операнди округляються до цілих значень (вони повинні бути в межах від -32768 до

32767) перед виконанням поділу та приватне усікається до цілого.

23.68 \ 6.99 = 3

Результатом операції модуля числа є залишок цілого розподілу.

25.68 MOD 6.99 = 5

Якщо під час обчислення виразу відбувається поділ на нуль, видається повідомлення про помилку "Division by zero", результату поділу надається максимально можливе число зі знаком чисельника і виконання програми продовжується.

Якщо нуль зводиться в негативний ступінь, видається повідомлення про помилку "Division by zero", результату надається максимально можливе позитивне число і виконання програми продовжується.

У разі переповнення видається повідомлення про помилку "Overflow", результату присвоюється максимально можливе число з відповідним знаком і виконання продовжується.

У мові BASIC передбачені вбудовані функції та функції розроблені користувачем (користувацькі функції). Вони відрізняються тим, що вбудовані функції були створені заздалегідь розробниками та виконують найбільш популярні операції.

Вбудовані функції.

Вбудовані функції поділяють на:

1.математичні

2. Функції перетворення числових значень.

3.Функції перетворення «символи-число» і «число – символи»

4.Функції роботи з рядками символів

Математичні функції.

Abs(Арифметичний вираз) Повертає модуль значення арифметичний вираз. Наприклад:

PRINT ABS (48.2 – 100!) на екрані 51.8

Sgn(Арифм. Вираз) нехай значення арфм. Вирази одно Х. Функція Sgn повертає 1 якщо Х > 0, 0 якщо Х = 0, -1 якщо X<0. Например:

PRINT SGN(-25.2) на екрані: -1

ATN(вираз) повертає арктангенс значення виразу (кут, виражений у радіанах)

COS(кут)

SIN(кут)

TAN(кут)

Наприклад:

CONST PI = 3.14

PRINT SIN (PI/2) на екрані : 1.000…

EXP (вираз) повертає експоненту значення виразу e x . Наприклад

PRINT EXP(1) на екрані 2.71828

LOG(Вираз) повертає натуральний логарифм. Наприклад:

PRINT LOG (1) на екрані 0

SQR(Вираз) повертає корінь квадратний із значення виразу. Наприклад:

PRINT SQR (1.44) на екрані 1.2

FIX(вираз) повертає цілу частину виразу

INT(вираз) повертає найбільше ціле

CINT(Вираз) округляє вираз за правилами арифметики.

Наприклад:

PRINT FIX (24.3); INT(24.3); CINT(24.3) на екрані 24 24 24

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

Мова програмування бейсік був розроблений Томасом Курцем та Джоном Кенемі, в 1964 році з метою навчання студентів основ програмування. Мова вийшла проста, зрозуміла, з досить-таки легким інтерфейсом. Мета розробників була зрозуміла: їм потрібна була проста мова програмування, яка одночасно була б і доступною. Ось основні положення, які враховували Батьки бейсика:

1) Простота використання;

2) Масовість;

3) інформативність;

4) Мова повинна підтримувати можливість відстеження та усунення помилок;

5) Мова не повинна вимагати серйозних апаратних знань;

6) Мова програмування має стати сполучною ланкою між користувачем та операційною системою.

Як наслідок, він став використовуватись у багатьох інших навчальних закладах. Через 11 років, коли світ наповнили мільйони нових мікрокомп'ютерів, мову програмування бейсик зацікавив Білла Гейтса та Пола Альона, людей, які створили Microsoft. Це вони, об'єднавши зусилля, покращили версію бейсика для своїх, яка змогла б працювати навіть з 4кб оперативної пам'яті (!).

Через деякий час саме їх версія і стала однією з найпопулярніших мов програмування. Під час становлення мову програмування бейсик часто намагалися закрити, багато хто хотів знайти недоліки та домогтися відміни використання цієї мови. Проте, з появою саме бейсик став основною мовою програмування, якою орієнтувалися інші. Варто зауважити, що він уже називався GW-Basic. З'явилися turbo basic від компанії Borland і Quick Basic. Усі версії які розроблялися пізніше, обов'язково писалися таким чином, щоб зберегти сумісність із попередніми. Навіть остання версія цієї мови програмування працює з першою, з невеликими коригуваннями.

І ось настала ера Microsoft. Початок 90-х: операційна система Windows захопила майже весь ринок програмного забезпечення, всі були раді її бачити, всі - крім програмістів. Їхнє життя стало пеклом. Щоб створювати прості, прості вікна, потрібно було писати море сторінок коду, змінювати шрифти написання, і нарешті "малювати" нові кнопки. Але треба визнати, що переваг у неї було значно більше, ніж недоліків, і, зрештою, вже третя версія операційної системи перетворилася на світовий стандарт для PC.

З'явилася необхідність модифікації бейсика. Таким чином, мова програмування бейсик стала називатися Microsoft Visual Basic. Про великі плани компанії ще було нічого відомо, і розробники орієнтували нову мову програмування насамперед непрофесіоналів. Система програмування, реалізована в Visual Basic, давала можливість відійти від важкої структури windows і створювати програми хорошого рівня, маючи не найбільший запас знань. Останнім цвяхом у труну, яка практично поховала інші, такі досить непогані види мов програмування як Fortran і Pascal, стала розробка різновиду бейсика для додатків.

В даний час мова програмування бейсик, настільки популярний, що чи не кожен програміст, що поважає себе, знає і користується ним. Хочеться відзначити, що він використовується в таких додатках як Microsoft Office і Internet Explorer. Але, мабуть, однією з найзначніших сфер застосування, мову програмування бейсик, отримав при розробці та налаштуванні додатків у середовищі .NET. Крім того, остання розробка компанії Білла Гейтса Microsoft C++ відкриває перед користувачами величезний спектр можливостей, і все це завдяки двом професорам з Dartmouth College.

На яких вони використовувалися, були розроблені для роботи з ними кваліфікованих технічних фахівців та програмістів. Оскільки машини були дорогими, то й машинний час був дорогим - тому на першому місці стояла швидкість виконання програми (швидкість рахунку).

Однак, протягом 1960-х ціни на комп'ютери почали падати так, що навіть невеликі компанії могли їх собі дозволити; їхня швидкодія все збільшувалася і настав час, коли стало можливо організувати більш ефективну безпосередню роботу користувачів з комп'ютерами в режимі поділу часу ( time-sharing).

Народження

Вибухове зростання

Незважаючи на те, що мова вже використовувалася на декількох мінікомп'ютерах, її справжнє поширення почалося з появи на мікрокомп'ютері Altair 8800 . Багато мов програмування були занадто великі, щоб поміститися в невелику пам'ять, яку користувачі таких машин могли собі дозволити. Для машин з таким повільним носієм як паперова стрічка (пізніше - аудіокасета) і без відповідного текстового редактора така невелика мова як Бейсік була чудовою знахідкою.

Бейсик використовується в деяких моделях програмованих калькуляторів. Наприклад, він був убудований у радянський калькулятор «Електроніка МК-85».

Опис мови

Синтаксис мови нагадує Fortran і багато елементів - явні запозичення з нього. Мова замислювався на навчання, тому його конструкції максимально прості. Як і в інших мовах програмування, ключові слова взяті з англійської. Основних типів даних два: рядки та числа. З появою версії Visual Basic , а також різних його модифікацій (таких як VBA), в мові з'явилося багато інших типів даних і доповнень, типових для сучасних мов програмування (наприклад, об'єктна модель). Оголошення змінних не вимагає спеціальної секції (на відміну, наприклад, Паскаля). Оголошення змінної - це її використання.

Ранні версії Бейсіка (такі як BASICA, GW-BASIC) суттєво відрізняються від сучасних діалектів і сьогодні практично не використовуються.

Ранні версії

Зовнішній вигляд програм на ранніх версіях Бейсіка багато в чому визначався тим, що він призначався для програмування з малим редактором тексту. У такому редакторі користувач не мав звичної зараз можливості відображати весь текст на екрані (у вікні), пересуватися по ньому в будь-яких напрямках за допомогою клавіатури та/або миші. У рядкових редакторах користувач для зміни рядка тексту повинен дати команду зміни рядка із заданим номером, потім ввести новий текст вказаного рядка. Для вставки нового рядка потрібно дати команду вставки, знову вказавши номер. Рядки, що вводяться, відображаються на екрані послідовно (незалежно від номерів). Щоб побачити зроблені зміни, застосовується команда виведення тексту, яка виводить рядки у правильному порядку (за зростанням номерів).

Все це відбилося у Бейсику. Кожен рядок починався з номера. При введенні редактор рядок опинялася у вихідному тексті програми на позиції, відповідної її номеру. Для вставлення нового рядка потрібно було дописати рядок із номером, що знаходиться в діапазоні між номерами двох інших рядків. «Розсунути» рядки було неможливо, якщо потрібно вставити новий рядок між рядками з сусідніми номерами, доводилося повторно вводити ці рядки з іншими номерами, щоб забезпечити розрив у нумерації (або застосовувати спеціальну команду RENUM, яка перенумеровувала всі вже введені рядки з постійним кроком, синхронно змінюючи всі команди переходів). Для спрощення оперативного редагування програми склалася практика нумерувати рядки з кроком 10 – це дозволяло практично у всіх випадках вставляти нові рядки без зміни номерів, що були введені раніше. Наприклад, щоб додати третій рядок між рядками 20 і 30, потрібно було написати рядок з номером 25. Типовий рядок із програми на Бейсику виглядав так:

10 PRINT "Hello, World!"

Змінювати вручну номери вже наявних рядків було небезпечно, оскільки номери виконували роль міток для оператора GOTO. Раніше в Бейсику були допустимі лише числові мітки для цього оператора, і наявність у кожному рядку унікального номера уможливлювала безумовний перехід до будь-якої з них. Числові мітки та активне використання GOTO було неминучим при програмуванні на Бейсику, що сприяло поганій структурі коду та у великих проектах призводило до заплутування самих авторів. Було навіть вигадано жартівливий термін «макаронне програмування» (spagetti code), тому що програма з частими переходами GOTO, на думку деяких, нагадувала тарілку зі спагетті.

Ознакою кінця оператора служив кінець рядка. Щоб на одному рядку розмістити кілька операторів, потрібно поставити між ними двокрапку (це дозволялося не у всіх реалізаціях мови). Імена змінних у більшості діалектів могли складатися тільки з однієї літери, після якої можна було додати одну цифру, що не сприяло поліпшенню розуміння коду. Для створення змінної рядкового типу потрібно було після назви вказати знак долара ($). Змінна без цього знака була числовою (з плаваючою точкою). Було ще кілька модифікаторів, що відносяться до числового типу: знак відсотка (%) - цілий тип, знак оклику (!) - звичайна точність, октоторп (#) - подвійна точність (для даних з плаваючою точкою, тобто дробів). Числові модифікатори застосовувалися не у всіх версіях.

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

Умовний оператор (IF..THEN) спочатку мав лише одну гілка - гілка ELSE в ньому була відсутня і моделювалася за допомогою безумовного переходу. Так, в наведеній нижче програмі виконується елементарна операція - введення числа і виведення повідомлення «Негативне число» або «Позитивне число або нуль» залежно від його значення:

10 INPUT I 20 IF I >= 0 THEN PRINT "Positive number or null" : GOTO 40 30 PRINT "Negative number" 40 END

Був оператор переходу по обчислюваній мітці ON..GOTO (успадкований від аналогічної конструкції Фортрана) - у ньому після ON вказувалося числове вираження, а після GOTO - список номерів рядків. Перехід відбувався на рядок, номер якого у списку відповідав значенню виразу. Є також цикли (цикл із лічильником FOR і цикл з передумовою WHILE).

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

Підпрограми не були аналогом функцій таких мов, як Сі або Паскаль, оскільки не мали імен і не могли приймати та/або повертати параметри. Параметри та результати передавалися через глобальні змінні (усі змінні у ранніх версіях Бейсіка були глобальними). Підпрограми писалися зазвичай наприкінці модуля, з нумерацією явно більшою, ніж заплановану кількість рядків (наприклад, нумерація блоку підпрограм могла починатися з 5000, навіть якщо у програмі було кілька сотень рядків). Підпрограми не мали заголовків та імен, і нічим не відрізнялися від будь-якої іншої ділянки коду. Виклик підпрограми здійснювався за допомогою ключового слова GOSUB<метка>. Це практично клон GOTO, за винятком одного: повернення в точку виклику відбувалося автоматично, при досягненні в підпрограмі ключового слова RETURN. GOSUB , як і GOTO , лише сприяли поганій структурі коду, тому що відстежити виконання програми, що містить велику кількість безумовних переходів та підпрограм, було складним завданням.

Відсутність можливості давати підпрограм імена (і передавати за ними управління), неможливість передачі параметрів, відсутність локальних змінних, використання тільки числових міток у великих проектах викликало плутанину в коді і дуже ускладнювало налагодження.

У деяких діалектах Бейсика була можливість завантажити файл з кодом безпосередньо під час виконання програми (поточний при цьому вивантажувався) оператором CHAIN ​​. Це була одна з найкорисніших можливостей мови, тому що вона дозволяла розбити великий проект на модулі, викликаючи їх у порядку потреби.

# Lang "fb" Dim As String n,s,t,n2,t2 Cls : Print "Ласкаво просимо!" "Заголовок у першому рядку Do Цикл, що виводить лінію під заголовком, на всю ширину екрану For i As Integer =1 To LoWord (Width) Print "=" ; Next i "Введення символьних даних від користувача Input "Ім'я: " ,n Input "Прізвище: " ,s Input "По батькові: " ,t "Вирізаємо копію перших символів з імені та по батькові n2=Left (n,1) t2=Left (t,1) "Виводимо результат Print "Ваше ім'я коротко:"; s; ""; n2; "."; t2; "." Print "Повторити програму? (y/n) " Loop While LCase (Input (1 ) ) = "y" End 0

Незважаючи на популярність, в 2001 році Microsoft відмовилася від подальшої підтримки Visual Basic на користь принципово нової мови Visual Basic. та ключові слова. Таким чином, Basic переріс із засобу для створення програм любителям-непрофесіоналам до повноцінного засобу створення програм.

Крім написання повноцінних програм, Бейсік широко застосовується як основа для різних мов скриптів (наприклад, макроси в пакеті Microsoft Office пишуться на діалекті VBA).

Критика

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

Однією з «візитівок» Едсгера Дейкстри став вислів: « Студентів, які раніше вивчали Бейсік, практично неможливо навчити хорошому програмуванню. Як потенційні програмісти вони зазнали незворотної розумової деградації». Однак, цей вислів цитується поза контекстом, в якому Дейкстра розкритикував і багато інших популярних на той час мов.

Крім того, критики Бейсіка часто ігнорують той факт, що він створювався як аж ніяк не інструмент професійної розробки складних програм, а засоби, за допомогою якого студенти-непрограмісти зможуть писати найпростіші програми. Якщо ж говорити про сучасні діалекти і реалізація Бейсика, то вони далеко втекли від первісної форми мови, є більш структурованими і зіставні по можливостях з такими мовами, як Сі, Паскаль і т.п.

Стандарти

  • 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»

Виробники

У різний час інтерпретатори BASIC випускалися різними організаціями, компаніями, фірмами як за кордоном, так і в СРСР:

Іноземні

  • Basic International
  • CDC (англ.)російська.
  • Comshare
  • Concept Omega
  • Data General (англ.)російська.
  • Exidy (англ.)російська.
  • Fantaisie Software
  • The Game Creators
  • Gordon Eubanks (англ.)російська.
  • Hedge Systems
  • Mark Williams (англ.)російська.
  • Microdata (англ.)російська.
  • Microway (англ.)російська.
  • Morgan Computing
  • NCR Century (англ.)російська.
  • Radio Shack (англ.)російська.
  • Ryan McFarland (англ.)російська.
  • Sax Software
  • Sperry (англ.)російська. / Univac (англ.)російська.
  • Summi Software Tehnology
  • True Basic (англ.)російська.
  • Unicomp (англ.)російська.
  • Varian (англ.)російська.
  • Zedcor (англ.)російська.
  • ВЦ СО АН СРСР - Новосибірськ
  • Університет - Нижній Новгород

Реалізації

Apple

Microsoft

Інші

  • BBC-basic


Розповісти друзям