ГОСТ Р 53556.5—2013
список предварительно установленных списков чисел, которые будут связаны с каждым инструментом в
шаблоне. Этот
maplist
может быть опущен, когда нет никаких предварительно установленных чисел, свя
занных с шаблонными инструментами. Если
maplist
будет присутствовать, то он должен содержать столько
списков схолько инструментальных имен в первом идентифицированном списке. Второй список идентифи
каторов содержит
pfields
для шаблонного объявления. У каждого инструмента объявленного с шаблоном,
есть тот же самый список
pfields.
Третий список идентификаторов содержит список шаблонных перемен
ных. которыедолжны быть заменены в последующем блоке кода с выражениями от второго
maplist.
В этом
списке не может быть никаких идентификаторов, когда каждый инструмент, объявленный шаблоном, одина
ковый.
Список карты принимает форму списка списков. У этого списка должно быть столько элементов,
сколько шаблонных переменных объявлено в третьем списке идентификаторов. Каждый подсписок являет ся
списком выражений и должен иметь столько элементов, сколько инструментальных имен в первом
списке идентификаторов. Первый (дополнительный)
maplist
недолжен содержать идентификаторы, только
числовые значения.
8.8.3 Шаблонные инструментальные определения
Многие инструменты определяются шаблонным определением, так как их имена есть в первом спис
ке идентификаторов. Чтобы описать каждый из инструментов, идентификаторы, описанные в третьем спис
ке. поочередно заменяются выражениями из списка карты.
Чтобы создать код для первого инструмента, данный блок кода обрабатывается, заменяя первую
шаблонную переменную первым выражением из первого подсписка списка карты, вторую шаблонную пе
ременную первым выражением из второго подсписка списка карты, третью шаблонную переменную пер
вым выражением из третьего подсписка списка карты, и такдалее. Чтобы создать коддля второго инстру
мента. данный блок кода обрабатывается заменяя, первую шаблонную переменную вторым выражением
из первого подсписка списка карты, вторую шаблонную переменную вторым выражением из второго под
списка списка карты, третью шаблонную переменную вторым выражением из третьего подсписка списка
карты, и такдалее.
Эта обработка блока кода происходит передлюбой проверкой синтаксиса или проверкой уровня эле
ментов инструментов. Шаблонные переменные не являются истинными сигнальными переменными и не
должны быть объявлены впеременном блоке объявления.
8.9 Зарезервированные слова
Следующие слова резервируются и недолжны использоваться в качестве идентификаторов в оркес
тре
SAOL.
Aopcode. asig. else, exports, extend, global, if. inports, inchannels, inst.r interp. iopcode. rvar. kopcode.
krate. ksig. map. oparray. opcode, outbus, outchannels. output, presot. return, route, sasbf. send, sequence,
spatialize. srate. table, tablemap. template, turnoff, while, with. xsig.
Кроме того, имена переменной, запускающиеся
_sym_.
резервируются для специфичного использо
вания (например, поток битов
detokenisation).
и не могут быть именем инструмента, сигнальной перемен
ной. звуковой таблицей или пользователем кода операции в оркестре.
9 Определения кода операции ядра SAOL и семантика
9.1 Вводонио
Все базовые коды операции должны быть реализованы в каждом терминале, который можетдекоди
ровать объекты типа 3 или 4.
Для каждого базового кода операции описывается следующее:
прототип показывающий уровень кода операции, параметры, которые требуются при вызове кода
операции и уровни этих параметров;
нормативная семантика обратного значения. Семантика описывает, как вычислить исходное значение
для каждого вызова кода операции;
нормативная семантика любых побочных эффектов базового кода операции.
9.2 Тип
specialop
Тег уровня
specialop
не является фактическим лексическим элементом языка
SAOL
и не должен
появляться в оркестре
SAOL.
но используется в качестве сокращения для базовых кодов операции с ними.
39