<���Имя предобработчика>::= <���Идентификатор>
<���Описание частных предобработчиков>::= <���Описание частного предобработчика> [<���Описание частных предобработчиков>]
<���Описание частного предобработчика>::= <���Заголовок описания предобработчика> [<���Описание статических переменных>] [<���Описание переменных>] <���Тело предобработчика>
<���Заголовок описания предобработчика>::= Prep<���Имя частного предобработчика> ([(<���Список формальных аргументов>)])
<���Имя частного интерпретатора>::= <���Идентификатор>
<���Тело предобработчика>::= Begin<���Составной оператор> End
<���Описание состава>::= Contents<���Список имен предобработчиков>;
<���Список имен предобработчиков>::= <���Имя предобработчика> [,<���Список имен предобработчиков>]
<���Имя предобработчика>::= <���Псевдоним>: {<���Имя ранее описанного интерпретатора> | <���Имя стандартного интерпретатора>} [ [ <���Число экземпляров > ] ] [(<���Список фактических аргументов>)]
<���Псевдоним>::= <���Идентификатор>
<���Число экземпляров >::= <���Целое число>
<���Имя ранее описанного интерпретатора>::= <���Идентификатор>
<���Имя стандартного интерпретатора>::= <���Идентификатор>
<���Установление параметров>::= <���Установление параметров Частного предобработчика > [;<���Установление параметров>]
<���Описание сигналов>::= Signals <Константное выражение типа Long >
<���Описание данных>::= Data<Константное выражение типа Long >
<���Описание распределения сигналов>::= <���Описание распределения Сигналов, Предобработчика, Частного предобработчика, Signals >
<���Описание распределения данных>::= <���Описание распределения Данных, Предобработчика, Частного предобработчика, Data >
<���Конец описания предобработчика>::= End Preparator
Описание языка описания предобработчика
Структура описания предобработчика имеет вид: заголовок; описание функций; описание частных предобработчиков; описание состава; установление параметров; описание сигналов; описание данных; описание распределения сигналов; описание распределения данных; конец описания предобработчика.
Заголовок состоит из ключевого слова Preparatorи имени предобработчика и служит для обозначения начала описания предобработчика в файле, содержащем несколько компонентов нейрокомпьютера.
Описание функций — фрагмент описания, в котором описаны функции, необходимые для работы предобработчиков.
Описание частного предобработчика — это описание процедуры, вычисляющей входные сигналы нейронной сети по входным данным. Формальные аргументы служат для задания размерностей обрабатываемых векторов. При выполнении частный предобработчик получает в качестве аргументов два вектора — входных данных и входных сигналов. Формально, при исполнении частный предобработчик имеет описание следующего вида:
Pascal:
Procedure Preparator(Data, Signals: PRealArray);
C:
void Preparator(PRealArray Data; PRealArray Signals);
В разделе описания состава перечисляются частные предобработчики, входящие в состав предобработчика. Признаком конца раздела служит символ «;».
В необязательном разделе установления параметров производится задание значений параметров (статических переменных) частных предобработчиков. После ключевого слова SetParameters следует список значений параметров в том порядке, в каком параметры были объявлены при описании частного интерпретатора (для стандартных интерпретаторов порядок параметров соответствует порядку, приведенному в описании стандартных предобработчиков в разделе «Стандартные предобработчики»). При использовании одного оператора задания параметров для задания параметров нескольким экземплярам одного частного предобработчика после ключевого словаsetparameters указывается столько выражений, задающих значения параметров, сколько необходимо для одного экземпляра.
В необязательном разделе «описание сигналов» указывается число сигналов, вычисляемых предобработчиком. Если этот раздел опущен, то полагается, что число вычисляемых предобработчиком сигналов равно сумме сигналов, вычисляемых всеми частными предобработчиками. В константном выражении возможно использование функции NumberOf, аргументом которой является имя частного предобработчика (или его псевдоним) и ключевое слово Signals, в качестве второго аргумента.
Читать дальше