PureBasic

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 21:26, 8 июня 2016.
PureBasic
Парадигма структурное, императивный, процедурный
Семейство BASIC
Спроектировано Fantaisie Software
Разработчики Fantaisie Software
Лицензия коммерческая
Портал: www.purebasic.com

PureBasic является нативным 32-разрядным и 64-разрядным языком программирования на основе установленных правил BASIC. Ключевыми особенностями PureBasic являются: портативность (Windows, Linux и MacOS X в настоящее время поддерживаются), хорошая производительность и большая оптимизация программных файлов, а так же очень простой BASIC синтаксис. PureBasic был создан как для новичков, так и для экспертов.

Несмотря на простой синтаксис, PureBasic обладает большим функционалом, таким, как указатели, структуры, процедуры, динамически связанные списки и многое другое. Опытные программисты не будут иметь никаких проблем с получением доступа к любой из легальных конструкций ОС или объектам API и PureBasic также позволяет встраивать ASM код.

История

PureBasic начал свою жизнь в 1995 году, как расширенный набор команд для BlitzBasic. Произошло это потому, что стандартного набора команд BlitzBasic совершенно не хватало для полноценной разработки приложений. Развитие «NCS» продолжалось около года, после чего Фред (разработчик PureBasic) получил очень положительные отзывы касательно его работы, за счёт которой он окунулся в среду разработки и программирования. Кроме того, он посвятил много времени разработке на процессоре 68000 и заметил, что даже на таком, очень старом процессоре, при должной оптимизации возможно выполнять программы очень быстро.

Примерно в это же время IBM PowerPC процессоры на базе Amiga начали появляться и стали мощной альтернативой процессорам Motorola 68000. Они были очень быстрыми и продавались по сравнительно дешевой цене, даже если сравнивать с высококлассным 68060 процессором. С приходом этих чипов люди хотели получить новую версию Blitz, т.к. ранее она была очень популярной, но её развитие для платформы Amiga была приостановлена в пользу процессоров на базе Intel x86. В итоге был представлен BlitzBasic, который был логической заменой Blitz и также имел полную поддержку процессоров 680x0 и PowerPC.

Ранний дизайн и первая версия PureBasic появилась в 1998 году. Основные различия между PureBasic и «нормальными» компиляторами заключалось в включении «виртуального процессора» (который фактически используется в ассемблерной мнемонике 680x0 ) с самого начала, чтобы обеспечить различные виды сборки ПО не меняя ядро компилятора. После того, как был дан старт на разработку проекта, прошло совсем немного времени с его выхода в свет. Фред полностью посвятил все свое время разработке компилятора и узнал много нового, включая язык C, чтобы в конечном счете, реализовать очень производительный, высококлассный компилятор.

Первая версия PureBasic первоначально была выпущена для Amiga и (даже если она был плохо проверена на баги) имела интегрированную и полностью кроссплатформенный редактор, интегрированный отладчик и огромное количество внутренних установок которые, как вы уже догадались, брались непосредственно из Blitz пакета бывших "NCS". Помимо отладки и исправления багов в своём компиляторе Фред также изучал другие языки программирования, чтобы дать своей фирме возможность развиваться в других направлениях и позволить принимать более обоснованные решения о внутреннем устройстве и направлениях развития PureBasic в будущем. В течение четвертого года изучения Фредом информатики, Amiga начали считать мертвой платформой и многие сокурсники Фреда предлагали ему переключиться на Windows. Фред, конечно же, защищал себя, говоря, что сделать это проще простого, но ему всё же ещё предстояло всем это доказать.

Философия разработки

Философия развития PureBasic немного отличается от других языков во многих отношениях. Вот список некоторых из целей и политик развития PureBasic.

  1. После первоначальной покупки лицензии PureBasic, все последующие обновления бесплатны на всю жизнь.
  2. Все программы, собранные с помощью PureBasic могут быть проданы без каких-либо дополнительных расходов.
  3. Все программы должны быть минимального размера и не раздувать размер исполняемого файла.
  4. Все скомпилированные программы не должны полагаться на что-то стороннее и должны запускаться на любых машинах.

Приведенный выше перечень правил очень сильно отличается от философии других компаний. Можете ли вы представить Microsoft, который даёт вам бесплатные обновления VB.NET на всю жизнь? Философия развития PureBasic является одной из тех вещей, которая позволяет комфортно программировать и использовать её функционал. Всё это позволяет людям создать программное обеспечение, в котором они нуждаются. Обновления заключаются не только в исправлении багов, но и в усовершенствовании функционала и в добавлении новых возможностей.

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

Давайте рассмотрим небольшой пример, чтобы показать всё в действии. Введите именно это:

OpenConsole()
Print("Press enter to exit")
Input()
End

После запуска этой маленькой программы она откроет окно консоли, а затем выведет строку текста в нём, информирующее пользователя о том, что для выхода он или она должны нажать "Enter". После ввода клавиши мы завершаем программу Если вы поместите мигающий курсор IDE на любое ключевое слово, которое используется в этой программе, а затем нажмёте 'F1', то появится HelpFile, описывающий это ключевое слово. Например, поместите мигающий курсор в любом месте в пределах OpenConsole () и нажмите F1.

