Рефераты. Функциональные модели универсального нейрокомпьютера

<Скалярный тип> ::= {Long ½ Real ½ Integer ½ Color ½ Logic ½ String ½ PRealArray ½ PIntegerArray ½ PLongArray ½ PLogicArray ½ PString ½ Visual ½ Pointer ½ FuncType}

<Тип массива> ::= { RealArray ½ IntegerArray ½ LongArray ½ LogicArray}

<Константа типа Тип> – константа имеющая тип Тип.

Список синтаксических конструкций для формальных аргументов:

<Список формальных аргументов> ::= <Формальный аргумент> [; <Список формальных аргументов>]

<Формальный аргумент> ::= <Список имен аргументов> : <Скалярный тип>

<Список имен аргументов> ::= <Имя аргумента> [,<Список имен аргументов>]

<Имя аргумента> ::= <Идентификатор>

<Аргумент типа Тип> – одно из следующих понятий:

имя аргумента, который при описании формальных аргументов имел тип Тип

имя элемента аргумента-массива, если элементы массива имеют тип Тип

результат приведения произвольного аргумента или элемента аргумента-массива к типу Тип.

Синтаксические конструкции описания переменных:

<Описание переменных> ::= Var <Список описаний однотипных переменных>

<Список описаний однотипных переменных> ::= <Тип переменной> <Список переменных>; [<Список описаний однотипных переменных>]

<Список переменных> ::= <Имя переменной> [, <Список переменных>]

<Имя переменной> ::= <Идентификатор>

<Тип переменной> ::= {<Скалярный тип> ½ <Тип массива>[<Целочисленное константное выражение>]}

<Переменная типа Тип> – одно из следующих понятий:

имя переменной, которая при описании переменных имела тип Тип

имя элемента массива, если элементы массива имеют тип Тип

результат приведения произвольной переменной или элемента массива к типу Тип.

Синтаксические конструкции описания статических переменных

Статические переменные, как правило, служат для описания параметров компонентов нейрокомпьютера. Использование в именах переменных только символов латинского алфавита и цифр делает идентификаторы универсальными, но неудобными для всех пользователей, кроме англо-говорящих. Для удобства всех остальных пользователей в описании статических переменных предусмотрена возможность использовать дополнительные имена для статических переменных. Однако эти имена служат только для построения интерфейса и не могут быть использованы в описании тела соответствующего компонента. Кроме того, статической переменной можно при описании задать значение по умолчанию.

<Описание статических переменных> ::= Static <Список описаний статических
переменных>

<Список описаний статических переменных> ::= <Описание статической переменной>; [<Список описаний статических переменных>]

<Описание статической переменной> ::= <Тип переменной> <Имя переменной> [Name <Имя статической переменной>] [Default <Значение по умолчанию>]

<Имя статической переменной> ::= <Строковая константа>

<Значение по умолчанию> ::= <Константное выражение типа <Тип переменной>>

Синтаксические конструкции описания функций

<Описание функций> ::= <Описание функции> [<Описание функций>]

<Описание функции> ::= <Заголовок функции> <Описание переменных> <Описание меток> <Тело функции>

<Заголовок функции> ::= Function <Имя функции>[(<Список формальных аргументов>)] : <Скалярный тип>;

<Описание меток> ::= Label <Список меток>;

<Список меток> ::= <Имя метки> [, <Список меток>]

<Имя метки> ::= <Идентификатор>

<Тело функции> ::= Begin <Составной оператор> End;

<Составной оператор> ::= [<Имя метки>:] <Оператор> [; <Составной оператор>]

<Оператор> ::= {<Оператор присваивания> ½ <Оператор ветвления> ½ <Оператор цикла> ½ <Оператор перехода> ½ <Операторные скобки>}

<Оператор присваивания> ::= <Допустимое имя переменной> = <Выражение>

<Оператор ветвления> ::= If <Логическое выражение> Then <Оператор> [Else <Оператор>]

<Оператор цикла> ::= { <Цикл For> ½ <Цикл While> }

<Цикл For> ::= For <Имя переменной> = <Целочисленное выражение> To <Целочисленное выражение> [By <Целочисленное выражение>] Do <Оператор>

<Цикл While> ::= While <Логическое выражение> Do <Оператор>

<Оператор перехода> ::= GoTo <Имя метки>

<Операторные скобки> ::= Begin <Составной оператор> End

<Функция типа Тип> – функция, возвращающая величину типа Тип.

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

Синтаксические конструкции описания выражений:

<Выражение> ::= { <Выражение типа Long> ½ <Выражение типа Real> ½ <Выражение типа Integer> ½ <Выражение типа Color> ½ <Выражение типа Logic> ½ <Выражение типа String> ½ <Выражение типа Pointer>}

<Целочисленное выражение> ::= { <Выражение типа Long> ½ <Выражение типа Integer>}

<Выражение типа Тип> ::= [<Префиксная операция типа Тип>] <Операнд типа Тип> [<Операция типа Тип> <Операнд типа Тип>]

<Операция типа Long> ::= {+ ½ ½ * ½ Div ½ Mod ½ And ½ Or ½ Xor}

<Операция типа Real>::= {+ ½ ½ * ½ / ½ RMod }

<Операция типа Integer> ::= {+ ½ ½ * ½ Div ½ Mod ½ And ½ Or ½ Xor}

<Операция типа Color> ::= {COr ½ CAnd ½ CXor}

<Операция типа Logic> ::= {And ½ Or ½ Xor}

<Операция типа String> ::= +

<Префиксная операция типа Long> ::= { ½ Not }

<Префиксная операция типа Real>::=

<Префиксная операция типа Integer> ::= { ½ Not }

<Префиксная операция типа Color> ::= CNot

<Префиксная операция типа Logic> ::= Not

<Операнд типа Logic> ::= ::= {<Результат сравнения> ½ <Выражение типа Logic> ½ (<Выражение типа Logic>) ½ <Константа типа Logic> ½ <Переменная типа Logic> ½ <Аргумент типа Logic> ½ <Вызов функции типа Logic>}

<Результат сравнения типов Long, Integer, Real> ::= (<Выражение типа Long, Integer, Real> {> ½ < ½ >= ½ <= ½ = ½ <>} <Выражение типа Long, Integer, Real> )

<Результат сравнения типа Color> ::= (<Выражение типа Color> {CEqual ½ CIn ½ CInclude ½ CExclude ½ CIntersect} <Выражение типа Color> )

<Результат сравнения типа String> ::= (<Выражение типа String> {= ½ <>} <Выражение типа String> )

<Операнд типа Тип> ::= {<Выражение типа Тип> ½ (<Выражение типа Тип>) ½ <Константа типа Тип> ½ <Переменная типа Тип> ½ <Аргумент типа Тип> ½ <Вызов функции типа Тип>}

<Вызов функции типа Тип> ::= <Имя функции типа Тип> [(<Список фактических аргументов>)]

<Список фактических аргументов> ::= <Выражение> [,<Список фактических аргументов>]

<Константное выражение типа Тип> – <Выражение типа Тип> в операндах которого не могут фигурировать переменные и функции, описанные пользователем.

<Числовое выражение> ::= { <Выражение типа Long> ½ <Выражение типа Real> ½ <Выражение типа Integer>}

Синтаксические конструкции задания значений статическим переменным

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.