FreeBASIC

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

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, можно повторно использовать в большинстве собственных сред разработки.

Хотя FreeBASIC не является оптимизирующим компилятором , он может опционально транскомпилировать в 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 теперь поддерживает следующие диалекты:

  • Диалект по умолчанию ( -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

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

Ссылки [ править ]

  1. ^ «О странице freeBASIC» . компилятор freeBASIC . Проверено 5 февраля 2012 г.
  2. ^ FBWiki: FaqPgxbox
  3. ^ Язык программирования freeBASIC: Официальный веб-сайт
  4. ^ «Страница загрузок официального сайта freeBASIC» . компилятор freeBASIC . Проверено 13 мая 2017 г.
  5. ^ FbEdit на sourceforge, получено 13 мая 2017 г.
  6. ^ Спид, Ричард (06 мая 2022 г.). «RAD Basic — Visual Basic 7, которого никогда не было — выпускает третью альфа-версию» . Регистр . Проверено 26 марта 2023 г. RAD Basic — не единственная игра в городе. Альтернативы на разных стадиях разработки включают TwinBASIC, который также стремится обеспечить обратную совместимость с VB6 и VBA; и FreeBASIC, который реализует многое из того, что было в Microsoft QuickBASIC (и имеет изящную IDE в виде VisualFBEditor).
  7. ^ IDE/редакторы FreeBASIC - Форумы FreeBASIC
  8. ^ «диалекты freeBASIC» . Домашняя страница coderJeff . Проверено 5 февраля 2012 г.
  9. ^ «Отличия от QB» . Документация freeBASIC.net . Проверено 5 февраля 2012 г.

Внешние ссылки [ править ]

Иды