FreeBASIC — Sintaksisi boʻyicha QuickBASICga eng yaqin boʻlgan yuqori darajadagi dasturlash tili, shuningdek uning uchun kompilyator (FreeBASIC Compiler). Boshida kompilyator Microsoft QuickBasicning erkin alternativasi sifatida yaratilayotgan edi, lekin tez fursatda yangi imkoniyatlarga ega boʻldi va kuchli dasturlash vositasiga aylandi. Garchi birinchi versiyalari Visual Basicda yozilgan boʻlsada, endi u oʻzini oʻzi kompilyatsiya qila oladi.

FreeBASIC
Fblogo.gif
MuallifThe FreeBASIC Development Team
Ishlab chiqaruvchiThe FreeBASIC Development Team
tashkil topdi:2004
Eng so‘nggi versiyasi1.07.1 1.07.1[1]К:Википедия:Статьи с источниками из Викиданных
Format(lar)i.bas .bi

KompilyatorTahrirlash

QBasic va FreeBASIC kodni 32 va 64-bit Win32, DOS (himoyalangan rejimda) va Linux x86 modullariga kompilyatsiya qiladi.

Assemblerlash va tarkiblash GNU Binutils yordamida amalga oshiriladi.

Kompilyator GNU GPL shartlari tarqatiladi, standart biblioteka esa — GNU LGPLda.

Bir nechta dasturlash muhiti mavjud, tuzatgich sifatida GNU Debuggerni ishlatish mumkin (shuningdek gprof ham qoʻllaniladi).

TilTahrirlash

Kompilyator QuickBasic bilan mos kelishiga qaramasdan, zamonaviy talablarga, standartlarga mos kelishi uchun hamda C/C++da yozilgan biblioteka va APIga mos kelishi uchun FreeBASIC tiliga koʻp kengaytma va imkoniyatlar qoʻshilgan. 0.17 versiyasida boshlab foydalanuvchi kompilyatsiya qilishning uchta tartibdan birini tanlashi mumkin (-lang sozlanmasi): QuickBASIC (qb) bilan, FreeBASICning eski versiyalari bilan (deprecated) moslik tartibi va barcha oxirgi oʻzgarishlar va imkoniyatlarni oʻz ichiga oluvchi standart tartib (fb).

Yangi imkoniyatlar va kengaytmalar[2]Tahrirlash

  • Yunikodni qoʻllanilishi.
  • Oʻzgaruvchilarning koʻpchilik oʻrnatilgan turlari (Byte, UByte, Short, UShort, Integer, UInteger, LongInt, ULongInt, Single, Double, Boolean, String, ZString, WString).
  • Foydalanuvchi tomonidan aniqlanadigan maʼlumotlar turi (cheksiz solinish, Union, maydon turi (array, function, bit fields)).
  • Nomfazolar.
  • Sanaladigan tur (Enum).
  • Massivlar bilan ishlashda yangi imkoniyatlar (2 GB oʻlchamgacha, Redim Preserve).
  • Koʻrsatkichlar (ixtiyoriy maʼlumotlar turiga koʻrsatkichlar, cheksiz bilvosita murojaat qilish).
  • Funksiya va operatorlarni qayta yuklash.
  • Funksiyalarning majburiy boʻlmagan argumentlari.
  • Oʻrnatilgan assembler (dastur manba kodida assembler instruksiyalari).
  • Preprotsessorlar.
  • Typedefs.
  • Sinflarning konstruktor va destruktorlari.
  • Kengaytirilgan grafik bibliotekasi.

Amaliy dasturlash funksiyalari bibliotekalarini qoʻllab-quvvatlashiTahrirlash

Dasturlar misollariTahrirlash

Hello, World!Tahrirlash

FreeBASICning oʻrnatilgan bibliotekasini ishlatgan holda:

Print "Hello, World!"

C standart bibliotekasini ishlatgan holda:

#Include "crt.bi"

puts(!"Hello, World!\n")

Windows APIni ishlatgan holda:

#Include "windows.bi"

MessageBox(Null, "Hello, World!", "Message", MB_OK)

Obyektga moʻljallangan dasturlashTahrirlash

' Vektor sinfi
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
 
' Obyekt yaratish uchun sinf
Type AObject
	Private:
		X As Integer
		Y As Integer
		Movement As Vector Pointer
	Public:
		' Tashqarida koʻrinadigan metodlar, konstruktor va destruktor bilan birga
		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
 
' Boshlangʻich qiymatlarni oʻrnatish
Constructor AObject(nX As Integer, nY As Integer)
	X = nX
	Y = nY
End Constructor
 
' Xotirani boʻshatish
Destructor AObject()
	Delete Movement
End Destructor
 
' Vektorni oʻrnatish
Sub AObject.SetMotion(Motion As Vector Pointer)
	Movement = Motion
End Sub
 
' Obyektni vektor boʻyicha koʻchirish
Sub AObject.Move()
	X += Movement->W
	Y += Movement->H
End Sub
 
' Tashqaridan ruxsat berilmagan X koordinatasini qaytaradi
Property AObject.GetX As Integer
	Return X
End Property
 
' Dasturning haqiqiy boshlanish joyi 
 
' Sinf nusxasini koordinatalar (100, 100) bilan yaratish
Dim Player As AObject = Type<AObject>(100, 100)
 
' Vektorni boshlangʻich qiymatlar bilan yaratish (-10, 5) va obyekt oʻrnini koʻchirish
Player.SetMotion(New Vector(-10, 5))
 
' Obyektni koʻchirish
Player.Move()
 
' X koordinatasini olamiz va konsolga chiqaramiz
Print Player.GetX
 
' «Player» obyekti destruktori, qachonki obyekt koʻrinish zonasini tark etganda chaqiriladi
' «Player» mahalliy oʻzgaruvchi boʻlganligi uchun destruktor avtomatik chaqiriladi

'Ixtiyoriy tugmacha bosilishini kutamiz
Sleep

IzohTahrirlash

  1. (unspecified title)
  2. More about FreeBASIC. freebasic.net. Asl nusxadan arxivlandi (2015-10-24). 2015-10-14.

Shuningdek qarangTahrirlash

ManbalarTahrirlash

HavolalarTahrirlash

IDE
  • FBIde — FreeBASIC uchun IDE
  • FbEdit — FreeBasic uchun yana bir IDE
  • WinFBE - Windows uchun zamonaviy FreeBASIC IDE

Andoza:Dasturlash tillari