Применением компилятора NKQPL позволяет существенно облегчить разработку программ на языке QPILE.

В компиляторе можно использовать собственные макросы.

Чем удобны макросы?

Макрос – это замена некоторой последовательности команд в программе одной строкой.

Конечно, можно оформить данную последовательность в виде функции и написать в этом месте программы вызов функции. В чем же разница и когда следует использовать макрос?

Функции применяются для сокращения размера программы.

Если у Вас одна и та же последовательность команд используется в программе многократно и вам важно уменьшить размер кода программы, в ущерб быстродействию, тогда необходимо данную последовательность команд оформить как функцию. И всюду, где необходима эта последовательность поставить вызов функции .

Но, если эта последовательность команд применяется, лишь в одном месте Вашей программы, тогда замена этой последовательности на функцию, лишь увеличит длину кода при этом еще и замедлит исполнение программы.

Поэтому, если Вы хотите сделать Вашу программу удобочитаемой и понятной Вам, при этом не хотите увеличивать ее код и замедлять выполнение, а повторяемых фрагментов программы нет, то единственным способом является применение макросов.

Поясню данный вопрос на простом примере:

В программе на QPILE после тела программы надо описать программируемую таблицу.

Каждый столбец таблицы определяется следующей последовательностью строк

PARAMETER xxx;

 PARAMETER_TITLE Name_xxx

 PARAMETER_DESCRIPTION  Des_xxx;

 PARAMETER_TYPE  type_xxxNUMERIC(6,0);  

 END

Где xxx – имя переменной столбца, содержит значения, которые будут отображаться

Name_xxx – название столбца

Des_xxx   — описание столбца – текст пояснения

type_xxx-  формат   STRING строка или число NUMERIC(6,0);

Таким образом, на каждый столбец необходимо написать 5 строк подобного текста.

Чтобы избавить себя от этого утомительного занятия и сделать текст программы наглядным и компактным, определим макрос column, который поместим в библиотеку макросов.

В программе, вместо записи указанных выше пяти строк для каждого столбца запишем следующую строку:

# column(xxx,Name_xxx,Des_xxx,NUMERIC(6,0))

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

Сам макрос запишем в файл column.qpl в виде:

‘макрос описания столбца программируемой таблицы

PARAMETER %1;

 PARAMETER_TITLE %2;

 PARAMETER_DESCRIPTION  %3;

 PARAMETER_TYPE  %4;  

 END

 

Если у нас  таблица состоит из 20-ти столбцов, то можно записать описание столбцов, в новом макросе, назвав, его  QWN и вместо  20 строк описания столбцов, которые в программе на QPILE составляют 100 строк оператора PARAMETR, записать одну строку

#OWN, а 20 строк макросов описания столбцов поместить в файл макроса OWN.qpl

В процессе сборки программы, компилятор автоматически заменит  одну строку макроса OWN на 20 строк макросов column, а те в свою очередь заменить на 100 строк операторов PARAMETR. Без вашего участия и каких-либо проблем.

Таким образом, макросы позволяют нам в процессе написания программы присваивать названия отдельным последовательностям кода программы и в тексте программы записывать эти понятные нам названия, вместо не очень понятных наборов команд, что обеспечивает читаемость Разрабатываемой программы.

С помощью макросов Вы можете написать программу в виде слов алгоритма, которая в дальнейшем автоматически компилятор автоматически превратит в текст программы на языке QPILE.  

Там, где Вам нужно использовать многократно повторяющиеся блоки кодов, вы указываете имя функции, которую компилятор тоже автоматически добавит в текст конечной программы для загрузки в торговый терминал

This entry was posted on Четверг, 5 апреля, 2012 at 16:38 and is filed under QUIK и QPILE, компилятор QPILE, торговые роботы (МТС). You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Comments are closed at this time.