FreeBASIC

БАЗОВЫЙ диалект
FreeBASIC
ПарадигмаПроцедурный , объектно-ориентированный
РазработаноАндре Виктор [1]
РазработчикКоманда разработчиков FreeBASIC
Впервые появился2004 ; 20 лет назад ( 2004 )
Стабильный релиз
1.10.1 / 25 декабря 2023 г. ; 10 месяцев назад ( 2023-12-25 )
Дисциплина набора текстаСтатичный
ОСMS-DOS , FreeBSD , Linux , Microsoft Windows
ЛицензияGNU GPLv2+ , Стандартные библиотеки, лицензированные по GNU LGPLv2+
Веб-сайтwww.freebasic.net
Под влиянием
QuickBASIC , C

FreeBASIC — это бесплатный и открытый исходный код многоплатформенного компилятора и языка программирования на основе BASIC, лицензированного по GNU GPL для Microsoft Windows , защищенного режима MS-DOS ( DOS extender ), Linux , FreeBSD и Xbox . Версия для Xbox больше не поддерживается. [2]

Согласно его официальному сайту, [3] FreeBASIC обеспечивает совместимость синтаксиса с программами, изначально написанными на Microsoft QuickBASIC (QB). Однако, в отличие от QuickBASIC, FreeBASIC является компилятором только для командной строки , если пользователи вручную не установят внешнюю интегрированную среду разработки (IDE) по своему выбору. [4]

Возможности компилятора

На своем бэкэнде FreeBASIC использует GNU Binutils для создания консольных и графических приложений пользовательского интерфейса . FreeBASIC поддерживает связывание и создание статических и динамических библиотек C и имеет ограниченную поддержку библиотек C++ . В результате код, скомпилированный в FreeBASIC, может быть повторно использован в большинстве собственных сред разработки.

Хотя FreeBASIC не является оптимизирующим компилятором , он может опционально транскомпилировать в C для компиляции с оптимизацией. FreeBASIC поддерживает встроенный ассемблер , многопоточность и не использует автоматическую сборку мусора .

Поддерживается предварительная обработка в стиле C , включая многострочные макросы , условную компиляцию и включение файлов. Препроцессор также имеет доступ к символьной информации и настройкам компилятора, таким как диалект языка .

Синтаксис

Изначально FreeBASIC эмулировал синтаксис Microsoft QuickBASIC настолько близко, насколько это было возможно. За пределами этого язык продолжал свою эволюцию. В результате FreeBASIC объединяет несколько языковых диалектов для максимального уровня совместимости с QuickBASIC и полного доступа к современным функциям. [5] Новые функции включают поддержку таких концепций, как объекты , перегрузка операторов , перегрузка функций , пространства имен и другие. [6]

Символы новой строки указывают на завершение операторов программирования. Оператор программирования может быть распределен по нескольким последовательным строкам с помощью символа продолжения строки подчеркивания (_), тогда как несколько операторов могут быть записаны на одной строке, если каждый оператор разделять двоеточием ( :).

Поддерживаются блочные комментарии , а также замечания в конце строки. Полные комментарии в строке делаются с апострофом ' , в то время как блоки комментируемого кода начинаются с /'и заканчиваются на '/.

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.

Распечатать «Привет, мир!» sleep: end 'Комментарий, предотвращает мгновенное закрытие окна программы 

FreeBASIC дополняет это поддержкой объектно-ориентированных функций, таких как методы , конструкторы , динамическое выделение памяти , свойства и временное выделение.

Тип Vector  Private : x As Integer y As Integer Public : Объявить конструктор ( nX As Integer = 0 , nY As Integer = 0 ) Объявить свойство getX As Integer Объявить свойство getY As Integer Конец типа                               Конструктор Вектор ( nX как целое число , nY как целое число )        x = nX y = nY Конец конструктора       Вектор свойства . getX как целое число Возврат x Конец свойства      Вектор свойства . getY As Integer Возврат y Конец свойства      
Dim As Vector Ptr player = Новый вектор ()       * player = Тип < Вектор > ( 100 , 100 ) Плеер печати -> getX Плеер печати -> getY     Удалить игрока Sleep 'Предотвращает мгновенное закрытие окна программы. 

В обоих случаях язык хорошо подходит для целей обучения.

Ссылки

  1. ^ "страница о freeBASIC". Компилятор freeBASIC . Получено 5 февраля 2012 г.
  2. ^ FBWiki: FaqPgxbox
  3. ^ Язык программирования freeBASIC: Официальный веб-сайт
  4. ^ "страница загрузок официального сайта freeBASIC". Компилятор freeBASIC . Получено 13 мая 2017 г.
  5. ^ "freeBASIC dialects". Домашняя страница coderJeff . Получено 5 февраля 2012 г.
  6. ^ "Отличия от QB". Документация freeBASIC.net . Получено 5 февраля 2012 г.
Иды
  • WinFBE — современный редактор FreeBASIC для Windows
  • VisualFBEditor — кроссплатформенная графическая IDE
  • fbide.freebasic.net — Интегрированная среда разработки FBIDE для freeBASIC
  • FBEdit (текущий) — редактор исходного кода FBEdit для FreeBASIC, версия 1.0.7.6c
  • Редактор исходного кода FBEdit для freeBASIC (устаревшая версия: 1.0.6.8) на SourceForge
Взято с "https://en.wikipedia.org/w/index.php?title=FreeBASIC&oldid=1254432046"