WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
PureBasic
Класс языка императивный, процедурный, структурный
Тип исполнения компилируемый
Появился в 1998
Автор Fantaisie Software
Расширение файлов .pb .pbi .pbp .pbf
Выпуск 5.70 (2 января 2019 г.)
Система типов статическая
Испытал влияние BASIC
ОС AmigaOS, Linux, Windows, MacOS
Сайт purebasic.com

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, поддающийся конфигурации. В него встроен визуальный конструктор форм для построения графического интерфейса.

В 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.b1 байт (8 бит)от −128 до +127
Ascii.a1 байт (8 бит)от 0 до +255
Character.c1 байт (8 бит) (ascii)от 0 до +255
Word.w2 байта (16 бит)от −32768 до +32767
Unicode.u2 байта (16 бит)от 0 до +65535
Character.c2 байта (16 бит) (unicode)от 0 до +65535
Long.l4 байта (32 бита)от −2147483648 до +2147483647
Integer.i4 байта (32 бита) x86от −2147483648 до +2147483647
Float.f4 байта (32 бита)В зависимости от соотношения целой и дробной части числа.
Integer.i8 байт (64 бита) x64от −9223372036854775808 до +9223372036854775807
Quad.q8 байт (64 бита)от −9223372036854775808 до +9223372036854775807
Double.d8 байт (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 1.00Первая версия для AmigaOS.
10 октября 1999 г.PureBasic 1.10Полноценная поддержка PowerPC под AmigaOS (WarpOS).
30 ноября 1999 г.PureBasic 1.20Встроенный редактор и поддержка библиотек AmigaOS.
9 сентября 2000 г.PureBasic 1.60Удалось реализовать парадигму программирования для AmigaOS без потерь в бета-версиях для Microsoft Windows и Linux.
17 декабря 2000 г.PureBasic 2.00 FinalПервая non-beta версия для Microsoft Windows, доступная широкой публике.
25 октября 2006 г.PureBasic 4.00 BetaСтабильная версия для AmigaOS и Linux.
8 мая 2006 г.PureBasic 4.00 FinalСтабильная версия для Microsoft Windows.
9 ноября 2007 г.PureBasic 4.10 FinalВпервые одновременный релиз для всех поддерживаемых платформ: Microsoft Windows, Linux и Mac OS X.
5 ноября 2012 г.PureBasic 5.00Версия для Windows (x86 и x64), Linux (x86 и x64) и Mac OS X (x86, x64 и PowerPC).
23 июля 2014 г.PureBasic 5.30Реализовано пространство имён.
16 октября 2015 г. PureBasic 5.40 LTS Обновления версии 5.40 LTS.
25 июля 2016 г. PureBasic 5.50 Добавлены новые функции для работы с 3D, а также поддержка UNICODE в компиляторе.
2 марта 2017 г. PureBasic 5.60 Добавлен Gif декодер и многое другое.
12 сентября 2017 г. PureBasic 5.61 Исправлена часть известных ошибок компилятора и библиотек.
2 января 2019 г. PureBasic 5.70 LTS Ввод подсистемы QT для Linux, расширенная поддержка кроссплатформенности, внедрение функции поддержки DPI

для приложений Windows, добавлены функции HTTPRequest(), HTTPRequestMemory(), UseMySQLDatabase(),

добавлены новые функции для работы с 3D

Литература

  • Willoughby, G. Purebasic: A Beginner's Guide to Computer Programming. — Aardvark Global Publishing, 2006. ISBN 9781427604286.

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии