PureBasic | это... Что такое PureBasic? (original) (raw)

PureBasic — диалект языка BASIC и коммерческий компилятор для него.

Предназначен для создания кроссплатформенных приложений для AmigaOS, Linux, Microsoft Windows, Windows NT и Mac OS X. Разработан компанией Fantaisie Software.

Программы, написанные на PureBasic компилируются непосредственно в код процессоров IA-32, m68k и PowerPC, при этом получаются небольшие автономные исполняемые файлы и динамические библиотеки. Если не использовать специфические API операционных систем, один файл исходного кода может быть скомпилирован для всех поддерживаемых операционных систем с небольшими модификациями или вообще без них.

Есть возможность использования библиотек Windows API (32 бит) и MFC (Windows); SDL (Linux), OpenGL (во всех поддерживаемых операционных системах).

Также PureBasic позволяет использовать ассемблерные «включения», так как компилятор — FASM.

При создании программы можно выбрать, будет ли использоваться стандартный набор символов (ASCII), либо расширенный (Unicode)

PureBasic (начиная с версии 3.60 для Windows) имеет также Visual Designer[1], который может помочь в создании окон.

Имеет более 1100 встроенных (многие — кроссплатформенные) команд, вдобавок к этому есть прямой доступ к командам API AmigaOS, Microsoft Windows, Linux или Mac OS X. Демонстрационная версия предоставляется бесплатно, и позволяет компилировать программы только если в них меньше 800 строк кода.

Библиотеки

Содержит несколько десятков встроенных библиотек общего назначения (Array, CDAudio, Cipher, Clipboard, Console, Database, Date, Debugger, Desktop, File, FileSystem, Font, Gadget, Help, Image, ImagePlugin, Linked List, Math, Memory, Menu, Misc, Movie, Network, OnError, Packer, Preference, Process, Printer, Requester, Sort, StatusBar, String, SysTray, Thread, Toolbar, Window), работы с мультимедиа (2D Drawing, Joystick, Keyboard, Module, Mouse, Palette, Sprite & Screen, Sprite3D, Sound, SoundPlugin), с трехмерной графикой, через OGRE (Engine3D, Billboard, Camera, Entity, Light, Material, Mesh, Particle, Terrain, Texture).

При помощи библиотеки Library может взаимодействовать с произвольными DLL-библиотеками.

Типы данных

Тип данных переменной указывается при её первом использовании(и опционально — в дальнейшем), и отделяется от имени точкой. существует набор элементарных типов — .f, .d (числа с плавающей точкой одинарной и двойной точности), .b, .c, .w, .l, .q (целые числа — от однобайтных до 8байтных), .s — строки.

Тип Суффикс Использование памяти Числовой диапазон
Byte .b 1 байт (8 бит) от −128 до +127
Ascii .a 1 байт (8 бит) от 0 до +255
Character .c 1 байт (8 бит) (ascii) от 0 до +255
Word .w 2 байта (16 бит) от −32768 до +32767
Unicode .u 2 байта (16 бит) от 0 до +65535
Character .c 2 байта (16 бит) (unicode) от 0 до +65535
Long .l 4 байта (32 бита) от −2147483648 до +2147483647
Integer .i 4 байта (32 бита) x86 от −2147483648 до +2147483647
Float .f 4 байта (32 бита) В зависимости от соотношения целой и дробной части числа.
Integer .i 8 байт (64 бита) x64 от −9223372036854775808 до +9223372036854775807
Quad .q 8 байт (64 бита) от −9223372036854775808 до +9223372036854775807
Double .d 8 байт (64 бита) В зависимости от соотношения целой и дробной части числа.
String .s Длина строки + 1 байт Нет лимита.
Fixed String .s{длина} Длина строки Нет лимита.

Помимо элементарных типов, пользователь может определить свой тип с помощью конструкции

Structure имя_типа имя_поля.тип ; одиночное поле. Возможно вложение структур. имя_поля[количество].тип ;статические массивы ;... ;опциональная конструкция StructureUnion .. EndStructureUnion позволяет объединить несколько полей в одной области памяти, что иногда требуется для конверсии типов. StructureUnion имя_типа.тип ;... EndStructureUnion EndStructure

