Author Archive

Применением компилятора 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.  

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