Jump to content

FreeBASIC

(Перенаправлено с FreeBasic )
FreeBASIC
Парадигма Процедурный , объектно-ориентированный
Разработано Второй Виктор [1]
Разработчик Команда разработчиков FreeBASIC
Впервые появился 2004 г .; 20 лет назад ( 2004 )
Стабильная версия
1.10.1 / 25 декабря 2023 г .; 7 месяцев назад ( 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]

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

[ редактировать ]

В своей серверной части 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.

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. ^ «диалекты freeBASIC» . Домашняя страница coderJeff . Проверено 5 февраля 2012 г.
  6. ^ «Отличия от QB» . Документация freeBASIC.net . Проверено 5 февраля 2012 г.
[ редактировать ]
Иды
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 690674ea5b6399fe4dace0ec6c67fadb__1722542580
URL1:https://arc.ask3.ru/arc/aa/69/db/690674ea5b6399fe4dace0ec6c67fadb.html
Заголовок, (Title) документа по адресу, URL1:
FreeBASIC - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)