FreeBASIC
FreeBASIC | |
Muallif | The FreeBASIC Development Team |
---|---|
Ishlab chiquvchi | The FreeBASIC Development Team |
tashkil topdi: | 2004 |
So‘nggi versiyasi | 1.07.1 1.10.1[1] |
Format(lar)i | .bas .bi |
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.
Kompilyator
[tahrir | manbasini tahrirlash]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ʻllanadi).
Til
[tahrir | manbasini tahrirlash]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]
[tahrir | manbasini tahrirlash]- Yunikodni qoʻllanishi.
- 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-quvvatlashi
[tahrir | manbasini tahrirlash]- Interfeyslar yaratish: GTK, FLTK, IUP, WINAPI va b.
- Muntazam ifodalar: PCRE
- IE va Microsoft Office avtomatizatsiyasi: Disphelper
- Ovoz: BASS, fbsound, FMOD va b.
- Grafika: Сairo, FreeType, Allegro, DevIL, FreeImage, DISLIN va b.
- PDF yaratish: CD, LibHaru
- Maʼlumotlar bazasi: mysql, sqlite, postgresql
- Tarmoq: Curl va b.
- Arxivlar: Zlib, libzip va b.
Dasturlar misollari
[tahrir | manbasini tahrirlash]Hello, World!
[tahrir | manbasini 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 dasturlash
[tahrir | manbasini tahrirlash]' 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ʻlgani uchun destruktor avtomatik chaqiriladi
'Ixtiyoriy tugmacha bosilishini kutamiz
Sleep
Izoh
[tahrir | manbasini tahrirlash]- ↑ (unspecified title)
- ↑ „More about FreeBASIC“ (en) (deadlink). freebasic.net. — FreeBASIC - ещё больше нужных функций. 2015-yil 24-oktyabrda asl nusxadan arxivlangan. Qaraldi: 2015-yil 14-oktyabr. (Wayback Machine saytida 2015-10-24 sanasida arxivlangan)
Yana qarang
[tahrir | manbasini tahrirlash]Manbalar
[tahrir | manbasini tahrirlash]- FreeBASIC Manual(ingl.)
Havolalar
[tahrir | manbasini tahrirlash]- Andoza:Sourceforge(ingl.)
- Rus tilidagi sayt (Wayback Machine saytida 2020-05-04 sanasida arxivlangan)
- Rus tilidagi forum
- IDE
- FBIde — FreeBASIC uchun IDE
- FbEdit[sayt ishlamaydi] — FreeBasic uchun yana bir IDE
- WinFBE - Windows uchun zamonaviy FreeBASIC IDE
- VisualFBEditor — FreeBASIC uchun IDE