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.

Распечатать   «Привет, мир!» 

  Sleep:  end   'Комментарий, предотвращает мгновенное закрытие окна программы 

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

Тип   Vector 
     Private  : 
         x   As   Integer 
         y   As   Integer 
     Public  : 
         Объявить   конструктор   (  nX   As   Integer   =   0  ,   nY   As   Integer   =   0  ) 
         Объявить   свойство   getX   как   целое число 
         Объявить   свойство   getY   As   Integer 
 End   Type 

 Constructor   Vector   (  nX   As   Integer  ,   nY   As   Integer  ) 
     x   =   nX 
     y   =   nY 
 конечного   конструктора 

 свойств   Вектор  .   getX   As   Integer 
     Return   x 
 End   Property 

 Property   Vector  .   getY   как   целое число 
     возвращающее   , 
 End .   свойство 
Dim   As   Vector   Ptr   player   =   New   Vector  () 

 *  player   =   Type  <  Vector  >  (  100  ,   100  ) 
 Печать   player  ->  getX 
 Печать   player  ->  getY 

 Удалить   player 

 Sleep   'Предотвращает мгновенное закрытие окна программы 

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

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

  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 г.

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

Иды