Компиляция программ

Командно-строчный компилятор можно найти в директории 'Compilers\' дистрибутива PureBasic. Компилятор PBCompiler, по сути только преобразует файлы программ на языке PureBasic, в файлы программ на языке ассемблера Motorola 68k, а компиляцией последних, занимается уже ассемблер PhxAss. Этот подход аналогичен применённому в компиляторе PowerD и позволяет сравнительно легко поддержать любую из существующих процессорных линеек. Для удобства пользования компилятором, рекомендуется скопировать файлы этой директории в 'C:' или прописать в файле 'S:User-Startup' строчку: 'Assign C: "путь к директории Compilers" ADD'. Доступные в командной строке аргументы, не имеют ничего общего с версиями компилятора PBCompiler для Windows и Linux, и показываются при запуске компилятора.

? : показывает краткую справку по аргументам компилятора PBCompiler

AMIGAOS/S (синоним : OS) : подключение поддержки библиотек AmigaOS

CREATERESIDENT/K (синоним : CR) "имя файла" : создание резидентного файла

DEBUGGER/S (синоним : DB) : включение встроенного отладчика

MC68020/S : отключение поддержки FPU и MMU

NOCOMMENT/S (синоним : NC) : отключение комментирования в генерируемых ассемблерных файлах (ускоряет компиляцию)

NORESIDENT/S (синоним : NR) : отключение поддержки создания резидентных файлов (ускоряет компиляцию)

OPTIMIZATIONS/S (синоним: OPT) : включение оптимизации генерируемого кода (замедляет компиляцию, но позволяет получать исполняемые файлы меньшего размера)

PRIORITY/K/N (синоним : PRI) "число (-127..127)" : устанавливает приоритет для компилятора PBCompiler

TO/K "путь и имя файла" : позволяет указать путь по которому будет создан исполняемый файл

Синтаксис вызова компилятора :

PBCompiler <исходный файл> TO <исполняемый файл> <аргументы>

Например :

1) PBCompiler sourcecode.pb

Компилируется файл 'sourcecode.pb' и запускается созданный исполняемый файл.

2) PBCompiler sourcecode.pb DEBUGGER AMIGAOS PRI=10

Компилируется файл 'sourcecode.pb' и запускается созданный исполняемый файл; включены отладчик и поддержка библиотек AmigaOS, компилятору установлен приоритет 10.

Замечание :

Расположенный в директории 'Compilers/' файл 'Default_Icon.info' - это та иконка, которая будет присваиваться исполняемым файлам после компиляции; файл 'Misc.asm' - содержит макроопределения startup, аллокации памяти и прочих системных операций (кодеры легко могут оптимизировать их для себя).


Синтаксис языка

При программировании на языке PureBasic необходимо соблюдение следующих синтаксических правил :

- Комментарии обозначаются символом ' ; '. Весь текст следующий после символа ' ; ' будет проигонорирован компилятором.

Например :
If a = 10 ; Это комментарий, как вы могли заметить.

- Все процедуры должны содержать в своём имени символ ' ( '. В противном случае они не будут распознаны как процедуры, (включая не имеющие аргументов).

Например :
WindowID()
; это функция.
WindowID
; это переменная.

- Все константы должны предваряться символом ' # '.

Например :
#Hello =
10 ; это константа.
Hello =
10 ; это переменная.

- Все имена меток должны занчиваться символом ' : '.

Например:
Я_представляю_собой_метку:

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

Примеры допустимых выражений :
a+1+(12*3) a+WindowHeight()+b/2+#Моя_любимая_константа
a <> 12+2 b+2 >= c+3

- Для перечисления любого числа операторов в одной строке служит символ ' : '.

Например :
If OpenScreen(0,320,200,8,0) : PrintN("Ok") : Else : PrintN("Failed") : EndIf

- Обозначения используемые в данном руководстве :

<переменная> : объявление переменной.
<выражение> : выражение в виде описанном выше.
<константа> : объявление числовой константы.
<метка> : метка в программе.
<определение> : любое определение (например, структура).


Типизация переменных

Объявление переменной

В языке PureBasic, для объявления переменной достаточно указать её имя, и, в случае необходимости, назначаемый переменной тип данных. Переменные с неопределённым типом данным "подхватываются на лету" и имеют тип данных зависящий от контекста в котором их пытаются применить (Variant). Для объявления типа данных сразу нескольким переменным используется объявление структуры типов оператором 'DefType'.

Например :
a.b ; объявляется переменная с именем 'a', типом Byte (.b) и размером в 1 байт.
c.l = a*d.w ; здесь переменная с именем 'd' объявляется прямо в выражении !

Для объявления указателя следует использовать символ ' * ' перед именем переменной. Объявленный указатель представляет собой переменную типа Long содержащую адрес. Обычно указатели используются для оперирования данными структур. Объявлением указателя достигается получение и изменение данных содержащихся в структуре.

Например :
*MyScreen.Screen = OpenScreen(0,320,200,8,0)
mouseX = *MyScreen\MouseX ; предпологается что структура с именем 'Screen' содержит поле с именем 'MouseX'.

Типы данных

В языке PureBasic, допускается назначение типа данных объявляемой переменной. Тип данных позволяет указать характер данных хранимых в переменной, например: целое значение (Byte, Word, Long), действительное значение (Float) или строка (String). Ниже, можно увидеть таблицу содержащую типы данных допустимые в PureBasic, идентификаторы которыми они назначаются, и их описание :

Тип
Объявление
Занимаемая память
Диапазон
Byte .b 1 байт в памяти от -128 до +127
Word .w 2 байта в памяти от -32768 до +32767
Long .l 4 байта в памяти от -2147483648 до +2147483647
Float .f 4 байта в памяти неограничен
String .s длина строки + 1 байт неограничен
Variant нет неограничено неограничен

Перечисляемые типы данных

Для объявления перечисляемых типов данных используется оператор объявления структуры. Более подробно этот материал изложен в главе посвящённой оператору 'Structure', в данном руководстве.


Сайт создан в системе uCoz