PureBasic - PureBasic

PureBasic
PureBasic IDE 5.10.png
PureBasic VD.png
Paradygmat uporządkowany , imperatyw , proceduralny
Rodzina PODSTAWOWY
Zaprojektowany przez Oprogramowanie Fantazja
Deweloper Oprogramowanie Fantazja
Po raz pierwszy pojawiły się 1998 (AmigaOS)
2000 (Windows)
Wersja stabilna
5,73 LTS / 23 listopada 2020 ; 8 miesięcy temu ( 23.11.2020 )
OS wieloplatformowy : Microsoft Windows , Linux , macOS (aktywny)
AmigaOS (wycofany, open source )
Licencja Reklama w telewizji
Rozszerzenia nazw plików .pb, .pbi, .pbf, .pbp, .pbv
Stronie internetowej www .purebasic .com

PureBasic to komercyjnie dystrybuowany proceduralny język programowania komputerów i zintegrowane środowisko programistyczne oparte na języku BASIC i opracowane przez Fantaisie Software dla systemów Windows 32/64-bit, Linux 32/64-bit i macOS . Dostępna jest wersja dla Amigi , chociaż została wycofana, a niektóre jej części są udostępniane jako open source . Pierwsze publiczne wydanie PureBasic dla Windows miało miejsce 17 grudnia 2000 roku. Od tego czasu jest on stale aktualizowany.

PureBasic ma „dożywotni model licencji”. Jak zacytowano na stronie, pierwszy użytkownik PureBasic (zarejestrowany w 1998 roku) nadal ma bezpłatny dostęp do nowych aktualizacji i to się nie zmieni.

PureBasic kompiluje się bezpośrednio do zestawów instrukcji x86 , x86-64 , PowerPC lub 680x0 , generując małe samodzielne pliki wykonywalne i DLL, które nie wymagają bibliotek wykonawczych poza standardowymi bibliotekami systemowymi. Programy opracowane bez użycia specyficznych dla platformy interfejsów programowania aplikacji (API) można łatwo zbudować z tego samego pliku źródłowego z niewielką modyfikacją lub bez niej.

PureBasic obsługuje asembler inline , pozwalając programiście na uwzględnienie poleceń asemblera FASM w kodzie źródłowym PureBasic, przy jednoczesnym korzystaniu ze zmiennych zadeklarowanych w kodzie źródłowym PureBasic, umożliwiając doświadczonym programistom poprawę szybkości fragmentów kodu o krytycznym znaczeniu. PureBasic obsługuje i zintegrował środowisko OGRE 3D. Inne środowiska 3D, takie jak Irrlicht Engine, są nieoficjalnie obsługiwane.

Język programowania

Charakterystyka

PureBasic jest natywnym 32-bitowym i 64-bitowym kompilatorem BASIC dla wielu platform. Obecnie obsługiwane systemy to Windows, Linux, macOS. Wersja AmigaOS jest przestarzała i open-source. Kompilator tworzy natywne pliki wykonywalne, a składnia PureBasic jest prosta i prosta, porównywalna do zwykłego C bez nawiasów iz natywną obsługą ciągów Unicode i dużą biblioteką wbudowanych funkcji pomocniczych. Może kompilować aplikacje konsolowe, aplikacje GUI i pliki DLL.

Przykład Witaj świecie

Poniższy pojedynczy wiersz kodu PureBasic utworzy samodzielny plik wykonywalny x86 (4,5 KiB (4608 bajtów) w wersji Windows), który wyświetla okno komunikatu z tekstem „ Hello World ”.

 MessageRequester("Message Box", "Hello World")

Poniższy wariant tego samego kodu, który zamiast tego używa wbudowanego wywołania Windows API bez potrzeby deklaracji lub innych zewnętrznych odwołań, utworzy jeszcze mniejszy, 2,0 KiB (2048 bajtów) samodzielny plik wykonywalny x86 dla systemu Windows.

 MessageBox_(0, "Hello World", "Message Box", 0)

Poniżej znajduje się konsolowa wersja przykładu Hello World.

 OpenConsole()          ; Open a console window. 
 Print("Hello, World!")

Programowanie proceduralne

PureBasic to język BASIC drugiej generacji, z ustrukturyzowanymi warunkami i pętlami oraz obsługiwanym programowaniem zorientowanym na procedury. Użytkownik nie musi korzystać z procedur, więc programista może wybrać styl kodowania, który obejmuje Goto, Gosub Label i Return .

Poniżej znajduje się przykładowa procedura sortowania tablicy, chociaż SortArray jest teraz wbudowaną funkcją PureBasic.

 Procedure bubbleSort(Array a(1))
   Protected i, itemCount, hasChanged
  
   itemCount = ArraySize(a())
   Repeat
     hasChanged = #False
     itemCount - 1
     For i = 0 To itemCount
       If a(i) > a(i + 1)
         Swap a(i), a(i + 1)
         hasChanged = #True
       EndIf 
     Next  
   Until hasChanged = #False
 EndProcedure

Poniżej znajduje się przykładowy program, który wyświetla pokaźny edytor tekstu z dwoma pozycjami menu.

