FreeBASIC

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 7 октября 2017 года; проверки требует31 правка.
Перейти к навигацииПерейти к поиску
FreeBASIC
Изображение логотипа
Класс языкамультипарадигмальный:императивный,процедурный,структурный,объектно‐ориентированный
Тип исполнениякомпилируемый
Появился в2004
АвторThe FreeBASIC Development Team
РазработчикThe FreeBASIC Development Team
Расширение файлов.bas или.bi
Выпуск

1.09.0[1]

(1 января 2022; 3 года назад (2022-01-01))
Система типовстрогая, статическая
Диалектыfb
Испытал влияниеQuickBASIC,C
ЛицензияGNU GPLv2+,Стандартные библиотеки лицензированы по GNU LGPLv2+
Сайтfreebasic.net
ПлатформаX86, x86-64, ARMv7[вд] и AArch64[вд]
ОСLinux,Windows,DOS,FreeBSD,MacOS (не полностью)
Логотип Викисклада Медиафайлы на Викискладе
FreeBASIC Compiler
Логотип программы FreeBASIC Compiler
Скриншот программы FreeBASIC Compiler
Типкомпилятор, язык программирования и объектно-ориентированный
РазработчикThe FreeBASIC Development Team
Написана наБейсик
Операционные системыWindows, Linux, DOS и FreeBSD
Первый выпуск2004
Аппаратные платформыX86, x86-64, ARMv7[вд] и AArch64[вд]
Последняя версия1.08.1[1] (9 июля 2021; 3 года назад (2021-07-09))
Репозиторийgithub.com/freebasic/fbc
Читаемые форматы файлов:
FreeBASIC source code file[вд][2] и FreeBASIC Header File[вд][3]
Создаваемые форматы файлов:
FreeBASIC source code file[вд][2] и FreeBASIC Header File[вд][3]
ЛицензияGNU GPL
Сайтfreebasic.net
Логотип Викисклада Медиафайлы на Викискладе

FreeBASIC —язык программирования высокого уровня по синтаксису наиболее близкий кQuickBASIC, а также компилятор для него (FreeBASIC Compiler). Первоначально компилятор разрабатывался каксвободная альтернатива Microsoft QuickBasic, но скоро обзавёлся новыми возможностями, превратившись в мощное средство разработки. Хотя первые версии компилятора были написаны наVisual Basic, теперь он может откомпилировать сам себя.

Содержание

Компилятор

[править |править код]

Компилирует QBasic и FreeBASIC код в 32 и 64-битные исполняемыеWin32,DOSзащищённом режиме) иLinux x86 модули.

Ассемблирование икомпоновка производятся с помощьюGNU Binutils.

Компилятор распространяется на условияхGNU GPL, стандартнаябиблиотека — наGNU LGPL.

Имеется несколькосред разработки, в качестве отладчика можно использоватьGNU Debugger (также поддерживается gprof).

Язык

[править |править код]

Несмотря на то, что компилятор имеет совместимость с QuickBASIC, в язык FreeBASIC были добавлено множество расширений и возможностей для соответствия современным требованиям, стандартам и совместимостью сбиблиотеками иAPI написанными на C/C++. Начиная с версии 0.17 пользователь может выбрать три режима компиляции (опция -lang): режим совместимости с QuickBASIC (qb), старыми версиями FreeBASIC (deprecated), и стандартный режим, включающий в себя все последние изменения и возможности.

Новые возможности и расширения[4]

[править |править код]

Поддержка библиотек функций прикладного программирования

[править |править код]

Примеры программ

[править |править код]

Hello, World!

[править |править код]

Используя встроенную библиотеку FreeBASIC:

Print"Hello, World!"

Используя стандартную библиотеку C:

#Include"crt.bi"puts(!"Hello, World!\n")

ИспользуяWindows API:

#Include"windows.bi"MessageBox(Null,"Hello, World!","Message",MB_OK)

Объектно-ориентированное программирование

[править |править код]
' Класс вектораTypeVectorWAsIntegerHAsIntegerDeclareConstructor(nWAsInteger,nHAsInteger)EndTypeConstructorVector(nWAsInteger,nHAsInteger)W=nWH=nHEndConstructor' Класс для создания объектаTypeAObjectPrivate:XAsIntegerYAsIntegerMovementAsVectorPointerPublic:' Видимые извне методы, включая конструктор и деструкторDeclareConstructor(nXAsInteger,nYAsInteger)DeclareDestructor()DeclareSubSetMotion(MotionAsVectorPointer)DeclareSubMove()DeclarePropertyGetXAsIntegerEndType' Установка значений по умолчаниюConstructorAObject(nXAsInteger,nYAsInteger)X=nXY=nYEndConstructor' Освобождение памятиDestructorAObject()DeleteMovementEndDestructor' Установка вектораSubAObject.SetMotion(MotionAsVectorPointer)Movement=MotionEndSub' Перемещает объект по его векторуSubAObject.Move()X+=Movement->WY+=Movement->HEndSub' Возвращает координату X, недоступную извнеPropertyAObject.GetXAsIntegerReturnXEndProperty' Фактическое начало программы' Создание экземпляра класса с координатами (100, 100)DimPlayerAsAObject=Type<AObject>(100,100)' Создание вектора с начальными значениями (-10, 5) и перемещение позиции объектаPlayer.SetMotion(NewVector(-10,5))' Перемещение объектаPlayer.Move()' Получаем координату X и выводим на консольPrintPlayer.GetX' Деструктор объекта «Player» вызывается тогда, когда объект покидает зону видимости' Так как «Player» является локальной переменной, деструктор вызывается автоматически'Ожидаем нажатия любой клавишиSleep

Примечания

[править |править код]
  1. 12Version 1.09.0 Released  (неопр.). Дата обращения: 1 января 2022. Архивировано 1 января 2022 года.
  2. 12https://www.freebasic.net/wiki/ProPgSourceFiles
  3. 12https://www.freebasic.net/wiki/ProPgHeaderFiles
  4. More about FreeBASIC (англ.). freebasic.net. — FreeBASIC - ещё больше нужных функций. Дата обращения: 14 октября 2015. Архивировано изоригинала 24 октября 2015 года.

См. также

[править |править код]

Источники

[править |править код]

Ссылки

[править |править код]

IDE

  • FBIde — IDE для FreeBASIC
  • FbEdit (недоступная ссылка) — ещё одна IDE для FreeBASIC
  • WinFBE - Современный FreeBASIC IDE для Windows
Перейти к шаблону «Диалекты языка программирования Basic»
Диалекты языка программированияБейсик
Классические
Переходные
Процедурные
Объектные
Мобильные
Консольные
Перейти к шаблону «Языки программирования»
Источник —https://ru.wikipedia.org/w/index.php?title=FreeBASIC&oldid=140704250
Категории:
Скрытые категории: