PureBasic
| Класс языка: | |
|---|---|
| Тип исполнения: | |
| Появился в: | |
| Автор: | |
| Расширение файлов: |
.pb .pbi .pbp .pbf |
| Выпуск: | |
| Система типов: |
статическая |
| Испытал влияние: | |
| Сайт: | |
| ОС: |
PureBasic — коммерческий язык программирования высокого уровня, основан на синтаксисе BASIC.
Предназначен для создания кроссплатформенных прикладных программ для AmigaOS, Linux, Microsoft Windows, Windows NT и Mac OS X. Компилятор PureBasic способен компилировать программы в код процессоров IA-32, m68k и PowerPC. Поддерживает компиляцию исполняемых файлов и динамических библиотек. Если не злоупотреблять API операционной системы, то код можно скомпилировать не изменяя его на все поддерживаемые платформы.
Поддерживает разные API: Windows API, MFC (Windows), SDL (Linux) и OpenGL.
Многопроходный компилятор PureBasic состоит из переводчика кода в ассемблер, ассемблера (FASM) и компоновщика (Линкера). У PureBasic также есть и неплохой отладчик. Так как в компиляторе присутствует ассемблер, есть возможность в коде использовать ассемблерные вставки. Поддерживает наборы символов ASCII и Unicode.
У языка есть отличный IDE. Его можно тонко настроить под свои вкус. В IDE встроен визуальный конструктор форм для построения графического интерфейса. (В старых версиях визуальный конструктор находился отдельно.)
В PureBasic встроены стандартные библиотеки для программирования консольного и графического интерфейса, библиотеки для создания 2D и 3D игр (Ogre3D). Всего насчитывается более 1800 встроенных команд (многие кроссплатформенные).
Язык платный и предоставляются 2 версии: PureBasic Demo и PureBasic Full. PureBasic Demo имеет некоторые ограничения: Нельзя скомпилировать код в котором больше 800 строк кода. Нельзя скомпилировать динамическую библиотеку. Нельзя использовать API операционных систем.
Содержание
Библиотеки[править | править вики-текст]
PureBasic содержит следующие библиотеки:
Библиотеки общего назначения: (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 графики: (2D Drawing, Joystick, Keyboard, Module, Mouse, Palette, Sprite & Screen, Sprite3D, Sound, SoundPlugin)
Библиотеки для работы с 3D графикой: (Ogre3D): (Engine3D, Billboard, Camera, Entity, Light, Material, Mesh, Particle, Terrain, Texture)
С помощью библиотеки Library можно взаимодействовать с динамическими библиотеками.
Типы данных[править | править вики-текст]
Тип данных переменной указывается при её первом использовании(и опционально — в дальнейшем), и отделяется от имени точкой. существует набор элементарных типов — .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 имя_переменной.имя_типа())
Примеры программ[править | править вики-текст]
Классическая программа «Hello, world!»:
С использованием интерфейса командной строки:
If OpenConsole("My first program!") ;Если открылась консоль то выполняем код. Print("Hello, world!") ;Вывод текста на экран. Repeat : Until Inkey() = Chr(27) ;Конструкция ждёт нажатия кнопки Escape CloseConsole() ;Закрыть консоль. EndIf ;Конец условия. End ;Выход из программы.
С использованием графического интерфейса:
MessageRequester("My first program!", "Hello, world!") ;Вызвать диалог.
С использованием Windows API:
MessageBox_(0, "Hello, world!", "My first program!", #MB_OK) ;Вызвать диалог.
Простой калькулятор:
С использованием интерфейса командной строки:
Define var_a.i ;Объявляем переменную первого числа. Define var_b.i ;Объявляем переменную второго числа. Define var_action.a ;Объявляем переменную действия. Define var_out.i ;Объявляем переменную выходного числа. If OpenConsole("Calculation") ;Если открылась консоль то выполняем код. start: ;Метка start. Print("A: ") var_a = Val(Input()) ;Спрашиваем первое число. Print("B: ") var_b = Val(Input()) ;Спрашиваем второе число. Print("Action: ") var_action = Asc(Input()) ;Спрашиваем действие. Select Chr(var_action) ;Проверяем действие. Case "+" var_out = var_a + var_b ;Слаживаем числа. Case "-" var_out = var_a - var_b ;Вычитаем числа. Case "*" var_out = var_a * var_b ;Умножаем числа. Case "/" var_out = var_a / var_b ;Делим числа. Case "^" var_out = Pow(var_a, var_b) ;Выводим в степень. EndSelect ;Конец проверки действия. PrintN("Result: " + Str(var_out)) ;Выводим результат. Print("Exit? (Y/N): ") ;Выводим сообщение о выходе. If Input() = "N" ;Проверяем хочет ли пользователь остаться. Goto start ;Переходим на метку start. EndIf ;Конец условия. CloseConsole() ;Закрыть консоль. EndIf ;Конец условия. End ;Выход из программы.
Примечание: Примеры рассчитаны для версии компилятора 5.11. На старых версиях могут быть ошибки из за разного синтаксиса версий!
Основные этапы развития[править | править вики-текст]
| Дата выхода | Версия | Описание |
|---|---|---|
| 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, доступная широкой публике. |
| 25 октября 2006 г. | PureBasic v4.00 Beta | Стабильная версия для AmigaOS и Linux. |
| 8 мая 2006 г. | PureBasic v4.00 Final | Стабильная версия для Microsoft Windows. |
| 9 ноября 2007 г. | PureBasic v4.10 Final | Впервые одновременный релиз для всех поддерживаемых платформ: Microsoft Windows, Linux и Mac OS X. |
| 5 ноября 2012 г. | PureBasic v5.00 | Версия для Windows (x86 и x64), Linux (x86 и x64) и Mac OS X (x86, x64 и PowerPC). |
| 23 июля 2014 г. | PureBasic v5.20 | Реализовано пространство имён. |
Литература[править | править вики-текст]
- Willoughby, G. Purebasic: A Beginner's Guide to Computer Programming. — Aardvark Global Publishing, 2006. — ISBN 9781427604286.
Ссылки[править | править вики-текст]
- http://www.purebasic.com — сайт разработчика.
- http://purebasic.info/phpBB3ex/index.php - Русскоязычное сообщество
- http://www.codeproject.com/Articles/853831/PureBasic-The-Perfect-Cross-Platform-Native-Develo - PureBasic - The Perfect Cross-Platform & Native Development Language
- 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 • Бейсик Вильнюс |
| Переходные | |
| Процедурные |
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) |
| Мобильные | |
| IDE (сравнение) | |
|---|---|
| Универсальные |
Anjuta • Visual Studio • NetBeans • Eclipse • KDevelop • Xcode • Geany • MonoDevelop • Aptana Studio • Open Watcom • Komodo • Kylix |
| Си/C++ | |
| Бейсик |
PowerBASIC • Turbo Basic • Visual Basic • QBasic • QuickBASIC • PureBasic |
| Java |
WebLogic • BlueJ • DrJava • Greenfoot • JCreator • JDeveloper • IntelliJ IDEA • JBuilder • JGRASP |
| Паскаль |
Delphi • Lazarus • MSE • PascalABC.NET • MIDletPascal • PocketStudio • Morfik • Turbo Pascal • QuickPascal • Visible Pascal |
| PHP |
Aptana Studio with PHP plugin • Delphi for PHP (RadPHP) • Eclipse PDT • Zend Studio • NuSphere PhpED • PHP Expert Editor • phpStorm • Dreamweaver |
| Python |
Boa Constructor • Eclipse+PyDev • Eric • IDLE • Komodo • PyCharm • PyScripter • SPE • Wing IDE |
| ActionScript | |
| Ruby | |

