Мова програмування basic в ubuntu linux - ubuntu в сумах

Бейсік - BASIC (Beginner's All-purpose Symbolic Instruction Code) - один з колись найпопулярніших мов програмування, який веде свою історію з 1964 року. Саме з мови Бейсік багато починали своє знайомство з програмуванням, а для деяких він залишився єдиним. Існує думка, що Бейсік вже безнадійно застарів разом з комп'ютерами Altair, ZX-Spectrum, IBM PC і операційними системами CP / M і DOS. У кращому випадку про Бейсік згадують, коли мова йде про VisualBasic або VBA. але в цьому випадку сфера його застосування обмежується Windows, а у професійних програмістів згадка про Бейсике здатне викликати лише посмішку. Я вирішив зробити невеликий огляд найпоширеніших реалізацій мови Бейсік під Linux і показати, що не настільки вже погано йдуть справи з цим незаслужено забутою мовою. Адже якщо у вас є бажання або необхідність створити нескладну програму для власних потреб, але при цьому немає часу, бажання або можливостей вивчати іншу мову, ви можете «згадати молодість» і скористатися одним з описаних нижче інструментів.

Не дарма я починаю огляд саме з цієї програми. Серед усіх розглянутих, вона найбільш схожа на перше покоління інтерпретаторів BASIC. знайомих багатьом ще з IBM PC, ZX-Spectrum, різним «Електроніка», «БК» і іншим. А назва бінарного файлу - bwbasic - викликає асоціації з відомим GW-BASIC. Інтерпретатор запускається прямо в терміналі, навіть не очищаючи екрану і все введення / виведення проходить прямо там. Використовується звична для перших версій Бейсика нумерація рядків, і, відповідно, команди RUN, LIST, NEW, SAVE, LOAD ... Для виходу з інтерпретатора використовується команда SYSTEM.

Мова програмування basic в ubuntu linux - ubuntu в сумах

Запуск самого інтерпретатора, як видно на наведеному вище скріншоті, здійснюється командою bwbasic. Єдиним параметром може бути ім'я текстового файлу програми, наприклад

Підмогою в якості довідника по операторам і фунцию буде man-сторінка програми.

Серед переліку операторів і фунций є як звичні для всіх діалектів Бейсика, так і специфічні, призначені для роботи з файловою системою Unix (Linux) / Windows. Зустрічаються і деякі недоліки: наприклад, звична команда CLS дії в версії 2.2. не провадить (хоча згадується в керівництві для версії 2.1), тому очищення екрану можна зробити за допомогою CLEAR SCREEN.

Бажано також пам'ятати про таку цікаву особливість, що, хоча інтерпретатор не розрізняє регістр для операторів і фунций, він при цьому розрізняє його для змінних. Тому NAME $, Name $ і name $ - це три різних змінних з точки зору bwbasic.

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

Встановити Bywater BASIC можна відразу з репозиторіїв Ubuntu:

sudo apt-get install bwbasic

проте, в Ubuntu 12.10 була доступна версія 2.2, тоді як на сайті розробника заявлена ​​2.6.

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

Переваги: ​​стабільна робота, «класичний» інтерпретатор, робота з командного рядка.

Недоліки: обмежена функціональність.

2. X11-BASIC - Basic interpreter and shell

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

Як і у випадку з bwbasic, xbasic запускається прямо в командному рядку, і після виходу залишає результати своєї роботи на екрані. Оскільки нумерація рядків не підтримується, то команда виконується відразу після її введення, а якщо ж рядок введення починається з числа, то використовується режим «калькулятора» (приклад видно на скріншоті нижче).

Мова програмування basic в ubuntu linux - ubuntu в сумах

Мова програмування basic в ubuntu linux - ubuntu в сумах

Інтерпретатор «розуміє» команди LIST, RUN, NEW, SAVE, LOAD, а для виходу використовується QUIT.

Перше враження, можливо, викликає певне здивування: навіщо такий unix-way для простого Бейсика. Як виявилося, xbasic не так вже й простий. xbasic розрахований на роботу практично в будь-якій Unix / Linux системі, включаючи MacOS X і Android (!), а також підтримується для операційної системи Windows. Та й діалект BASIC виявився дуже функціональним. Підтримка різних ОС не обмежила функціональність мови, а навпаки, дозволила реалізувати підтримку графічного режиму, миші, сенсорного екрану (!), Мережі і навіть GPS -Датчик (!).

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

XIO: fatal IO error 0 (Success) on X server «: 0.0»
after 35 requests (31 known processed) with 95 events remaining.

А ось так виглядав висновок діалогового вікна по команді з керівництва програми:

Мова програмування basic в ubuntu linux - ubuntu в сумах

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

Мова програмування basic в ubuntu linux - ubuntu в сумах

Однак, навіть після цього, проблеми спостерігалися. Іноді деяке зображення вдавалося отримати, «клікаючи» мишею по вікну виведення, іноді навіть спроба виклику якогось графічного оператора приводила до краху програми:

Мова програмування basic в ubuntu linux - ubuntu в сумах

X11-BASIC підтримує виконання (або просто завантаження) файлу з програмою в якості параметра запуску, виконання окремого рядка з кодом, режим «калькулятора» і навіть роботу програми в якості демона (!).

Ще однією цікавою і корисною особливістю є можливість використання xbasic як командної оболонки. Так, якщо можливостей bash вам мало, а вивчати Perl або Python немає бажання, часу або можливості, ви можете подібним чином створювати скрипти на Бейсике, якщо ви володіти ним.

Тобто досить повідомити шлях до інтерпретатора в першому рядку bas-файлу:

#! / Usr / bin / xbasic (шлях до xbasic в моїй системі, який ви зможете отримати командою whereis xbasic)

і зробити його виконуваним командою chmox + xімя_файла, після чого, файл стане можливим запускати як і будь-який інший бінарний або скриптова файл.

Для простоти установки інтерпретатора можна використовувати deb-файл, пропонований розробником за посиланням. На жаль, доступна версія тільки для 32-бітної системи, яка, однак, працює після установки необхідної 32-бітної бібліотеки:

sudo apt-get install libreadline6: i386

Керівництво по операторам, функціям і системним змінним програми доступні через довідкову службу man:

Переваги: ​​дуже широкі можливості і великий перелік реалізованих функцій; доступність під різні ОС; можливість використання в якості командної оболонки.

Недоліки: складність роботи для малопідготовлені користувача; збої при роботі з графічним режимом.

Наступний представник сімейства BASIC в огляді також представлений версіями для різних операційних систем, де на тлі звичних Windows, Linux і навіть Androiod. виділяється версія для PalmOS.

SmallBASIC можна встановити, використовуючи deb-файл на сторінці розробника. Не дивлячись на те, що версія 32-бітна, ніяких додаткових бібліотек доустанавливать не знадобилося. Після установки, ви зможете знайти програму через головне меню вашої графічної оболонки в розділі «Розробка». SmallBASIC має графічний інтерфейс з підтримкою безлічі вкладок. При цьому, для виведення (одночасно як графічного, так і текстового) використовується тільки одна вкладка, тому і запущена одночасно може бути тільки одна програма, хоча листинги на різних вкладках можуть бути різні.

Мова програмування basic в ubuntu linux - ubuntu в сумах

Мова програмування basic в ubuntu linux - ubuntu в сумах

Як і у випадку з xbasic. якщо можливість використовувати SmallBASIC як командної оболонки, додавши шлях з параметрами в першому рядку бейсик-програми і зробивши файл виконуваним (див. опис xbasic)

#! / Usr / bin / sbasici -n -r

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

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

Переваги: ​​наочність; зручність використання; хороша функціональність; чудовий для навчальних цілей.

Недоліки: неможливість компіляції і нестабільність роботи в якості командної оболонки.

FreeBASIC на відміну від попередніх програм в огляді, є повноцінним компілятором, а не інтерпретатором. З одного боку, він обмежується тільки архітектурою i386, зате серед підтримуваних ОС, не тільки Linux, Windows і DOS. а й Xbox (!) від Microsoft.

Перед установкою компілятора в систему, встановіть наступні пакети:

Для 64-бітної Ubuntu / Debian:

sudo apt-get install gcc-multilib g ++ - multilib lib32ncurses5-dev libx11-dev: i386 libxext-dev: i386 libxrender-dev: i386 libxrandr-dev: i386 libxpm-dev: i386

Для 32-бітної Ubuntu / Debian:

sudo apt-get install gcc g ++ lib32ncurses5-dev libx11-dev libxext-dev libxrender-dev libxrandr-dev libxpm-dev libffi-dev

Далі скачайте і розпакуємо архів з бінарним файлом FreeBASIC, розпакуємо його, зробимо виконуваним інсталяційний файл в папці з програмою

chmod + x install.sh

і встановимо його, виконавши

sudo ./install.sh -i

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

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

Однак, враження трохи змазується відсутністю повноцінної IDE для FreeBASIC, але цю проблему нескладно вирішити, встановивши універсальну IDE Geany.

sudo apt-get install geany

Мова програмування basic в ubuntu linux - ubuntu в сумах

При першому запуску Geany необхідно буде вибрати в меню «Документ> Встановити тип файлу> Мови програмування> Файл FreeBasic» і можна починати роботу. На скрішоте нижче показаний приклад виконання графічної програми з Geany.

Мова програмування basic в ubuntu linux - ubuntu в сумах

При цьому компілюється і бінарний файл, який потім можна використовувати окремо. Вказати додаткові параметри для компілятора (наприклад, параметр сумісності з QuickBASIC) можна в меню «Збірка> Встановити команди збірки».

Переваги: ​​дуже потужний компілятор з широкими професійними можливостями.

Недоліки: обмежений i386 архітектурою.

Gambas - представник третього покоління мови BASIC, об'єктно-орієнтована, і позиціонується як альтернатива Microsoft VisualBASIC під Linux. Назва являє собою рекурсивний акронім G ambas A lmost M eans BAS ic. тобто «Gambas - майже Бейсік».

Встановити програму можна відразу з репозиторіїв Ubuntu:

sudo apt-get install gambas3

На випадок, якщо у вашому репозиторії є тільки Gambas 2.х. то третю версію ви можете отримати в цьому PPA.

Мова програмування basic в ubuntu linux - ubuntu в сумах
Мова програмування basic в ubuntu linux - ubuntu в сумах
Мова програмування basic в ubuntu linux - ubuntu в сумах

За Gambas достуно досить документації в Wiki, в тому числі і російською мовою. Якщо вам потрібен об'єктно-орієнтована BASIC, то Gambas - це те, що вам підходить.

Переваги: ​​об'єктно-орієнтована BASIC c великою кількістю документації по мові; можливість роботи з базами даних.

Недоліки: функціонування обмежена платформою Linux.

Із задоволенням прочитав Вашу статтю!
Програмував на qBasic на XT, розрахункові програми, потім маленько VBA, ACCESS 97 серйозно.
Тепер є завдання - невеликі бази, бажано .EXE. Білл Гетсc набрид (Microsoft) своєї безпардонністю. Є велике бажання і давно піти на Linux і на бази в Linux.
Сьогодні перший раз набрав «мови програмування в Linux» і потрапив на Вашу статтю.
Gambas - це гідний вибір?

про PureBasic забули, правда він платний, але хто шукає - той завжди знайде 😉