FreeBASIC — это бесплатный мультиплатформенный компилятор и язык программирования с открытым исходным кодом , основанный на BASIC , лицензированный по лицензии GNU GPL для Microsoft Windows , MS-DOS с защищенным режимом ( расширитель DOS ), Linux , FreeBSD и Xbox . Версия для Xbox больше не поддерживается. [2]
Согласно официальному сайту [3] FreeBASIC обеспечивает синтаксическую совместимость с программами , изначально написанными на Microsoft QuickBASIC (QB). Однако, в отличие от QuickBASIC, FreeBASIC представляет собой компилятор только из командной строки , если только пользователи вручную не установят внешнюю интегрированную среду разработки (IDE) по своему выбору. [4] К IDE, специально созданным для FreeBASIC, относятся FBide и FbEdit, [5] а к более графическим опциям относятся WinFBE Suite и VisualFBEditor. [6] [7]
В своей внутренней части FreeBASIC использует GNU Binutils для создания консольных приложений и приложений с графическим пользовательским интерфейсом . FreeBASIC поддерживает связывание и создание статических и динамических библиотек C и имеет ограниченную поддержку библиотек C++ . В результате код, скомпилированный в FreeBASIC, можно повторно использовать в большинстве собственных сред разработки.
Поддерживается предварительная обработка в стиле C , включая многострочные макросы , условную компиляцию и включение файлов. Препроцессор также имеет доступ к информации о символах и настройкам компилятора, таким как диалект языка .
Первоначально FreeBASIC максимально точно имитировал синтаксис Microsoft QuickBASIC. Помимо этого, язык продолжил свое развитие. В результате FreeBASIC объединяет несколько языковых диалектов для максимального уровня совместимости с QuickBASIC и полного доступа к современным функциям. [8] Новые функции включают поддержку таких понятий, как объекты , перегрузка операторов , перегрузка функций , пространства имен и другие. [9]
Символы новой строки указывают на завершение операторов программирования. Оператор программирования можно распределить по нескольким последовательным строкам, используя символ продолжения строки подчеркивания (_), тогда как несколько операторов можно записать в одной строке, разделив каждый оператор двоеточием ( :).
Поддерживаются блочные комментарии , а также примечания в конце строки. Полнострочные комментарии обозначаются апострофом , '
а блоки закомментированного кода начинаются /'
и заканчиваются символом '/
.
FreeBASIC не учитывает регистр.
FreeBASIC обеспечивает встроенную поддержку графики, совместимую с QuickBASIC, через FBgfx, которая автоматически включается в программы, вызывающие команду SCREEN
. Его серверная часть по умолчанию использует OpenGL в Linux и DirectX в Microsoft Windows . Эта абстракция делает графический код FBgfx кросс-платформенным. Однако FBgfx не имеет аппаратного ускорения.
Пользователи, знакомые с внешними графическими утилитами, такими как OpenGL или Windows API, могут использовать их, не мешая встроенной графической библиотеке.
По мере развития FreeBASIC вносились изменения, требующие нарушения синтаксиса старого стиля. Чтобы продолжить поддержку программ, написанных с использованием старого синтаксиса, FreeBASIC теперь поддерживает следующие диалекты:
GOSUB
/ RETURN
, числовые метки и другие функции.Стандартные программы, такие как «Hello, World!» программы выполняются так же, как в QuickBASIC.
Распечатать «Привет, мир!» Sleep: end 'Комментарий, предотвращает мгновенное закрытие окна программы
FreeBASIC добавляет к этому поддержку объектно-ориентированных функций, таких как методы , конструкторы , динамическое выделение памяти , свойства и временное выделение.
Тип Vector Private : x As Integer y As Integer Public : Объявить конструктор ( nX As Integer = 0 , nY As Integer = 0 ) Объявить свойство getX как целое число Объявить свойство getY как целое число End Type Вектор -конструктор ( nX As Integer , nY As Integer ) x = nX y = nY Конечный конструктор Вектор свойств . getX как целое число, возвращающее x свойство End Вектор свойств . getY как целое число , возвращающее свойство End.
Dim As Vector Ptr player = Новый вектор () * player = Type < Vector > ( 100 , 100 ) Распечатать player -> getX Распечатать player -> getY Удалить игрока Sleep 'предотвращает мгновенное закрытие окна программы
В обоих случаях язык хорошо подходит для целей обучения.
RAD Basic — не единственная игра в городе.
Альтернативы на разных стадиях разработки включают TwinBASIC, который также стремится обеспечить обратную совместимость с VB6 и VBA;
и FreeBASIC, который реализует многое из того, что было в Microsoft QuickBASIC (и имеет изящную IDE в виде VisualFBEditor).