Переменные могут быть одиночными (собственно, стандартные переменные), динамическим массивом (объявляются с помощью ключевого слова Dim имя_переменной.имя_типа(размер1, размер2, …), связанным списком (ключевое слово List имя_переменной.имя_типа()), ассоциативным массивом(в новых версиях языка)(ключевое слово Map имя_переменной.имя_типа())

Примеры программ

Следующая строка кода создаст небольшое (3,072 байт) приложение для Microsoft Windows.

MessageRequester("","Hello World")

«Hello World»

Аналогично, вместо встроенной команды MessageRequester можно использовать MessageBox из WinAPI:

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

Эта программа занимает всего 2 килобайта, но выполниться сможет только в ОС Microsoft Windows.

Следующий пример демонстрирует как создавать окно, добавить в него элементы, создать цикл окна и выполнять простые математические операции. Какие бы значения пользователь не ввел в два поля, справа отображается их сумма. Этот код компилируется в небольшое приложение (15 КБ), которое в зависимости от использованого компилятора, может быть запущено на Windows, Linux, Mac OS X или AmigaOS.

OpenWindow(1,300,300,100,100,"Title",#PB_Window_SystemMenu) CreateGadgetList(WindowID(1)) StringGadget(1,10,10,50,20,"") StringGadget(2,10,40,50,20,"") TextGadget(3,80,30,50,20,"") Repeat ev=WaitWindowEvent() If ev=#PB_Event_Gadget op1=Val(GetGadgetText(1)) op2=Val(GetGadgetText(2)) SetGadgetText(3,Str(op1+op2)) EndIf Until ev=#PB_Event_CloseWindow End

Суммируем числа

Примечание: для версий компилятора выше 4.2 инструкция CreateGadgetList(WindowID(1)) вызовет предупреждение об отсутствии в ней необходимости.

Основные этапы развития

Ссылки

Просмотр этого шаблона Диалекты языка программирования Бейсик
Классические Altair BASICApplesoft BASIC • Atari BASIC (ST) • BASIC Programming • Color BASIC • Commodore BASIC • Dartmouth BASIC • Family BASIC • G-BASIC • GFA BASIC • GW-BASIC • HP BASIC for OpenVMS • IBM (BASICA • Cassette • Disk) • Integer BASIC • Locomotive BASIC • Mallard BASIC • Microsoft BASIC • MSX BASIC • ScriptBasic • Sinclair BASIC • STOS BASIC • TI BASIC (TI 99/4A • калькуляторы) • Tiny BASIC • Turbo-Basic XL • UBASIC • Бейсик Вильнюс
Переходные BASIC-256 • Basic4GL
Процедурные AmigaBASIC • AMOS BASIC • BBC BASIC • Beta BASIC • DarkBASICFreeBASIC • GFA BASIC • GLBasic • Liberty BASIC • Microsoft Small BasicPureBasicQBasic • QB64 • QuickBASIC • ScriptBasic • SuperBasic • ThinBasic • True BASIC • Turbo BasicXBasic • Xblite • Basic4ppc • Visual Basic • Visual Test
Объектные BlitzMaxFreeBASICGambas • GLBasic • KBasicPowerBASIC • ProvideX • RapidQ • REALbasic • Run BASIC • AutoIt • StarOffice Basic • Visual Basic (.NET)
Мобильные Basic4ppc • GLBasic • NS Basic
Просмотр этого шаблона IDE (сравнение)
Универсальные AnjutaVisual StudioNetBeansEclipseKDevelopXcodeGeanyMonoDevelopAptana StudioOpen WatcomKomodoKylix
Си/C++ Borland C++C++ Builder • Code::Blocks • CodeLitewxDev-C++Pelles COracle Solaris StudioQt CreatorUltimate++Microsoft QuickC
Бейсик PowerBASICTurbo BasicVisual BasicQBasicQuickBASICPureBasic
Java WebLogicBlueJ • DrJava • Greenfoot • JCreator • JDeveloperIntelliJ IDEAJBuilder • JGRASP
Паскаль DelphiLazarusMSEPascalABC.NETMIDletPascalPocketStudio • Morfik • Turbo PascalQuickPascalVisible PascalGeany
PHP Aptana Studio with PHP plugin • Delphi for PHP (RadPHP) • Eclipse PDTZend StudioNuSphere PhpED • PHP Expert EditorphpStormAdobe Dreamviewer
Python Boa Constructor • Eclipse+PyDev • EricGeanyIDLEKomodoNetBeans • PyCharm • PyScripter • SPE
ActionScript Adobe FlashAdobe Flash BuilderFlashDevelop • CodeDrive • IntelliJ IDEAEclipse FDT • Realaxy ActionScript Editor
Ruby RubyMine