Interested Article - FreeBASIC

FreeBASIC язык программирования высокого уровня по синтаксису наиболее близкий к QuickBASIC , а также компилятор для него (FreeBASIC Compiler). Первоначально компилятор разрабатывался как свободная альтернатива Microsoft QuickBasic, но скоро обзавёлся новыми возможностями, превратившись в мощное средство разработки. Хотя первые версии компилятора были написаны на Visual Basic , теперь он может откомпилировать сам себя.

Компилятор

Компилирует QBasic и FreeBASIC код в 32 и 64-битные исполняемые Win32 , DOS защищённом режиме ) и Linux x86 модули.

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

Компилятор распространяется на условиях GNU GPL , стандартная библиотека — на GNU LGPL .

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

Язык

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

Новые возможности и расширения

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

Примеры программ

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. (неопр.) . Дата обращения: 1 января 2022. 1 января 2022 года.
  2. (англ.) . freebasic.net. — FreeBASIC - ещё больше нужных функций . Дата обращения: 14 октября 2015. Архивировано из 24 октября 2015 года.

См. также

Источники

  • (англ.)

Ссылки

IDE
  • — IDE для FreeBASIC
  • (недоступная ссылка) — ещё одна IDE для FreeBASIC
  • - Современный FreeBASIC IDE для Windows

Same as FreeBASIC