Командно-строчный компилятор можно найти в директории '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', в данном руководстве.