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