FreeBASIC - FreeBASIC
Парадигма | Процедурный , объектно-ориентированный |
---|---|
Разработано | Андре Виктор |
Разработчик | Команда разработчиков FreeBASIC |
Впервые появился | 2004 |
Стабильный выпуск | 1.08.1 / 9 июля 2021 г .
|
Печатная дисциплина | Статический |
Операционные системы | MS-DOS , FreeBSD , Linux , Microsoft Windows |
Лицензия | GNU GPLv2 + , стандартные библиотеки под лицензией GNU LGPLv2 + |
Веб-сайт | www |
Под влиянием | |
QuickBASIC , C |
FreeBASIC - это мультиплатформенный, бесплатный / открытый ( GPL ) язык программирования BASIC и компилятор для Microsoft Windows , MS-DOS в защищенном режиме ( расширитель DOS ), Linux , FreeBSD и Xbox . Версия Xbox больше не поддерживается.
Согласно официальному сайту, FreeBASIC обеспечивает совместимость синтаксиса с программами, изначально написанными на Microsoft QuickBASIC (QB). Однако, в отличие от QuickBASIC, FreeBASIC - это компилятор , работающий только из командной строки , если только пользователи вручную не устанавливают внешнюю интегрированную среду разработки (IDE) по своему выбору. IDE, специально созданные для FreeBASIC, включают FBide и FbEdit, в то время как другие графические параметры включают WinFBE Suite и VisualFBEditor.
Возможности компилятора
На своей внутренней стороне FreeBASIC использует GNU Binutils для создания консольных приложений и приложений с графическим пользовательским интерфейсом . FreeBASIC поддерживает связывание и создание статических и динамических библиотек C и имеет ограниченную поддержку библиотек C ++ . В результате код, скомпилированный в FreeBASIC, можно повторно использовать в большинстве нативных сред разработки.
Поддерживается предварительная обработка в стиле C , включая многострочные макросы , условную компиляцию и включение файлов. Препроцессор также имеет доступ к символьной информации и настройкам компилятора, таким как диалект языка .
Синтаксис
Изначально FreeBASIC максимально точно эмулировал синтаксис Microsoft QuickBASIC. Помимо этого, язык продолжал развиваться. В результате FreeBASIC объединяет несколько языковых диалектов для максимального уровня совместимости с QuickBASIC и полного доступа к современным функциям. Новые функции включают в себя поддержку таких понятий, как объекты , перегрузка операторов , перегрузка функций , пространства имен и других.
Символы новой строки указывают на завершение программных операторов. Оператор программирования может быть распределен по нескольким последовательным строкам с помощью символа продолжения строки подчеркивания (_), тогда как несколько операторов могут быть записаны в одной строке, разделив каждый оператор двоеточием (:).
Поддерживаются блочные комментарии , а также комментарии в конце строки. Комментарии на всю строку делаются с апострофом '
, а блоки комментируемого кода начинаются /'
и заканчиваются '/
.
FreeBASIC не чувствителен к регистру.
Графическая библиотека
FreeBASIC предоставляет встроенную поддержку графики, совместимую с QuickBASIC, через FBgfx, которая автоматически включается в программы, выполняющие вызов SCREEN
команды. Его бэкэнд по умолчанию использует OpenGL в Linux и DirectX в Microsoft Windows . Эта абстракция делает графический код FBgfx кроссплатформенным. Однако FBgfx не имеет аппаратного ускорения.
Пользователи, знакомые с внешними графическими утилитами, такими как OpenGL или Windows API, могут использовать их, не мешая работе встроенной графической библиотеки.
Языковые диалекты
По мере развития FreeBASIC в него вносились изменения, требовавшие нарушения синтаксиса старого стиля. Чтобы продолжить поддержку программ, написанных с использованием старого синтаксиса, FreeBASIC теперь поддерживает следующие диалекты:
- Диалект по умолчанию ( -lang fb в качестве аргумента командной строки ) поддерживает все новые функции компилятора и запрещает архаичный синтаксис.
- Диалект FB-lite ( -lang fblite ) позволяет использовать большинство новых, не объектно-ориентированных функций в дополнение к программированию в старом стиле. В этом диалекте разрешены неявные переменные, суффиксы,
GOSUB
/RETURN
, числовые метки и другие функции. - Диалект QB ( -lang qb ) пытается воспроизвести поведение QuickBASIC и может компилировать многие программы QuickBASIC без изменений.
Пример кода
Стандартные программы, такие как «Hello, World!» программы выполнены так же, как и в QuickBASIC.
Print "Hello, World!"
sleep:end 'Comment, prevents the program window from closing instantly
FreeBASIC добавляет к этому поддержку объектно-ориентированных функций, таких как методы , конструкторы , динамическое выделение памяти , свойства и временное выделение.
Type Vector
Private:
x As Integer
y As Integer
Public:
Declare Constructor (nX As Integer = 0, nY As Integer = 0)
Declare Property getX As Integer
Declare Property getY As Integer
End Type
Constructor Vector (nX As Integer, nY As Integer)
x = nX
y = nY
End Constructor
Property Vector.getX As Integer
Return x
End Property
Property Vector.getY As Integer
Return y
End Property
Dim As Vector Ptr player = New Vector()
*player = Type<Vector>(100, 100)
Print player->getX
Print player->getY
Delete player
Sleep 'Prevents the program window from closing instantly
В обоих случаях язык хорошо подходит для учебных целей.
использованная литература
внешние ссылки
- Иды
- WinFBE - современный редактор FreeBASIC для Windows
- fbide.freebasic.net - Интегрированная среда разработки FBIDE для freeBASIC
- FBEdit (current) - редактор исходного кода FBEdit для FreeBASIC, версия 1.0.7.6c
- Редактор исходного кода FBEdit для freeBASIC (устаревшая версия: 1.0.6.8) на SourceForge
- WinFBE Suite
- VisualFBEditor