FreeBASIC: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м переименование категории согласно итогу обсуждения
 
(не показано 29 промежуточных версий 15 участников)
Строка 1: Строка 1:
{{Карточка языка программирования
{{Карточка языка программирования
|name = FreeBASIC
| =
|logo =
|semantics =
|paradigm = [[Мультипарадигменный язык программирования|мультипарадигмальный]]: [[императивное программирование|императивный]], [[процедурное программирование|процедурный]], [[структурное программирование|структурный]], [[Объектно-ориентированное программирование|объектно‐ориентированный]]
|paradigm = [[Мультипарадигменный язык программирования|мультипарадигмальный]]: [[императивное программирование|императивный]], [[процедурное программирование|процедурный]], [[структурное программирование|структурный]], [[Объектно-ориентированное программирование|объектно‐ориентированный]]
|class = [[компилятор|компилируемый]]
|class = [[компилятор|компилируемый]]
|year = [[2004]]
|designer = The FreeBASIC Development Team
|designer = The FreeBASIC Development Team
| developer = The FreeBASIC Development Team
|extension = .bas .bi
| последняя версия = 1.09.0 <ref name="multiple">{{Cite web |url=https://www.freebasic.net/forum/viewtopic.php?f=1&t=31376 |title=Version 1.09.0 Released |access-date=2022-01-01 |archive-date=2022-01-01 |archive-url=https://web.archive.org/web/20220101223522/https://www.freebasic.net/forum/viewtopic.php?f=1&t=31376 |deadlink=no }}</ref>
|latest_release_version = 1.05.0
({{start date and age|2022|01|01}})
|latest_release_date = [[31 января]] [[2016]] г.<ref>[http://www.freebasic.net/forum/viewtopic.php?f=1&t=24363#p215619 Version 1.05.0 released - freebasic.net<!-- Заголовок добавлен ботом -->]</ref>
|latest_preview_version =
|latest_preview_date =
|typing = строгая, статическая
|typing = строгая, статическая
|implementations =
| =
|influenced_by = [[QuickBASIC]] [[Си (язык программирования)|C]]
|dialects =
|license = [[GNU General Public License|GNU GPLv2+]], [[GNU Lesser General Public License|Стандартные библиотеки лицензированы по GNU LGPLv2+]]
|influenced_by = [[QuickBASIC]] [[Си (язык программирования)|C]]
| website = {{URL|https://www.freebasic.net/}}
|influenced =
|operating system = [[Linux]], [[Windows]], [[DOS]]
|license =
|website =
|operating system = [[Linux]], [[Windows]], [[DOS]]
}}
}}
{{Карточка программы | название = FreeBASIC Compiler | разработчики = The FreeBASIC Development Team}}
{{Карточка программы | название = FreeBASIC Compiler | разработчики = The FreeBASIC Development Team}}
'''FreeBASIC''' — [[язык программирования]] высокого уровня по синтаксису наиболее близкий к [[QuickBASIC]], а также компилятор для него (FreeBASIC Compiler). Первоначально компилятор разрабатывался как [[Свободное программное обеспечение|свободная]] альтернатива Microsoft QuickBasic, но скоро обзавёлся новыми возможностями, превратившись в мощное средство разработки. Хотя первые версии компилятора были написаны на [[Visual Basic]], теперь он может откомпилировать сам себя<ref name="spaces.ru_1"></ref>.
'''FreeBASIC''' — [[язык программирования]] высокого уровня по синтаксису наиболее близкий к [[QuickBASIC]], а также компилятор для него (FreeBASIC Compiler). Первоначально компилятор разрабатывался как [[Свободное программное обеспечение|свободная]] альтернатива Microsoft QuickBasic, но скоро обзавёлся новыми возможностями, превратившись в мощное средство разработки. Хотя первые версии компилятора были написаны на [[Visual Basic]], теперь он может откомпилировать сам себя.


== Компилятор ==
== Компилятор ==
Строка 36: Строка 29:
Несмотря на то, что компилятор имеет совместимость с QuickBASIC, в язык FreeBASIC были добавлено множество расширений и возможностей для соответствия современным требованиям, стандартам и совместимостью с [[библиотека (программирование)|библиотеками]] и [[Интерфейс программирования приложений|API]] написанными на C/[[C++]]. Начиная с версии 0.17 пользователь может выбрать три режима компиляции (опция -lang): режим совместимости с QuickBASIC (qb), старыми версиями FreeBASIC (deprecated), и стандартный режим, включающий в себя все последние изменения и возможности.
Несмотря на то, что компилятор имеет совместимость с QuickBASIC, в язык FreeBASIC были добавлено множество расширений и возможностей для соответствия современным требованиям, стандартам и совместимостью с [[библиотека (программирование)|библиотеками]] и [[Интерфейс программирования приложений|API]] написанными на C/[[C++]]. Начиная с версии 0.17 пользователь может выбрать три режима компиляции (опция -lang): режим совместимости с QuickBASIC (qb), старыми версиями FreeBASIC (deprecated), и стандартный режим, включающий в себя все последние изменения и возможности.


=== Новые возможности и расширения<ref name="freebasic.net_1"></ref> ===
=== Новые возможности и расширения<ref name="freebasic.net_1"/> ===
* Поддержка [[Юникод]]а.
* Поддержка [[Юникод]]а.
* Множество встроенных типов [[Переменная (программирование)|переменных]] (Byte, UByte, Short, UShort, Integer, UInteger, LongInt, ULongInt, Single, Double, Boolean, String, ZString, WString).
* Множество встроенных типов [[Переменная (программирование)|переменных]] (Byte, UByte, Short, UShort, Integer, UInteger, LongInt, ULongInt, Single, Double, Boolean, String, ZString, WString).
Строка 57: Строка 50:
* Автоматизация [[Internet Explorer|IE]] и [[Microsoft Office]]: Disphelper
* Автоматизация [[Internet Explorer|IE]] и [[Microsoft Office]]: Disphelper
* Звук: [[BASS]], fbsound, FMOD и др.
* Звук: [[BASS]], fbsound, FMOD и др.
* Графика: [[Cairo|Сairo]], [[FreeType]], [[:en:Allegro_(software)|Allegro]], [[DevIL]], FreeImage, DISLIN и др.
* Графика: [[Cairo|Сairo]], [[FreeType]], [[()|Allegro]], [[DevIL]], FreeImage, DISLIN и др.
* Создание PDF: CD, LibHaru
* Создание PDF: CD, LibHaru
* Базы данных: [[MySQL|mysql]], [[SQLite|sqlite]], [[PostgreSQL|postgresql]]
* Базы данных: [[MySQL|mysql]], [[SQLite|sqlite]], [[PostgreSQL|postgresql]]
* Сеть: [[CURL|Curl]] и др.
* Сеть: [[CURL|Curl]] и др.
Строка 64: Строка 57:


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

==== Hello, World! ====
==== Hello, World! ====
Используя встроенную библиотеку FreeBASIC:
Используя встроенную библиотеку FreeBASIC:
Строка 161: Строка 155:
== Примечания ==
== Примечания ==
{{примечания|1|refs=
{{примечания|1|refs=
<ref name="freebasic.net_1">{{cite web |url=http://freebasic.net/about |title=More about FreeBASIC |publisher=freebasic.net |author=
<ref name="freebasic.net_1">{{cite web |url=http://freebasic.net/about |title=More about FreeBASIC |publisher=freebasic.net |author=

|date= |description=FreeBASIC - ещё больше нужных функций |lang=en |accessdate=2015-10-14}}</ref>
<ref name="spaces.ru_1">{{cite web |url=http://spaces.ru/forums/?com_cat_id=115370&id=11928525&link_id=1498806&sid=6687538668213364&tp=1 |title=Объектные диалекты языка Бейсик |publisher=spaces.ru |author=Артем aka Kryeker |date=2012-08-19 |description=Сравнение языков ОП |lang=ru |accessdate=2015-10-14}}</ref>
}}
}}

== См. также ==
* [[QB64]]


== Источники ==
== Источники ==
* [http://sourceforge.net/project/showfiles.php?group_id=122342&package_id=159165&release_id=368628 FreeBASIC Manual] {{ref-en}}
* [http://sourceforge.net/project/showfiles.php?group_id=122342&package_id=159165&release_id=368628 FreeBASIC Manual]{{ref-en}}


== Ссылки ==
== Ссылки ==
* {{Sourceforge|fbc}} {{ref-en}}
* {{Sourceforge|fbc}}{{ref-en}}
* [http://free-basic.ru Русскоязычный сайт]
* [http://-. Русскоязычный сайт]
* [http://freebasic.justforum.net/forum Русскоязычный форум]
* [http://freebasic../ Русскоязычный форум]
* [http://fbasic.tk Сайт «FreeBASIC в России»]


;IDE
* [http://fbide.freebasic.net FBIde] — IDE для FreeBASIC
* [http://fbide.freebasic.net FBIde] — IDE для FreeBASIC
* [https://fbedit.svn.sourceforge.net/svnroot/fbedit/Release/FbEdit.zip FbEdit] — ещё одна IDE для FreeBASIC
* [https://fbedit.svn.sourceforge.net/svnroot/fbedit/Release/FbEdit.zip FbEdit] — ещё одна IDE для FreeBASIC
* [https://github.com/PaulSquires/WinFBE WinFBE] - Современный FreeBASIC IDE для Windows


{{Диалекты языка программирования Basic}}
{{Диалекты языка программирования Basic}}
Строка 183: Строка 180:
[[Категория:Бейсик]]
[[Категория:Бейсик]]
[[Категория:Компиляторы]]
[[Категория:Компиляторы]]
[[Категория:Статьи с примерами кода бейсик]]
[[Категория:Статьи с примерами кода ]]
[[Категория:Свободные компиляторы и интерпретаторы]]
[[Категория:Свободные компиляторы и интерпретаторы]]

Текущая версия от 04:56, 17 июля 2024

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

1.09.0 [1]

(1 января 2022; 2 года назад (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
Лицензия 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]

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

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

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

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

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

Используя встроенную библиотеку 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. 1 2 Version 1.09.0 Released. Дата обращения: 1 января 2022. Архивировано 1 января 2022 года.
  2. 1 2 https://www.freebasic.net/wiki/ProPgSourceFiles
  3. 1 2 https://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