FreeBASIC

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
FreeBASIC
Fblogo.gif
Компілятор і об'єктно-орієнтована мова програмування[d]
Дата появи: 2004
Останній реліз: (31 січня 2016 р.)
Система типізації: строга, статична
Під впливом від: QuickBASIC C
Платформа: x86 і x86-64[d]
ОС: Linux, Windows, DOS
Ліцензія: GNU GPL
Сайт: freebasic.net
FreeBASIC у Вікісховищі?

FreeBASICмова програмування високого рівня, за синтаксисом найбільш близька до QuickBASIC, а також компілятор для неї (FreeBASIC Compiler). Спочатку компілятор розроблявся як вільна альтернатива Microsoft QuickBasic, але скоро обзавівся новими можливостями, перетворившись на потужний засіб розробки. Хоча перші версії компілятора були написані на Visual Basic, зараз він може відкомпілювати сам себе.[1]

Компілятор[ред.ред. код]

Компілює QBasic і FreeBASIC код в 32- і 64-бітні виконувані Win32, DOSзахищеному режимі) і Linux x86 модулі.

Ассемблювання і компонування виконуються за допомогою GNU Binutils.

Компілятор поширюється за ліцензією GNU GPL.

Існує декілька середовищ розробки, як відладчик можна використовувати GNU Debugger (також підтримується gprof).

Мова[ред.ред. код]

Незважаючи на те, що компілятор має сумісність з QuickBASIC, у мову FreeBASIC було додано безліч розширень і можливостей, для відповідності сучасним вимогам, стандартам і сумісності з бібліотеками і API написаними на C/C++. Починаючи з версії 0.17 користувач може вибрати три режими компіляції (опція -lang): режим сумісності з QuickBASIC (qb), старими версіями FreeBASIC (deprecated), і стандартний режим, що включає в себе всі останні зміни та можливості.

Нові можливості і розширення [2][ред.ред. код]

Підтримка бібліотек функцій прикладного програмування[ред.ред. код]

Приклади програм[ред.ред. код]

Hello, World![ред.ред. код]

Використовуючи вбудовану бібліотеку FreeBASIC:

Print "Hello, World!"

Використовуючи стандартну бібліотеку C:

#Include "crt.bi"

puts(!"Hello, World!\n")

Використовуючи Windows API:

#Include "windows.bi"

MessageBox(Null, "Hello, World!", "Message", MB_OK)

Об'єктно-орієнтоване програмування[ред.ред. код]

' Класс вектора
Type Vector
	W As Integer
	H As Integer
	Declare Constructor(nW As Integer, nH As Integer)
End Type
 
Constructor Vector(nW As Integer, nH As Integer)
	W = nW
	H = nH
End Constructor
 
' Клас для створення об'єкта
Type AObject
	Private:
		X As Integer
		Y As Integer
		Movement As Vector Pointer
	Public:
		' Видимые извне методы, включая конструктор и деструктор
		Declare Constructor(nX As Integer, nY As Integer)
		Declare Destructor()
		Declare Sub SetMotion (Motion As Vector Pointer)
		Declare Sub Move()
		Declare Property GetX As Integer
End Type
 
' Установка значень за промовчанням
Constructor AObject(nX As Integer, nY As Integer)
	X = nX
	Y = nY
End Constructor
 
' Вивільнення пам'яті
Destructor AObject()
	Delete Movement
End Destructor
 
' Установка вектора
Sub AObject.SetMotion(Motion As Vector Pointer)
	Movement = Motion
End Sub
 
' Переміщує об'єкт по його вектору
Sub AObject.Move()
	X += Movement->W
	Y += Movement->H
End Sub
 
' Повертає координату X, недоступну зовні
Property AObject.GetX As Integer
	Return X
End Property
 
' Фактичний початок програми
 
' Створення екзепляра класу з координатами (100, 100)
Dim Player As AObject = Type<AObject>(100, 100)
 
' Створення вектора з початковими значеннями (-10, 5) і переміщення позиції об'єкта
Player.SetMotion(New Vector(-10, 5))
 
' Переміщення об'єкта
Player.Move()
 
' Отримуємо координату X і виводимо на консоль
Print Player.GetX
 
' Деструктор об'єкта «Player» викликається тоді, коли об'єкт покидає зону видимості
' Оскільки «Player» є локальною змінною, деструктор викликається автоматично

' Очікуємо натискання будь-якої клавіші
Sleep

Примітки[ред.ред. код]

  1. Объектные диалекты языка Бейсик / Артем aka Kryeker // Spaces.ru. — 2012. — 19 августа. — Дата звернення: 14.10.2015. (Сравнение языков ОП.)
  2. More about FreeBASIC // Freebasic.net. — Дата звернення: 14.10.2015.

Джерела[ред.ред. код]

Посилання[ред.ред. код]