PureBasic - PureBasic
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
|
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 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_name
Map 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
- Hale Ligh, Michael (2010). Malware Analysts Narzędzia książki kucharskiej do zapobiegania złośliwym atakom . Indianapolis, IN: John Wiley & Sons Inc. 241. Numer ISBN 978-0-470-61303-0.
- Galbreath, Nick (2002). Kryptografia dla aplikacji internetowych i bazodanowych: rozwijanie technik tajnego i publicznego klucza w Javie . Indianapolis, Indiana: Wiley. s. 300 . Numer ISBN 978-0-471-21029-0.
- „Nauka łamania kodu” . Męski Codziennie . 25 czerwca 2004 r.
- Georges, Filip. "Programowanie z PureBasic" . Programmez (141).
- Swoboda, Lubosz (2012). Překvapivý PureBasic (Zaskakujący PureBasic: czeski ebook dla potencjalnych użytkowników PureBasic) . P. 89.
Linki zewnętrzne
- Artykuły
- PureBasic — idealny międzyplatformowy i natywny język programowania (2015)
- Mała recenzja PureBasic (2019)
- Biblioteki i archiwa Open Source Code