WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
FreeBASIC
Класс языка мультипарадигмальный: императивный, процедурный, структурный, объектно‐ориентированный
Тип исполнения компилируемый
Появился в 2004
Автор The FreeBASIC Development Team
Разработчик The FreeBASIC Development Team
Расширение файлов .bas .bi
Выпуск 1.05.0 (31 января 2016 г.[1])
Система типов строгая, статическая
Диалекты fb
Испытал влияние QuickBASIC, C
Лицензия GNU GPLv2+, Стандартные библиотеки лицензированы по GNU LGPLv2+
Платформа x86 и x86-64
ОС Linux, Windows, DOS, FreeBSD, MacOS (не полностью)
Сайт freebasic.net
FreeBASIC Compiler
Тип компилятор, язык программирования и объектно-ориентированный язык программирования
Разработчики The FreeBASIC Development Team
Написана на Бейсик
Операционная система Microsoft Windows, Linux и DOS
Первый выпуск 2004
Аппаратная платформа x86 и x86-64
Последняя версия
Лицензия GNU GPL
Сайт freebasic.net
freebasic.net
 FreeBASIC Compiler на Викискладе

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

Компилятор

Компилирует 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)

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

' Класс вектора
Type Vector
	W As Integer
	H As Integer
	Declare Constructor(nW As Integer, nH As Integer)
End Type
 
Constructor Vector(nW As Integer, nH As Integer)
	W = nW
	H = nH
End Constructor
 
' Класс для создания объекта
Type AObject
	Private:
		X As Integer
		Y As Integer
		Movement As Vector Pointer
	Public:
		' Видимые извне методы, включая конструктор и деструктор
		Declare Constructor(nX As Integer, nY As Integer)
		Declare Destructor()
		Declare Sub SetMotion (Motion As Vector Pointer)
		Declare Sub Move()
		Declare Property GetX As Integer
End Type
 
' Установка значений по умолчанию
Constructor AObject(nX As Integer, nY As Integer)
	X = nX
	Y = nY
End Constructor
 
' Освобождение памяти
Destructor AObject()
	Delete Movement
End Destructor
 
' Установка вектора
Sub AObject.SetMotion(Motion As Vector Pointer)
	Movement = Motion
End Sub
 
' Перемещает объект по его вектору
Sub AObject.Move()
	X += Movement->W
	Y += Movement->H
End Sub
 
' Возвращает координату X, недоступную извне
Property AObject.GetX As Integer
	Return X
End Property
 
' Фактическое начало программы 
 
' Создание экземпляра класса с координатами (100, 100)
Dim Player As AObject = Type<AObject>(100, 100)
 
' Создание вектора с начальными значениями (-10, 5) и перемещение позиции объекта
Player.SetMotion(New Vector(-10, 5))
 
' Перемещение объекта
Player.Move()
 
' Получаем координату X и выводим на консоль
Print Player.GetX
 
' Деструктор объекта «Player» вызывается тогда, когда объект покидает зону видимости
' Так как «Player» является локальной переменной, деструктор вызывается автоматически

'Ожидаем нажатия любой клавиши
Sleep

Примечания

  1. Version 1.05.0 released - freebasic.net
  2. Release 1.05.0 — 2016.
  3. Артем aka Kryeker. Объектные диалекты языка Бейсик. spaces.ru (19 августа 2012). — Сравнение языков ОП. Проверено 14 октября 2015.
  4. More about FreeBASIC (англ.) (недоступная ссылка). freebasic.net. — FreeBASIC - ещё больше нужных функций. Проверено 14 октября 2015. Архивировано 24 октября 2015 года.

См. также

Источники

Ссылки

IDE
  • FBIde — IDE для FreeBASIC
  • FbEdit (недоступная ссылка) — ещё одна IDE для FreeBASIC
  • WinFBE - Современный FreeBASIC IDE для Windows

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии