PureBasic
PureBasic is an actively used programming language created in 1998. PureBasic is a commercially distributed procedural computer programming language and integrated development environment based on BASIC and developed by Fantaisie Software for Windows 32/64-bit, Linux 32/64-bit, and macOS. An Amiga version is available, although it has been discontinued and some parts of it are released as open source. The first public release of PureBasic for Windows was on December 17, 2000. Read more on Wikipedia...
21Years Old | 25Users | 0Jobs |
- PureBasic ranks in the top 10% of languages
- the PureBasic website
- the PureBasic wikipedia page
- PureBasic first appeared in 1998
- file extensions for PureBasic include pb and pbi
- See also: basic, linux, x86-isa, powerpc, isbn
- I have 46 facts about PureBasic. what would you like to know? email me and let me know how I can help.
Example code from Linguist:
EnableExplicit ; ##################################################### Includes #################################################### XIncludeFile "Includes/AudioOut.pbi" ; ##################################################### Prototypes ################################################## ; ##################################################### Structures ################################################## ; ##################################################### Constants ################################################### #Samplerate = 44100 ; ##################################################### Structures ################################################## Structure Main *AudioOut Quit.i EndStructure Global Main.Main Structure Main_Window ID.i TrackBar.i [10] EndStructure Global Main_Window.Main_Window ; ##################################################### Variables ################################################### Global Frequency.d = 1000 Global Amplitude.d = 0.25 ; ##################################################### Procedures ################################################## Procedure Main_Window_Open() Main_Window\ID = OpenWindow(#PB_Any, 0, 0, 800, 100, "AudioOut Example", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered) If Main_Window\ID Main_Window\TrackBar[0] = TrackBarGadget(#PB_Any, 10, 10, 780, 30, 0, 20000) SetGadgetState(Main_Window\TrackBar[0], Frequency) Main_Window\TrackBar[1] = TrackBarGadget(#PB_Any, 10, 40, 780, 30, 0, 1000) SetGadgetState(Main_Window\TrackBar[1], Amplitude*1000) EndIf EndProcedure Procedure Notifier_CallBack(*AudioOut) Protected *Temp, Temp_Size.i Static Rotation.d While AudioOut::GetQueuedBlocks(*AudioOut) <= 3 Temp_Size = AudioOut::GetBufferBlocksize(*AudioOut) If Temp_Size > 0 *Temp = AllocateMemory(Temp_Size) Define Left.d, Right.d, i For i = 0 To Temp_Size / 4 - 1 Left = Sin(Rotation) * Amplitude Right = Sin(Rotation) * Amplitude PokeW(*Temp + i*4 , Left*32767) PokeW(*Temp + i*4 + 2, Right*32767) Rotation + 2.0*#PI / #Samplerate * Frequency Next AudioOut::Write_Data(Main\AudioOut, *Temp, Temp_Size) FreeMemory(*Temp) EndIf Wend EndProcedure ; ##################################################### Initialisation ############################################## Main_Window_Open() AudioOut::GetDevices() ForEach AudioOut::Device() Debug PeekS(AudioOut::@Device()\szPname) Next Main\AudioOut = AudioOut::Initialize(#WAVE_MAPPER, #Samplerate, 2, 16, @Notifier_CallBack()) If Not Main\AudioOut Debug AudioOut::GetError() End EndIf Notifier_CallBack(Main\AudioOut) ; ##################################################### Main ######################################################## Repeat Repeat Select WaitWindowEvent(100) Case #PB_Event_Gadget Select EventGadget() Case Main_Window\TrackBar[0] Frequency = GetGadgetState(Main_Window\TrackBar[0]) Debug Frequency Case Main_Window\TrackBar[1] Amplitude = GetGadgetState(Main_Window\TrackBar[1]) / 1000 EndSelect Case #PB_Event_CloseWindow Main\Quit = #True Case 0 Break EndSelect ForEver Until Main\Quit ; ##################################################### End ######################################################### AudioOut::Deinitialize(Main\AudioOut) ; IDE Options = PureBasic 5.30 Beta 2 (Windows - x64) ; CursorPosition = 109 ; FirstLine = 79 ; Folding = - ; EnableUnicode ; EnableThread ; EnableXP
Example code from Wikipedia:
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
Trending Repos
repo | stars | description |
---|---|---|
onnx | 6751 | Open Neural Network Exchange |
x-deeplearning | 2862 | An industrial deep learning framework for high-dimension sparse data |
Last updated December 10th, 2019