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)) вызовет предупреждение об отсутствии в ней необходимости.
Основные этапы развития
- 1 сентября 1999 г. — PureBasic v1.00, самая первая версия для AmigaOS
- 10 октября 1999 г. — PureBasic v1.10, полноценная поддержка PowerPC под AmigaOS (WarpOS)
- 30 ноября 1999 г. — PureBasic v1.20, появился встроенный редактор и поддержка библиотек AmigaOS
- 9 сентября 2000 г. — PureBasic v1.60, парадигму программирования для AmigaOS удалось реализовать без потерь в бета-версиях для Microsoft Windows и Linux
- 17 декабря 2000 г. — PureBasic v2.00 (final) первая non-beta версия для Microsoft Windows, доступная широкой публике.
- 8 мая 2006 г. — PureBasic v4.00 (final) для Microsoft Windows
- 25 октября 2006 г. — вышел в свет PureBasic v4.00 (beta) для AmigaOS и Linux.
- 9 ноября 2007 г. — PureBasic v4.10 Final. Впервые одновременный релиз для всех поддерживаемых платформ: Microsoft Windows, Linux и Mac OS X.
- 23 мая 2008 г. — PureBasic v4.20 для всех поддерживаемых платформ кроме AmigaOS.
- 16 декабря 2008 г. — PureBasic v4.30 для Windows (x86 и x64) Linux и MacOS X
- 1 декабря 2009 г. — вышла версия 4.40 для Windows (x86 и x64), Linux (x86 и x64) и MacOS X (x86 и PowerPC)
- 7 июня 2010 г. — вышла версия 4.50 Revision 1253 для Windows (x86 и x64), Linux (x86 и x64) и MacOS X (x86 и PowerPC)
- 7 ноября 2011 г. — вышла версия 4.60 для Windows (x86 и x64), Linux (x86 и x64) и MacOS X (x86 и PowerPC)
- 21 мая 2012 г. — вышла версия 4.61 для Windows (x86 и x64), Linux (x86 и x64) и MacOS X (x86 и PowerPC)
- 5 ноября 2012 г. — вышла версия 5.00 для Windows (x86 и x64), Linux (x86 и x64) и MacOS X (x86, x64 и PowerPC)
Ссылки
- http://www.purebasic.com — сайт разработчика
- PureBasic в каталоге ссылок Open Directory Project (dmoz).
Диалекты языка программирования Бейсик | |
---|---|
Классические | Altair BASIC • Applesoft 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 • DarkBASIC • FreeBASIC • GFA BASIC • GLBasic • Liberty BASIC • Microsoft Small Basic • PureBasic • QBasic • QB64 • QuickBASIC • ScriptBasic • SuperBasic • ThinBasic • True BASIC • Turbo Basic • XBasic • Xblite • Basic4ppc • Visual Basic • Visual Test |
Объектные | BlitzMax • FreeBASIC • Gambas • GLBasic • KBasic • PowerBASIC • ProvideX • RapidQ • REALbasic • Run BASIC • AutoIt • StarOffice Basic • Visual Basic (.NET) |
Мобильные | Basic4ppc • GLBasic • NS Basic |