;Create Window:
OpenWindow(0, #PB_Ignore, #PB_Ignore, 800, 600, "Simple Text Editor", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget)

;Add 2 menus:
CreateMenu(0, WindowID(0))
MenuItem(1, "&OK")
MenuItem(2, "&Cancel")

;Add Editor:
EditorGadget(0, 0, 0, 0, 0)
SetGadgetFont(0, LoadFont(0, "Courier New", 10))

;Process window messages until closed:
Repeat
    Select WaitWindowEvent()
    Case #PB_Event_Menu
        Select EventMenu()
        Case 1: MessageRequester("OK clicked directly or with '&' mnemonic.", GetGadgetText(0))
        Case 2: Break
        EndSelect
    Case #PB_Event_SizeWindow: ResizeGadget(0, 0, 0, WindowWidth(0, #PB_Window_InnerCoordinate), WindowHeight(0, #PB_Window_InnerCoordinate))
    Case #PB_Event_CloseWindow: Break
    EndSelect
ForEver

Zauważ, że PureBasic nie wymyka podwójnych cudzysłowów w łańcuchach, więc muszą one być połączone z Chr(34) .

Programowanie obiektowe

Fred, twórca PureBasic, stwierdził, że PureBasic nigdy nie będzie zorientowany obiektowo . Jednak wielu użytkowników stworzyło systemy wsparcia zorientowane obiektowo.

Typy danych

Zmienny typ danych określony przy pierwszym użyciu (i opcjonalnie w przyszłości) i jest oddzielony od nazwy punktu. Istnieje zbiór podstawowych typów - .f, .d (liczby zmiennoprzecinkowe i podwójne), .b, .c, .w, .l, .q (liczby całkowite - od jednobajtowych i 8-bajtowych), .s - smyczki.

Rodzaj Przyrostek Zużycie pamięci Zakres liczbowy
Bajt b 1 bajt (8 bitów) -128 ... +127
Asci a 1 bajt (8 bitów) 0 ... +255
Postać C 1 bajt (8 bitów) (ascii) 0 ... +255
Słowo w 2 bajty (16 bitów) −32768 ... +32767
Unicode ty 2 bajty (16 bitów) 0...+65535
Postać C 2 bajty (16 bitów) (unicode) 0...+65535
Długo ja 4 bajty (32 bity) -2147483648...+2147483647
Liczba całkowita i 4 bajty (32 bity) x86 -2147483648...+2147483647
Platforma F 4 bajty (32 bity) W zależności od stosunku liczby dziesiętnej.
Liczba całkowita i 8 bajtów (64 bity) x64 −9223372036854775808... +9223372036854775807
Kwadrat Q 8 bajtów (64 bity) −9223372036854775808... +9223372036854775807
Podwójnie D 8 bajtów (64 bity) W zależności od stosunku liczby dziesiętnej.
Strunowy s (Długość sznurka + 1) * SizeOf (znak) Bez limitu.
Naprawiono ciąg s{długość } (Długość ciągu) * Rozmiar (znak) Bez limitu.
  • Uwaga: Len(String) używany do zliczania długości ciągu nie przekroczy pierwszego znaku null ( Chr(0) ).

Oprócz podstawowych typów, użytkownik może zdefiniować rodzaj konstrukcji poprzez:

Structure type_name
   field_name.type ; Single field. Perhaps the structures attachment.
   field_name[count].type ; Static arrays.
   ; ... 
   ; Optional construction StructureUnion .. EndStructureUnion allows you
   ; to combine multiple fields into one area of memory
   ; that is sometimes required for the conversion types.
   StructureUnion
      type_name.type
      ; ... 
   EndStructureUnion 
EndStructure

Zmienne mogą być pojedyncze (faktycznie, zmiennych standardowych), dynamiczna tablica (zadeklarowanego przy użyciu , a połączonej listy ( ), to asocjacyjną (w nowych wersjach językowych) ( ) Dim var_name.type_name (size1, size2, ... )List() var_name.type_nameMap var_name.type_name()

Projektant formularzy RAD

PureBasic ma własnego projektanta formularzy , który pomaga w tworzeniu formularzy dla aplikacji, ale dostępne są również rozwiązania innych firm. Oryginalny niezintegrowany projektant wizualny został zastąpiony nowym zintegrowanym projektantem formularzy 14 lutego 2013 r.

Społeczność użytkowników

PureBasic zapewnia forum internetowe, na którym użytkownicy mogą zadawać pytania i dzielić się wiedzą. W dniu 6 maja 2013 r. forum anglojęzyczne miało 4769 członków i zawierało 44 043 wątki zawierające 372 200 postów od 17 maja 2002 r.

Liczne witryny do udostępniania kodu pokazują, że PureBasic jest używany do tworzenia narzędzi i gier w szybki i łatwy sposób oraz do udostępniania dużych ilości kodu typu open source.

Dalsza lektura

  • Willoughby, Gary (2006). Purebasic: Przewodnik dla początkujących po programowaniu komputerowym . Numer ISBN 1-4276-0428-2.
  • Logsdon, John. Programowanie gier z przewijaniem 2D .Tę książkę można teraz bezpłatnie pobrać
  • Podstawowe kompilatory: QuickBASIC, PureBasic, PowerBASIC, Blitz Basic, XBasic, Turbo Basic, Visual Basic, FutureBASIC, REALbasic, FreeBASIC . Numer ISBN 1-155-32445-5.

Bibliografia

Ogólne odniesienia General

Linki zewnętrzne

Artykuły
Biblioteki i archiwa Open Source Code