Ниже приведен пример, показывающий создание всех типов переменных с использованием PureBasic:

ByteVariable.b = 123
CharVariable.c = 222
WordVariable.w = 4567
LongVariable.l = 891011
QuadVariable.q = 9223372036854775807
FloatVariable.f = 3.1415927
DoubleVariable.d = 12.53456776674545
StringVariableOne.s = "Test String One"
StringVariableTwo$ = "Test String Two"
StringVariableThree.s{6} = "abcdef"
StringVariableFour${3} = "abc"

Типы данных

PureBasic предоставляет семь числовых типов данных для использования в программировании, каждый из которых использует разное количество оперативной памяти и все они имеют различные числовые пределы.

Тип Byte Char (Ascii) Char (Unicode) Word Long Quad Float Double
Суффикс .b .c .c .w .l .q .f .d
Использование памяти (RAM) 1 байт (8 бит) 1 байт (8 бит) 2 байта (16 бит) 2 байта (16 бит) 4 байта (32 бита) 8 байт (64 бита) 4 байта (32 бита) 8 байт (64 бита)
Числовой лимит 128 до 127 0 до 255 0 до 65535 -32768 до 32767 -2147483648 до 2147483647 -9223372036854775808 до 9223372036854775807 Безлимитный* Безлимитный*

Строки, вероятно, самый простой тип данных для понимания, потому что они очень просты в использовании.

Тип String String Fixed Length String Fixed Length String
Суффикс .s $ .s{length} ${length}
Использование памяти (RAM) 4 байта (32 бита) 4 байта (32 бита) 4 байта (32 бита) 4 байта (32 бита)
Лимит символов Безлимитный Безлимитный Определяемый пользователем * Определяемый пользователем *

Строки могут быть сделаны из любого символа в наборе символов ASCII, включая управляющие символы, за исключением нулевого символа и того, который используется для обозначения конца строки.

Лучшие черты PureBasic

  1. Исполняемые файлы очень малы и не требуют загрузки дополнительных библиотек.
  2. Написание простого GUI очень лёгкая задача, не зависящая от того, под какую ОС ведётся разработка.
  3. Возможность создать всего 1 exe файл с минимальным количеством зависимостей (обычно только библиотеки DLL поставляемые вместе с операционной системой, если не используются 3D-команды требующие OGRE DLL, поставляемого вместе с PureBasic).
  4. Возможность легко создавать портативные программы, являющиеся самодостаточными и не требующие установки и прописывания в реестр.
  5. Генерация быстрого исполняемого кода, сопоставимого по скорости с кодом, написанном на языке C.
  6. Он использует хорошо известную FASM для компиляции (Yasm на OSX), и он поддерживает ассемблерные вставки в коде PB.
  7. Подавляющее большинство функций Windows API поддерживаются, как собственные команды (вы всегда можете импортировать недостающие аналогично тому, как вы делаете на других языках).
  8. Очень быстрое время компиляции.
  9. Редактор довольно хорош (на основе Scintilla), удобный отладчик.
  10. В режиме отладки можно исследовать содержимое буферов памяти и состояние окон, файлов, потоков, гаджетов, и даже визуализировать объекты, если они присутствуют.
  11. Весь пакет (компилятор + библиотеки + среда разработки) компактен и самодостаточен. Устанавливается и настраивается в течении нескольких минут, моментально запускается.
  12. Поддерживает проекты, у которых есть разветвление версий. (проект представляет собой контейнер для многих связанных исходных файлов, которыми необходимо управлять при написании больших программ).
  13. Есть удобный сборщик мусора, помогающий определять ошибки с указателями, переполнением буферов и т.д..
  14. Имеет интересный объект GUI под названием CanvasGadget, полезный для создания пользовательских графических элементов управления.
  15. Удобное написание кроссплатформенных приложений.
  16. Компилятор может генерировать код для 32 и 64 битных машин. Для этого вам необходимо установить два экземпляра PureBasic, один для 32 разрядных приложений, второй для 64 разрядных.
  17. Он поддерживает ASCII, UNICODE / UTF8, многопоточность во встроенных библиотеках
  18. Вы можете запускать различные версии компилятора (т.е. 4,50 x86, x86 5.00, 5.10 x64 и x86, и т.д.) из одного экземпляра IDE.
  19. Язык напоминает гибрид BASIC и C, поэтому он очень приятен для новичков, но не ограничивается только малым функционалом "BASIC".
  20. Вы можете использовать макросы для расширения кода во время компиляции.
  21. Документация достаточно хороша, однако, даже если у вас есть вопросы, не включенные в инструкции, вы можете, почти наверняка, найти ответы на них на официальном, постоянно поддерживаемом форуме.
  22. Он изначально поддерживает обычные типы данных, поддерживаемые BASIC, а также некоторые дополнительные структуры данных, такие, как связанный список и map.
  23. Версия 5.20 привнесла реализацию модулей.
  24. Он поставляется с большим и растущим набором библиотек. Некоторые из них слишком упрощены, но большинство из них полезны, и они могут ускорить время разработки очень сильно. HTTP и почтовые библиотеки, в частности, были почти бесполезны, но они были улучшены в 5.40.

Связанные страницы

Статьи
Архив Open Source примеров